{"version":3,"sources":["node_modules/react/index.js","node_modules/react/jsx-runtime.js","node_modules/@babel/runtime/helpers/defineProperty.js","node_modules/recoil/es/index.js","node_modules/react-native-web/dist/exports/StyleSheet/compiler/createReactDOMStyle.js","node_modules/react-native-web/dist/exports/StyleSheet/compiler/hash.js","node_modules/react-native-web/dist/exports/StyleSheet/compiler/hyphenateStyleName.js","node_modules/react-native-web/dist/modules/prefixStyles/static.js","node_modules/react-native-web/dist/modules/prefixStyles/index.js","node_modules/react-native-web/dist/exports/StyleSheet/compiler/index.js","node_modules/react-native-web/dist/exports/StyleSheet/index.js","node_modules/@babel/runtime/helpers/classCallCheck.js","node_modules/@babel/runtime/helpers/createClass.js","node_modules/@babel/runtime/helpers/slicedToArray.js","node_modules/@babel/runtime/helpers/getPrototypeOf.js","node_modules/react-native-web/dist/exports/View/index.js","node_modules/react-native-web/dist/vendor/react-native/Animated/AnimatedEvent.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedTransform.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedStyle.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedProps.js","node_modules/react-native-web/dist/vendor/react-native/Utilities/setAndForwardRef.js","node_modules/react-native-web/dist/vendor/react-native/Animated/createAnimatedComponent.js","node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedFlatList.js","node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedImage.js","node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedScrollView.js","node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedSectionList.js","node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedText.js","node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedView.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedAddition.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedDiffClamp.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedDivision.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedModulo.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedMultiplication.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedSubtraction.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedTracking.js","node_modules/react-native-web/dist/vendor/react-native/Animated/AnimatedImplementation.js","node_modules/react-native-web/dist/vendor/react-native/Animated/AnimatedMock.js","node_modules/react-native-web/dist/vendor/react-native/Animated/Animated.js","node_modules/react-native-web/dist/exports/Animated/index.js","node_modules/@babel/runtime/helpers/inherits.js","node_modules/@babel/runtime/helpers/objectWithoutProperties.js","node_modules/react-native-web/dist/exports/Platform/index.js","node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","node_modules/@babel/runtime/helpers/assertThisInitialized.js","node_modules/@babel/runtime/helpers/asyncToGenerator.js","node_modules/color/index.js","State.ts","node_modules/@babel/runtime/helpers/get.js","../../../src/core/theming.tsx","node_modules/@babel/runtime/helpers/toConsumableArray.js","node_modules/moment/moment.js","node_modules/axios/lib/utils.js","node_modules/fbjs/lib/invariant.js","node_modules/@babel/runtime/helpers/objectSpread2.js","../../../../../src/styles/themes/v2/colors.tsx","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedNode.js","SpacingFuncContext.tsx","Box.tsx","Divider.tsx","Flex.tsx","utilities.ts","Selector.tsx","Stack.tsx","Wrap.tsx","defaultTheme.ts","ThemeContext.tsx","use-palette-color.ts","IconComponentContext.tsx","PortalContext.tsx","WindowSizeClassContext.tsx","Provider.tsx","use-animated-elevation.ts","use-boolean.ts","use-window-size.ts","use-surface-scale.ts","use-surface-color.ts","use-styles.ts","use-window-size-value.ts","ActivityIndicator.tsx","Surface.tsx","Text.tsx","AppBar.tsx","Avatar.tsx","Backdrop.tsx","BackdropSubheader.tsx","Badge.tsx","Banner.tsx","Pressable.tsx","Button.tsx","Chip.tsx","Dialog.tsx","DialogActions.tsx","DialogContent.tsx","DialogHeader.tsx","FAB.tsx","IconButton.tsx","ListItem.tsx","Snackbar.tsx","Switch.tsx","TextInput.tsx","node_modules/react-native-web/dist/vendor/react-native/Animated/Easing.js","node_modules/react-native-web/dist/vendor/react-native/Animated/bezier.js","node_modules/react-native-web/dist/exports/Easing/index.js","node_modules/prop-types/index.js","node_modules/react-native-web/dist/exports/I18nManager/index.js","gesture.ts","../../../src/utils/getContrastingColor.tsx","../../../../src/components/Avatar/AvatarIcon.tsx","../../../../src/components/Avatar/AvatarImage.tsx","../../../../src/components/Avatar/AvatarText.tsx","../../../../src/components/Drawer/DrawerItem.tsx","../../../src/components/Badge.tsx","../../../../src/components/Drawer/DrawerCollapsedItem.tsx","../../../../src/components/Drawer/DrawerSection.tsx","../../../../src/components/List/ListAccordionGroup.tsx","../../../../src/components/List/utils.ts","../../../../src/components/List/ListAccordion.tsx","../../../../src/components/List/ListIcon.tsx","../../../../src/components/List/ListItem.tsx","../../../../src/components/List/ListSubheader.tsx","../../../../src/components/List/ListSection.tsx","../../../../src/components/List/ListImage.tsx","../../../src/components/Banner.tsx","../../../../src/components/BottomNavigation/utils.ts","../../../src/utils/useAnimatedValueArray.tsx","../../../../src/components/BottomNavigation/BottomNavigationBar.tsx","../../../src/utils/useLayout.tsx","../../../src/utils/useIsKeyboardShown.tsx","../../../../src/components/BottomNavigation/BottomNavigationRouteScreen.tsx","../../../../src/components/BottomNavigation/BottomNavigation.tsx","../../../../src/components/FAB/utils.ts","../../../../src/components/FAB/FAB.tsx","../../../../src/components/FAB/FABGroup.tsx","../../../../src/components/FAB/index.ts","../../../../src/components/FAB/AnimatedFAB.tsx","../../../src/components/ProgressBar.tsx","../../../src/components/Snackbar.tsx","../../../../src/components/ToggleButton/ToggleButtonGroup.tsx","../../../../src/components/ToggleButton/ToggleButton.tsx","../../../../src/components/ToggleButton/utils.ts","../../../../src/components/ToggleButton/ToggleButtonRow.tsx","../../../../src/components/ToggleButton/index.ts","../../../../src/components/SegmentedButtons/utils.ts","../../../../src/components/SegmentedButtons/SegmentedButtonItem.tsx","../../../../src/components/SegmentedButtons/SegmentedButtons.tsx","node_modules/invariant/browser.js","node_modules/@babel/runtime/helpers/extends.js","../../../../src/components/Typography/Text.tsx","Directions.ts","GestureHandlerRootView.web.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","gestureObjects.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/reanimated2/core.js","node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","node_modules/react-native-web/dist/exports/Dimensions/index.js","node_modules/react-native-web/dist/modules/canUseDom/index.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/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/useAnimatedSensor.js","node_modules/react-native-reanimated/lib/reanimated2/commonTypes.js","node_modules/react-native-reanimated/lib/reanimated2/hook/useFrameCallback.js","node_modules/react-native-reanimated/lib/reanimated2/hook/useAnimatedKeyboard.js","node_modules/react-native-reanimated/lib/reanimated2/hook/useScrollViewOffset.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/reanimated2/component/Text.js","node_modules/react-native-reanimated/lib/reanimated2/component/View.js","node_modules/react-native-reanimated/lib/reanimated2/component/ScrollView.js","node_modules/react-native-reanimated/lib/reanimated2/component/Image.js","node_modules/react-native-reanimated/lib/reanimated2/component/FlatList.js","node_modules/react-native-web/dist/vendor/react-native/Animated/NativeAnimatedHelper.js","node_modules/react-native-web/dist/exports/Text/index.js","node_modules/react-native-reanimated/lib/reanimated2/Colors.js","../../../../src/components/TouchableRipple/Pressable.tsx","../../../../src/components/TouchableRipple/utils.ts","../../../../src/components/TouchableRipple/TouchableRipple.tsx","node_modules/react-native-web/dist/exports/findNodeHandle/index.js","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/modules/ScrollResponder/index.js","node_modules/react-native-web/dist/exports/ScrollView/ScrollViewBase.js","node_modules/react-native-web/dist/exports/ScrollView/index.js","node_modules/react-native-web/dist/modules/ImageLoader/index.js","node_modules/react-native-web/dist/exports/Image/index.js","../../../src/components/Icon.tsx","node_modules/react-native-web/dist/modules/createEventHandle/index.js","node_modules/react-native-web/dist/modules/modality/index.js","node_modules/react-native-web/dist/modules/useEvent/index.js","node_modules/react-native-web/dist/modules/useHover/index.js","node_modules/react-native-web/dist/exports/Pressable/index.js","node_modules/react-native-reanimated/lib/reanimated1/core/InternalAnimatedValue.js","../../src/errors/UnavailabilityError.ts","../src/NativeViewManagerAdapter.tsx","../src/deprecate.ts","../src/PermissionsInterface.ts","../src/PermissionsHook.ts","../src/index.ts","node_modules/axios/lib/core/AxiosError.js","../../src/CommonActions.tsx","../../src/BaseRouter.tsx","../../src/TabRouter.tsx","../../src/DrawerRouter.tsx","../../src/StackRouter.tsx","../../src/createNavigationContainerRef.tsx","../../src/EnsureSingleNavigator.tsx","../../src/findFocusedRoute.tsx","../../src/NavigationBuilderContext.tsx","../../src/NavigationContainerRefContext.tsx","../../src/NavigationContext.tsx","../../src/NavigationRouteContext.tsx","../../src/NavigationStateContext.tsx","../../src/UnhandledActionContext.tsx","../../src/useChildListeners.tsx","../../src/useEventEmitter.tsx","../../src/useKeyedChildListeners.tsx","../../src/useOptionsGetters.tsx","../../src/useScheduleUpdate.tsx","../../src/useSyncState.tsx","../../src/BaseNavigationContainer.tsx","../../src/Group.tsx","../../src/Screen.tsx","../../src/createNavigatorFactory.tsx","../../src/CurrentRenderContext.tsx","../../src/getActionFromState.tsx","../../src/useRouteCache.tsx","../../src/getFocusedRouteNameFromRoute.tsx","../../src/fromEntries.tsx","../../src/validatePathConfig.tsx","../../src/getPathFromState.tsx","../../src/getStateFromPath.tsx","../../src/NavigationHelpersContext.tsx","../../src/PreventRemoveContext.tsx","../../src/PreventRemoveProvider.tsx","../../src/types.tsx","../../src/useNavigation.tsx","../../src/useFocusEffect.tsx","../../src/useIsFocused.tsx","../../src/isArrayEqual.tsx","../../src/useComponent.tsx","../../src/StaticContainer.tsx","../../src/SceneView.tsx","../../src/useDescriptors.tsx","../../src/useNavigationCache.tsx","../../src/useOnPreventRemove.tsx","../../src/useOnAction.tsx","../../src/useNavigationBuilder.tsx","../../src/useRegisterNavigator.tsx","../../src/isRecordEqual.tsx","../../src/useFocusEvents.tsx","../../src/useOnRouteFocus.tsx","../../src/useNavigationHelpers.tsx","../../src/useFocusedListenersChildrenAdapter.tsx","../../src/useOnGetState.tsx","../../src/useCurrentRender.tsx","../../src/useNavigationContainerRef.tsx","../../src/useNavigationState.tsx","../../src/usePreventRemoveContext.tsx","../../src/useRoute.tsx","../../src/usePreventRemove.tsx","node_modules/react-native-web/dist/exports/SafeAreaView/index.js","node_modules/react-native-reanimated/lib/reanimated2/NativeReanimated/index.js","gestureHandlerCommon.ts","node_modules/react-native-reanimated/lib/reanimated2/PlatformChecker.js","../../../src/components/MaterialCommunityIcon.tsx","node_modules/nanoid/non-secure/index.js","node_modules/react-native-reanimated/lib/reanimated2/hook/utils.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedValue.js","node_modules/react-native-web/dist/modules/forwardedProps/index.js","node_modules/react-native-reanimated/lib/reanimated2/animation/util.js","node_modules/react-native-reanimated/lib/reanimated2/Bezier.js","node_modules/react-native-reanimated/lib/reanimated2/Easing.js","../../../src/components/Surface.tsx","../../../src/utils/forwardRef.tsx","node_modules/use-latest-callback/lib/src/index.js","node_modules/webpack/buildin/global.js","node_modules/react-native-web/dist/modules/unitlessNumbers/index.js","node_modules/react-native-web/dist/modules/setValueForStyles/dangerousStyleValue.js","node_modules/react-native-web/dist/modules/setValueForStyles/index.js","node_modules/react-native-web/dist/exports/UIManager/index.js","utils.ts","node_modules/react-native-web/dist/exports/TouchableOpacity/index.js","node_modules/react-native-web/dist/exports/Keyboard/index.js","node_modules/react-native-web/dist/exports/NativeModules/index.js","node_modules/react-native-reanimated/lib/ReanimatedModuleCompat.js","node_modules/react-native-reanimated/lib/ReanimatedModule.js","node_modules/react-native-web/dist/exports/createElement/index.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedWithChildren.js","node_modules/react-native-web/dist/modules/requestIdleCallback/index.js","node_modules/react-native-web/dist/exports/InteractionManager/index.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedInterpolation.js","node_modules/@babel/runtime/helpers/wrapNativeSuper.js","index.ts","../../../../../src/styles/themes/v3/tokens.tsx","../../../../src/components/IconButton/utils.ts","../../../../src/components/IconButton/IconButton.tsx","node_modules/chroma-js/chroma.js","InteractionManager.ts","interfaces.ts","constants.ts","PointerTracker.ts","GestureHandlerOrchestrator.ts","EventManager.ts","PointerEventManager.ts","TouchEventManager.ts","GestureHandler.ts","PanGestureHandler.ts","TapGestureHandler.ts","LongPressGestureHandler.ts","ScaleGestureDetector.ts","RotationGestureDetector.ts","FlingGestureHandler.ts","ManualGestureHandler.ts","NodeManager.ts","node_modules/@egjs/hammerjs/dist/hammer.esm.js","DiscreteGestureHandler.ts","PressGestureHandler.ts","DraggingGestureHandler.ts","IndiscreteGestureHandler.ts","Errors.ts","RNGestureHandlerModule.web.ts","node_modules/react-native-web/dist/exports/useWindowDimensions/index.js","node_modules/react-native-web/dist/modules/useMergeRefs/index.js","node_modules/react-native-reanimated/lib/reanimated1/derived/interpolate.js","handlersRegistry.ts","node_modules/react-native-reanimated/lib/reanimated2/animation/decay.js","node_modules/react-native-reanimated/lib/reanimated2/animation/repeat.js","node_modules/react-native-web/dist/exports/TextInput/index.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedBlock.js","../src/createIconSet.tsx","createHandler.tsx","node_modules/react-native-reanimated/lib/reanimated2/UpdateProps.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedOperator.js","node_modules/react-native-reanimated/lib/reanimated1/operators.js","TouchEventType.ts","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedDebug.js","node_modules/react-native-web/dist/exports/Appearance/index.js","node_modules/react-native-web/dist/exports/PixelRatio/index.js","node_modules/react-native-web/dist/exports/DeviceEventEmitter/index.js","../../../src/styles/overlay.tsx","node_modules/react-native-web/dist/modules/useLocale/isLocaleRTL.js","node_modules/react-native-web/dist/modules/useLocale/index.js","node_modules/react-native-web/dist/exports/StyleSheet/compiler/unitlessNumbers.js","node_modules/react-native-web/dist/exports/StyleSheet/compiler/normalizeValueWithProperty.js","node_modules/react-native-web/dist/exports/TouchableWithoutFeedback/index.js","node_modules/react-native-reanimated/lib/reanimated2/hook/useSharedValue.js","node_modules/react-native-reanimated/lib/createAnimatedComponent.js","node_modules/react-dom/index.js","node_modules/react-native-web/dist/exports/StatusBar/index.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedClock.js","../../../../../src/components/Typography/v2/Text.tsx","../../../../../src/components/Typography/v2/StyledText.tsx","../../../../src/components/Typography/AnimatedText.tsx","node_modules/@babel/runtime/helpers/createForOfIteratorHelperLoose.js","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-reanimated/lib/reanimated2/interpolation.js","node_modules/react-native-web/dist/exports/processColor/index.js","../src/ImagePicker.types.ts","node_modules/react-native-web/dist/vendor/react-native/emitter/EventEmitter.js","node_modules/react-native-web/dist/vendor/react-native/NativeEventEmitter/RCTDeviceEventEmitter.js","../src/PlatformUtils.web.ts","node_modules/@expo/vector-icons/Foundation.js","../../../src/components/ActivityIndicator.tsx","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/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-reanimated/lib/reanimated1/core/AnimatedValue.js","node_modules/react-native-web/dist/modules/UnimplementedView/index.js","EnableExperimentalWebImplementation.ts","NativeSafeAreaProvider.web.tsx","SafeAreaContext.tsx","node_modules/lodash/_root.js","node_modules/react-native-web/dist/modules/useLayoutEffect/index.js","../../../src/core/settings.tsx","../../../src/utils/addEventListener.tsx","node_modules/react-native-web/dist/vendor/react-native/VirtualizeUtils/index.js","node_modules/react-native-web/dist/exports/Linking/index.js","ActionType.ts","node_modules/react-native-reanimated/lib/reanimated2/WorkletEventHandler.js","../../../src/styles/fonts.tsx","../../src/errors/CodedError.ts","node_modules/react-native-web/dist/exports/ImageBackground/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","../../../../src/components/Button/utils.tsx","../../../../src/components/Button/Button.tsx","node_modules/react-native-web/dist/modules/multiplyStyleLengthValue/index.js","node_modules/react-native-web/dist/exports/Switch/index.js","node_modules/react-native-web/dist/modules/pick/index.js","node_modules/react-native-web/dist/modules/usePlatformMethods/index.js","../../../src/utils/hasTouchHandler.tsx","../../../src/utils/splitStyles.ts","../../src/LinkingContext.tsx","node_modules/axios/lib/helpers/toFormData.js","../../../../src/components/Checkbox/utils.ts","node_modules/react-native-web/dist/modules/usePressEvents/PressResponder.js","node_modules/react-native-web/dist/modules/usePressEvents/index.js","../../../../../src/styles/themes/v3/LightTheme.tsx","node_modules/url-parse/index.js","../../../src/views/GestureHandler.tsx","reanimatedWrapper.ts","node_modules/qrcode/lib/core/utils.js","node_modules/qrcode/lib/core/mode.js","node_modules/react-native-reanimated/lib/ConfigHelper.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedValueXY.js","../../../src/styles/shadow.tsx","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedAlways.js","node_modules/react-native-web/dist/exports/BackHandler/index.js","node_modules/react-native-web/dist/exports/Text/TextAncestorContext.js","node_modules/@babel/runtime/helpers/construct.js","../../src/utils.ts","../../../src/Date/dateUtils.tsx","../../../src/Date/DayRange.tsx","../../../src/Date/Day.tsx","../../../src/Date/DayName.tsx","../../../src/Date/DayNames.tsx","../../../src/translations/utils.ts","../../../src/Date/CalendarHeader.tsx","../../../src/Date/Month.tsx","../../../src/Date/AutoSizer.tsx","../../../src/Date/Swiper.tsx","../../../src/Date/SwiperUtils.ts","../../../src/Date/YearPicker.tsx","../../../src/Date/Calendar.tsx","../../../src/Date/AnimatedCrossView.tsx","../../../src/Date/DatePickerModalHeader.tsx","../../../src/Date/DatePickerModalContentHeader.tsx","../../src/TextInputMask.tsx","../../../src/Date/inputUtils.ts","../../../src/Date/DatePickerInputWithoutModal.tsx","../../../src/Date/CalendarEdit.tsx","../../../src/Date/DatePickerModalHeaderBackground.tsx","../../../src/Date/DatePickerModalContent.tsx","../../../src/Date/DatePickerModal.tsx","../../../src/Time/timeUtils.ts","../../../src/Time/AnalogClockHours.tsx","../../../src/Time/AnimatedClockSwitcher.tsx","../../../src/Time/AnalogClockMinutes.tsx","../../../src/Time/AnalogClock.tsx","../../../src/Time/TimeInput.tsx","../../../src/Time/AmPmSwitcher.tsx","../../../src/Time/TimeInputs.tsx","../../../src/Time/TimePicker.tsx","../../../src/Time/TimePickerModal.tsx","../../../src/Date/DatePickerInput.tsx","../../../src/translations/ar.ts","../../../src/translations/de.ts","../../../src/translations/en.ts","../../../src/translations/enGB.ts","../../../src/translations/es.ts","../../../src/translations/fr.ts","../../../src/translations/he.ts","../../../src/translations/it.ts","../../../src/translations/ko.ts","../../../src/translations/nl.ts","../../../src/translations/pl.ts","../../../src/translations/pt.ts","../../../src/translations/tr.ts","node_modules/warn-once/index.js","../../../src/theming/useTheme.tsx","node_modules/timers-browserify/main.js","node_modules/lodash/_getNative.js","node_modules/@expo/vector-icons/MaterialIcons.js","node_modules/react-native-web/dist/exports/RefreshControl/index.js","node_modules/react-native-web/dist/exports/NativeEventEmitter/index.js","../src/NativeModulesProxy.ts","node_modules/react-native-web/dist/exports/KeyboardAvoidingView/index.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedSet.js","../../../src/components/Divider.tsx","../../../../src/components/Portal/PortalConsumer.tsx","../../../../src/components/Portal/Portal.tsx","../../../../../src/styles/themes/v2/LightTheme.tsx","node_modules/normalize-css-color/index.js","node_modules/react-native-web/dist/vendor/react-native/Animated/animations/Animation.js","node_modules/react-native-web/dist/modules/useElementLayout/index.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedParam.js","node_modules/react-native-reanimated/lib/reanimated2/animation/timing.js","node_modules/lodash.isequal/index.js","../../src/useAnimatedValue.tsx","node_modules/react-native-web/dist/modules/useResponderEvents/createResponderEvent.js","node_modules/react-native-web/dist/modules/useResponderEvents/ResponderEventTypes.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/ResponderTouchHistoryStore.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/vendor/react-native/Batchinator/index.js","node_modules/react-native-web/dist/vendor/react-native/ViewabilityHelper/index.js","node_modules/react-native-web/dist/vendor/react-native/infoLog/index.js","node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/VirtualizedListContext.js","node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/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-reanimated/lib/reanimated1/core/AnimatedBezier.js","node_modules/react-native-reanimated/lib/reanimated1/Easing.js","node_modules/react-native-web/dist/modules/getBoundingClientRect/index.js","node_modules/cookie/index.js","node_modules/react-native-reanimated/lib/ReanimatedEventEmitter.js","../../../src/utils/useAnimatedValue.tsx","../../../src/utils/useLazyRef.tsx","node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/lib/object-utils.js","node_modules/react-native-reanimated/lib/reanimated2/hook/Hooks.js","node_modules/@babel/runtime/helpers/interopRequireDefault.js","node_modules/react-native-web/dist/exports/Alert/index.js","node_modules/react-native-web/dist/exports/AppState/index.js","node_modules/react-native-web/dist/exports/Clipboard/index.js","node_modules/react-native-web/dist/exports/DeviceInfo/index.js","node_modules/react-native-web/dist/vendor/react-native/LayoutAnimation/index.js","node_modules/react-native-web/dist/exports/LayoutAnimation/index.js","node_modules/react-native-web/dist/exports/Share/index.js","node_modules/react-native-web/dist/exports/Vibration/index.js","node_modules/react-native-web/dist/exports/Button/index.js","node_modules/react-native-web/dist/exports/CheckBox/index.js","node_modules/react-native-web/dist/exports/Picker/index.js","node_modules/react-native-web/dist/exports/Picker/PickerItem.js","node_modules/react-native-web/dist/exports/ProgressBar/index.js","node_modules/react-native-web/dist/vendor/react-native/PooledClass/index.js","node_modules/react-native-web/dist/exports/Touchable/BoundingDimensions.js","node_modules/react-native-web/dist/exports/Touchable/Position.js","node_modules/react-native-web/dist/exports/Touchable/index.js","node_modules/react-native-web/dist/exports/VirtualizedList/index.js","node_modules/react-native-web/dist/exports/YellowBox/index.js","node_modules/react-native-web/dist/exports/LogBox/index.js","node_modules/react-native-web/dist/exports/InputAccessoryView/index.js","node_modules/react-native-web/dist/exports/ToastAndroid/index.js","node_modules/react-native-web/dist/exports/PermissionsAndroid/index.js","node_modules/react-native-web/dist/exports/Settings/index.js","node_modules/react-native-web/dist/exports/Systrace/index.js","node_modules/react-native-web/dist/exports/TVEventHandler/index.js","node_modules/react-native-web/dist/exports/useLocaleContext/index.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedCall.js","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/create-icon-set.js","node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/lib/create-icon-source-cache.js","../../src/environment/browser.web.ts","../src/Platform.ts","../../../../../src/styles/themes/v2/DarkTheme.tsx","../../../../src/components/Menu/Menu.tsx","node_modules/react-native-web/dist/exports/DrawerLayoutAndroid/index.js","node_modules/react-native-web/dist/exports/render/index.js","node_modules/react-native-web/dist/exports/AppRegistry/AppContainer.js","node_modules/react-native-web/dist/exports/AppRegistry/index.js","node_modules/react-native-web/dist/exports/AppRegistry/renderApplication.js","node_modules/react-native-web/dist/exports/StyleSheet/preprocess.js","node_modules/react-native-web/dist/modules/useStable/index.js","../src/AssetSourceResolver.web.ts","eventReceiver.ts","gestureStateManager.web.ts","node_modules/react-native-reanimated/lib/reanimated1/derived/evaluateOnce.js","node_modules/react-native-reanimated/lib/reanimated2/js-reanimated/index.js","../../../src/Header/HeaderShownContext.tsx","node_modules/react-native-web/dist/exports/StyleSheet/dom/createCSSStyleSheet.js","node_modules/react-native-web/dist/exports/StyleSheet/dom/createOrderedCSSStyleSheet.js","node_modules/react-native-web/dist/exports/StyleSheet/dom/index.js","../../../../src/components/Portal/PortalManager.tsx","../../../../src/components/Portal/PortalHost.tsx","node_modules/webpack/buildin/module.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","../../../src/core/SafeAreaProviderCompat.tsx","../../../src/core/PaperProvider.tsx","node_modules/react-native-web/dist/exports/TouchableHighlight/index.js","node_modules/react-native-reanimated/lib/reanimated2/hook/useAnimatedStyle.js","node_modules/react-native-web/dist/exports/TouchableNativeFeedback/index.js","node_modules/react-native-web/dist/exports/useColorScheme/index.js","node_modules/react-native-web/dist/exports/ActivityIndicator/index.js","node_modules/react-native-web/dist/exports/unmountComponentAtNode/index.js","node_modules/react-native-web/dist/exports/AccessibilityInfo/index.js","../../../src/components/Modal.tsx","../../../../src/components/Card/CardActions.tsx","../../../../src/components/Card/CardContent.tsx","../../../../src/components/Card/utils.tsx","../../../../src/components/Card/CardCover.tsx","../../../../src/components/Card/CardTitle.tsx","../../../../src/components/Card/Card.tsx","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","PlatformConstants.web.ts","ForceTouchGestureHandler.ts","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedCallFunc.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedFunction.js","../../../../../src/styles/themes/v3/DarkTheme.tsx","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/createDOMProps/index.js","node_modules/react-native-web/dist/modules/mergeRefs/index.js","node_modules/react-native-web/dist/modules/dismissKeyboard/index.js","node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/lib/icon-button.js","../../../src/components/CrossFadeIcon.tsx","../../../../../src/components/Typography/v2/Title.tsx","../../../../src/utils/BackHandler/BackHandler.tsx","node_modules/react-native-reanimated/lib/reanimated2/js-reanimated/MutableValue.js","node_modules/react-native-reanimated/lib/reanimated2/NativeReanimated/NativeReanimated.js","../../../src/utils/DrawerPositionContext.tsx","node_modules/query-string/index.js","../../../src/theming/ThemeContext.tsx","../../../src/theming/DefaultTheme.tsx","node_modules/axios/lib/helpers/bind.js","node_modules/axios/lib/helpers/null.js","../../../src/utils/DrawerProgressContext.tsx","../../src/getNamedContext.tsx","../../../src/Header/getDefaultHeaderHeight.tsx","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/modules/isWebColor/index.js","node_modules/react-native-web/dist/exports/StyleSheet/compiler/normalizeColor.js","../src/ExponentImagePicker.web.ts","../src/ImagePicker.ts","node_modules/react-native-web/dist/modules/AssetRegistry/index.js","node_modules/react-native-reanimated/lib/reanimated2/layoutReanimation/defaultAnimations/Default.js","node_modules/process/browser.js","node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","node_modules/@babel/runtime/helpers/typeof.js","node_modules/color-string/index.js","node_modules/color-name/index.js","node_modules/@babel/runtime/helpers/setPrototypeOf.js","node_modules/@expo/vector-icons/MaterialCommunityIcons.js","../src/EventEmitter.ts","node_modules/lodash/_Map.js","node_modules/lodash/_Symbol.js","node_modules/lodash/isArray.js","../../../../src/styles/themes/index.ts","node_modules/qrcode/lib/core/error-correction-level.js","node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","node_modules/hyphenate-style-name/index.js","node_modules/react-native-web/dist/vendor/react-native/Animated/animations/SpringAnimation.js","node_modules/react-native-web/dist/vendor/react-native/Animated/SpringConfig.js","node_modules/react-native-web/dist/vendor/react-native/Animated/animations/TimingAnimation.js","node_modules/path-browserify/index.js","node_modules/react-native-reanimated/lib/reanimated2/ViewDescriptorsSet.js","node_modules/@react-navigation/drawer/node_modules/color/index.js","../../src/TabBar.tsx","../../src/TabBarIndicator.tsx","../../../src/Header/HeaderHeightContext.tsx","../src/Font.types.ts","../src/ExpoFontLoader.web.ts","../src/FontLoader.web.ts","../src/Font.ts","node_modules/@babel/runtime/helpers/arrayLikeToArray.js","node_modules/@babel/runtime/helpers/toPropertyKey.js","node_modules/color-convert/conversions.js","node_modules/deepmerge/dist/umd.js","node_modules/react-is/index.js","node_modules/inline-style-prefixer/lib/utils/capitalizeString.js","node_modules/css-in-js-utils/lib/isPrefixedValue.js","../src/requireNativeModule.ts","node_modules/moment/locale/af.js","node_modules/moment/locale/ar.js","node_modules/moment/locale/ar-dz.js","node_modules/moment/locale/ar-kw.js","node_modules/moment/locale/ar-ly.js","node_modules/moment/locale/ar-ma.js","node_modules/moment/locale/ar-ps.js","node_modules/moment/locale/ar-sa.js","node_modules/moment/locale/ar-tn.js","node_modules/moment/locale/az.js","node_modules/moment/locale/be.js","node_modules/moment/locale/bg.js","node_modules/moment/locale/bm.js","node_modules/moment/locale/bn.js","node_modules/moment/locale/bn-bd.js","node_modules/moment/locale/bo.js","node_modules/moment/locale/br.js","node_modules/moment/locale/bs.js","node_modules/moment/locale/ca.js","node_modules/moment/locale/cs.js","node_modules/moment/locale/cv.js","node_modules/moment/locale/cy.js","node_modules/moment/locale/da.js","node_modules/moment/locale/de.js","node_modules/moment/locale/de-at.js","node_modules/moment/locale/de-ch.js","node_modules/moment/locale/dv.js","node_modules/moment/locale/el.js","node_modules/moment/locale/en-au.js","node_modules/moment/locale/en-ca.js","node_modules/moment/locale/en-gb.js","node_modules/moment/locale/en-ie.js","node_modules/moment/locale/en-il.js","node_modules/moment/locale/en-in.js","node_modules/moment/locale/en-nz.js","node_modules/moment/locale/en-sg.js","node_modules/moment/locale/eo.js","node_modules/moment/locale/es.js","node_modules/moment/locale/es-do.js","node_modules/moment/locale/es-mx.js","node_modules/moment/locale/es-us.js","node_modules/moment/locale/et.js","node_modules/moment/locale/eu.js","node_modules/moment/locale/fa.js","node_modules/moment/locale/fi.js","node_modules/moment/locale/fil.js","node_modules/moment/locale/fo.js","node_modules/moment/locale/fr.js","node_modules/moment/locale/fr-ca.js","node_modules/moment/locale/fr-ch.js","node_modules/moment/locale/fy.js","node_modules/moment/locale/ga.js","node_modules/moment/locale/gd.js","node_modules/moment/locale/gl.js","node_modules/moment/locale/gom-deva.js","node_modules/moment/locale/gom-latn.js","node_modules/moment/locale/gu.js","node_modules/moment/locale/he.js","node_modules/moment/locale/hi.js","node_modules/moment/locale/hr.js","node_modules/moment/locale/hu.js","node_modules/moment/locale/hy-am.js","node_modules/moment/locale/id.js","node_modules/moment/locale/is.js","node_modules/moment/locale/it.js","node_modules/moment/locale/it-ch.js","node_modules/moment/locale/ja.js","node_modules/moment/locale/jv.js","node_modules/moment/locale/ka.js","node_modules/moment/locale/kk.js","node_modules/moment/locale/km.js","node_modules/moment/locale/kn.js","node_modules/moment/locale/ko.js","node_modules/moment/locale/ku.js","node_modules/moment/locale/ku-kmr.js","node_modules/moment/locale/ky.js","node_modules/moment/locale/lb.js","node_modules/moment/locale/lo.js","node_modules/moment/locale/lt.js","node_modules/moment/locale/lv.js","node_modules/moment/locale/me.js","node_modules/moment/locale/mi.js","node_modules/moment/locale/mk.js","node_modules/moment/locale/ml.js","node_modules/moment/locale/mn.js","node_modules/moment/locale/mr.js","node_modules/moment/locale/ms.js","node_modules/moment/locale/ms-my.js","node_modules/moment/locale/mt.js","node_modules/moment/locale/my.js","node_modules/moment/locale/nb.js","node_modules/moment/locale/ne.js","node_modules/moment/locale/nl.js","node_modules/moment/locale/nl-be.js","node_modules/moment/locale/nn.js","node_modules/moment/locale/oc-lnc.js","node_modules/moment/locale/pa-in.js","node_modules/moment/locale/pl.js","node_modules/moment/locale/pt.js","node_modules/moment/locale/pt-br.js","node_modules/moment/locale/ro.js","node_modules/moment/locale/ru.js","node_modules/moment/locale/sd.js","node_modules/moment/locale/se.js","node_modules/moment/locale/si.js","node_modules/moment/locale/sk.js","node_modules/moment/locale/sl.js","node_modules/moment/locale/sq.js","node_modules/moment/locale/sr.js","node_modules/moment/locale/sr-cyrl.js","node_modules/moment/locale/ss.js","node_modules/moment/locale/sv.js","node_modules/moment/locale/sw.js","node_modules/moment/locale/ta.js","node_modules/moment/locale/te.js","node_modules/moment/locale/tet.js","node_modules/moment/locale/tg.js","node_modules/moment/locale/th.js","node_modules/moment/locale/tk.js","node_modules/moment/locale/tl-ph.js","node_modules/moment/locale/tlh.js","node_modules/moment/locale/tr.js","node_modules/moment/locale/tzl.js","node_modules/moment/locale/tzm.js","node_modules/moment/locale/tzm-latn.js","node_modules/moment/locale/ug-cn.js","node_modules/moment/locale/uk.js","node_modules/moment/locale/ur.js","node_modules/moment/locale/uz.js","node_modules/moment/locale/uz-latn.js","node_modules/moment/locale/vi.js","node_modules/moment/locale/x-pseudo.js","node_modules/moment/locale/yo.js","node_modules/moment/locale/zh-cn.js","node_modules/moment/locale/zh-hk.js","node_modules/moment/locale/zh-mo.js","node_modules/moment/locale/zh-tw.js","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/react-native-reanimated/lib/reanimated1/core/AnimatedClockTest.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/AnimatedConcat.js","node_modules/react-native-reanimated/lib/reanimated2/hook/useAnimatedGestureHandler.js","node_modules/react-native-reanimated/lib/reanimated2/hook/useDerivedValue.js","node_modules/react-native-reanimated/lib/reanimated2/animation/spring.js","node_modules/react-native-reanimated/lib/reanimated2/animation/delay.js","node_modules/react-native-reanimated/lib/reanimated2/animation/sequence.js","node_modules/react-native-reanimated/lib/reanimated2/animation/styleAnimation.js","node_modules/@react-navigation/drawer/node_modules/color-convert/conversions.js","node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/FontAwesome5_Regular.ttf","node_modules/@react-navigation/material-top-tabs/node_modules/color-convert/conversions.js","node_modules/@expo/vector-icons/FontAwesome.js","node_modules/@expo/vector-icons/Feather.js","node_modules/@react-native-clipboard/clipboard/dist/index.js","node_modules/@react-native-clipboard/clipboard/dist/Clipboard.web.js","../../../src/components/Searchbar.tsx","node_modules/qrcode/lib/core/error-correction-code.js","node_modules/qrcode/lib/core/version-check.js","node_modules/qrcode/lib/core/regex.js","node_modules/qrcode/lib/renderer/utils.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","../../../../../src/components/TextInput/Adornment/enums.tsx","../../../../src/components/TextInput/helpers.tsx","../../../../src/components/TextInput/constants.tsx","../../../../../src/components/TextInput/Adornment/TextInputAffix.tsx","../../../../../src/components/TextInput/Adornment/utils.ts","../../../../../src/components/TextInput/Adornment/TextInputIcon.tsx","../../../../../src/components/TextInput/Addons/Underline.tsx","../../../../../src/components/TextInput/Adornment/TextInputAdornment.tsx","../../../../../src/components/TextInput/Label/InputLabel.tsx","../../../../src/components/TextInput/TextInputFlat.tsx","../../../../../src/components/TextInput/Addons/Outline.tsx","../../../../../src/components/TextInput/Label/LabelBackground.tsx","../../../../src/components/TextInput/TextInputOutlined.tsx","../../../src/utils/roundLayoutSize.ts","../../../../src/components/TextInput/TextInput.tsx","node_modules/css-in-js-utils/es/assignStyle.js","node_modules/css-in-js-utils/es/camelCaseProperty.js","node_modules/css-in-js-utils/es/hyphenateProperty.js","node_modules/css-in-js-utils/es/cssifyDeclaration.js","node_modules/css-in-js-utils/es/cssifyObject.js","node_modules/css-in-js-utils/es/isPrefixedProperty.js","node_modules/css-in-js-utils/es/isPrefixedValue.js","node_modules/css-in-js-utils/es/isUnitlessProperty.js","node_modules/css-in-js-utils/es/unprefixProperty.js","node_modules/css-in-js-utils/es/normalizeProperty.js","node_modules/css-in-js-utils/es/resolveArrayValue.js","node_modules/css-in-js-utils/es/unprefixValue.js","../../../../src/components/Appbar/utils.ts","../../../../src/components/Appbar/AppbarContent.tsx","../../../../src/components/Appbar/Appbar.tsx","../../../../src/components/Appbar/AppbarAction.tsx","../../../../src/components/Appbar/AppbarBackIcon.tsx","../../../../src/components/Appbar/AppbarBackAction.tsx","../../../../src/components/Appbar/AppbarHeader.tsx","../../../../src/components/Appbar/index.ts","../../../../src/components/RadioButton/RadioButtonGroup.tsx","../../../../src/components/RadioButton/utils.ts","../../../../src/components/RadioButton/RadioButtonAndroid.tsx","../../../../src/components/RadioButton/RadioButtonIOS.tsx","../../../../src/components/RadioButton/RadioButton.tsx","../../../../src/components/RadioButton/RadioButtonItem.tsx","../../../../src/components/RadioButton/index.ts","../../../../src/components/Dialog/DialogActions.tsx","../../../../src/components/Dialog/DialogContent.tsx","../../../../src/components/Dialog/DialogIcon.tsx","../../../../src/components/Dialog/DialogScrollArea.tsx","../../../../src/components/Dialog/DialogTitle.tsx","../../../../src/components/Dialog/Dialog.tsx","../../../../src/components/DataTable/DataTableCell.tsx","../../../../src/components/DataTable/DataTableHeader.tsx","../../../../src/components/DataTable/DataTablePagination.tsx","../../../../src/components/DataTable/DataTableRow.tsx","../../../../src/components/DataTable/DataTableTitle.tsx","../../../../src/components/DataTable/DataTable.tsx","../../../../src/components/Checkbox/CheckboxAndroid.tsx","../../../../src/components/Checkbox/CheckboxIOS.tsx","../../../../src/components/Checkbox/Checkbox.tsx","../../../../src/components/Checkbox/CheckboxItem.tsx","../../../../src/components/Checkbox/index.ts","node_modules/react-native-qrcode-svg/src/index.js","node_modules/react-native-qrcode-svg/src/transformMatrixIntoPath.js","node_modules/react-native-qrcode-svg/src/genMatrix.js","checkBox.tsx","paperSelect.tsx","../../../../src/components/HelperText/HelperText.tsx","../../../../src/components/HelperText/utils.ts","../../../../src/components/Chip/helpers.tsx","../../../../src/components/Chip/Chip.tsx","../../../../src/components/Switch/utils.ts","../../../../src/components/Switch/Switch.tsx","../../../../src/components/Tooltip/utils.ts","../../../../src/components/Tooltip/Tooltip.tsx","TransitionProgressContext.tsx","useTransitionProgress.tsx","node_modules/@callstack/react-theme-provider/lib/index.js","node_modules/react-native-web/dist/vendor/react-native/Animated/NativeAnimatedTurboModule.js","node_modules/react-native-web/dist/vendor/react-native/Animated/NativeAnimatedModule.js","node_modules/react-native-web/dist/vendor/react-native/Animated/animations/DecayAnimation.js","node_modules/styleq/dist/styleq.js","node_modules/styleq/transform-localize-style.js","node_modules/inline-style-prefixer/lib/createPrefixer.js","node_modules/inline-style-prefixer/lib/plugins/backgroundClip.js","node_modules/inline-style-prefixer/lib/plugins/crossFade.js","node_modules/inline-style-prefixer/lib/plugins/cursor.js","node_modules/inline-style-prefixer/lib/plugins/filter.js","node_modules/inline-style-prefixer/lib/plugins/imageSet.js","node_modules/inline-style-prefixer/lib/plugins/logical.js","node_modules/inline-style-prefixer/lib/plugins/position.js","node_modules/inline-style-prefixer/lib/plugins/sizing.js","node_modules/inline-style-prefixer/lib/plugins/transition.js","node_modules/create-react-class/index.js","node_modules/fbjs/lib/warning.js","node_modules/react-native-web/dist/vendor/react-native/FillRateHelper/index.js","../src/MaterialCommunityIcons.ts","node_modules/compare-versions/index.js","../src/resolveAssetSource.web.ts","node_modules/fontfaceobserver/fontfaceobserver.standalone.js","node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf","node_modules/jwt-decode/build/jwt-decode.esm.js","../../../../../src/components/Typography/v2/Caption.tsx","../src/MaterialIcons.ts","node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/MaterialIcons.ttf","../../src/constants.tsx","node_modules/lodash/isEqual.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/reanimated2/frameCallback/FrameCallbackRegistryJS.js","node_modules/react-native-reanimated/lib/reanimated2/frameCallback/FrameCallbackRegistryUI.js","node_modules/react-native-reanimated/lib/setAndForwardRef.js","node_modules/react-native-reanimated/lib/reanimated2/platform-specific/RNRenderer.web.js","getShadowNodeFromRef.web.ts","node_modules/@babel/runtime/helpers/objectDestructuringEmpty.js","../../../src/views/DrawerContentScrollView.tsx","../../../src/views/DrawerItemList.tsx","node_modules/escape-string-regexp/index.js","../../../src/views/DrawerItem.tsx","../../src/useLinkProps.tsx","../../src/useLinkTo.tsx","../src/createMultiStyleIconSet.ts","../../../src/views/MaterialTopTabView.tsx","../../../src/views/MaterialTopTabBar.tsx","node_modules/@react-navigation/material-top-tabs/node_modules/color/index.js","../src/Foundation.ts","node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/Foundation.ttf","../src/FontAwesome.ts","node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/FontAwesome.ttf","../src/Feather.ts","node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/Feather.ttf","../src/AntDesign.ts","node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/AntDesign.ttf","../../../src/views/DrawerContent.tsx","../../../src/utils/getDrawerStatusFromState.tsx","../../../src/Header/HeaderTitle.tsx","../../../src/Header/HeaderBackground.tsx","../../../src/views/DrawerToggleButton.tsx","../../src/Background.tsx","../../../src/utils/DrawerStatusContext.tsx","../../src/useBackButton.tsx","../../src/useDocumentTitle.tsx","node_modules/fast-deep-equal/index.js","../../src/ServerContext.tsx","../../src/useThenable.tsx","../../../src/theming/ThemeProvider.tsx","node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/Entypo.ttf","node_modules/@react-native-community/slider/dist/Slider.js","node_modules/@expo/vector-icons/AntDesign.js","node_modules/qrcode/lib/browser.js","../../src/launch/registerRootComponent.tsx","../../../src/views/ScreenFallback.tsx","../../../src/views/DrawerView.tsx","../../../src/utils/addCancelListener.tsx","node_modules/universal-cookie/es6/utils.js","node_modules/universal-cookie/es6/Cookies.js","node_modules/universal-cookie/es6/index.js","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","../../src/PlatformPressable.tsx","../../src/TabBarItemLabel.tsx","../../src/TabBarItem.tsx","../../../../src/components/Menu/utils.ts","../../../../src/components/Menu/MenuItem.tsx","../../src/createMemoryHistory.tsx","../../src/useLinking.tsx","InitialWindow.ts","node_modules/react/cjs/react.production.min.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/setimmediate/setImmediate.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/arrayWithHoles.js","node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","node_modules/@babel/runtime/helpers/nonIterableRest.js","node_modules/@babel/runtime/helpers/toPrimitive.js","node_modules/simple-swizzle/index.js","node_modules/is-arrayish/index.js","node_modules/color-convert/index.js","node_modules/color-convert/node_modules/color-name/index.js","node_modules/color-convert/route.js","node_modules/@callstack/react-theme-provider/lib/createTheming.js","node_modules/@callstack/react-theme-provider/lib/createThemeProvider.js","node_modules/@callstack/react-theme-provider/lib/createWithTheme.js","node_modules/react-is/cjs/react-is.production.min.js","node_modules/@babel/runtime/helpers/superPropBase.js","node_modules/styleq/dist/transform-localize-style.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/create-react-class/factory.js","node_modules/object-assign/index.js","node_modules/fbjs/lib/emptyFunction.js","node_modules/react/cjs/react-jsx-runtime.production.min.js","node_modules/@babel/runtime/helpers/isNativeFunction.js","node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","../../src/sweet/setUpErrorManager.fx.ts","../../src/sweet/NativeErrorManager.ts","node_modules/requires-port/index.js","node_modules/querystringify/index.js","node_modules/react-native-paper/lib/module/assets/back-chevron.png","node_modules/use-latest-callback/lib/src/useIsomorphicLayoutEffect.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","PressabilityDebugView.web.tsx","RNRenderer.web.ts","node_modules/strict-uri-encode/index.js","node_modules/decode-uri-component/index.js","node_modules/split-on-first/index.js","node_modules/filter-obj/index.js","node_modules/@react-navigation/drawer/node_modules/color-convert/index.js","node_modules/@react-navigation/drawer/node_modules/color-convert/route.js","node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/FontAwesome5_Solid.ttf","node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/FontAwesome5_Brands.ttf","node_modules/node-libs-browser/node_modules/buffer/index.js","node_modules/base64-js/index.js","node_modules/ieee754/index.js","node_modules/isarray/index.js","node_modules/@react-navigation/material-top-tabs/node_modules/color-convert/index.js","node_modules/@react-navigation/material-top-tabs/node_modules/color-convert/route.js","index.tsx","node_modules/@react-navigation/drawer/lib/module/views/assets/toggle-drawer-icon.png","node_modules/@react-native-community/slider/dist/RNCSliderNativeComponent.web.js","node_modules/@react-native-clipboard/clipboard/dist/useClipboard.js","node_modules/prop-types/factoryWithThrowingShims.js","node_modules/prop-types/lib/ReactPropTypesSecret.js","ReactNativeSVG.web.ts","SvgTouchableMixin.ts","resolve.ts","node_modules/qrcode/lib/can-promise.js","node_modules/qrcode/lib/core/qrcode.js","node_modules/qrcode/lib/core/bit-buffer.js","node_modules/qrcode/lib/core/bit-matrix.js","node_modules/qrcode/lib/core/alignment-pattern.js","node_modules/qrcode/lib/core/finder-pattern.js","node_modules/qrcode/lib/core/mask-pattern.js","node_modules/qrcode/lib/core/reed-solomon-encoder.js","node_modules/qrcode/lib/core/polynomial.js","node_modules/qrcode/lib/core/galois-field.js","node_modules/qrcode/lib/core/version.js","node_modules/qrcode/lib/core/format-info.js","node_modules/qrcode/lib/core/segments.js","node_modules/qrcode/lib/core/numeric-data.js","node_modules/qrcode/lib/core/alphanumeric-data.js","node_modules/qrcode/lib/core/byte-data.js","node_modules/encode-utf8/index.js","node_modules/qrcode/lib/core/kanji-data.js","node_modules/dijkstrajs/dijkstra.js","node_modules/qrcode/lib/renderer/canvas.js","node_modules/qrcode/lib/renderer/svg-tag.js","../src/Expo.fx.web.tsx","../../../../src/views/legacy/Overlay.tsx","../../../../src/views/legacy/Drawer.tsx","../../../../src/views/modern/Overlay.tsx","../../../../src/views/modern/Drawer.tsx","../../src/useLinkBuilder.tsx","../../src/Link.tsx","../../src/TabView.tsx","../../../src/navigators/createMaterialTopTabNavigator.tsx","../../src/PanResponderAdapter.tsx","SafeAreaView.web.tsx","../../../src/navigators/createDrawerNavigator.tsx","../../src/ResourceSavingView.tsx","../../../src/Header/Header.tsx","../../../src/Header/getHeaderTitle.tsx","../../src/SafeAreaProviderCompat.tsx","../../src/NavigationContainer.tsx","../src/Entypo.ts","../../../../../src/components/Typography/v2/Headline.tsx","../../../../../src/components/Typography/v2/Paragraph.tsx","../../../../../src/components/Typography/v2/Subheading.tsx","node_modules/axios/lib/helpers/AxiosURLSearchParams.js","node_modules/axios/lib/helpers/buildURL.js","node_modules/axios/lib/core/InterceptorManager.js","node_modules/axios/lib/defaults/transitional.js","node_modules/axios/lib/platform/browser/index.js","node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","node_modules/axios/lib/platform/browser/classes/FormData.js","node_modules/axios/lib/platform/browser/classes/Blob.js","node_modules/axios/lib/platform/common/utils.js","node_modules/axios/lib/platform/index.js","node_modules/axios/lib/helpers/formDataToJSON.js","node_modules/axios/lib/defaults/index.js","node_modules/axios/lib/helpers/toURLEncodedForm.js","node_modules/axios/lib/helpers/parseHeaders.js","node_modules/axios/lib/core/AxiosHeaders.js","node_modules/axios/lib/core/transformData.js","node_modules/axios/lib/cancel/isCancel.js","node_modules/axios/lib/cancel/CanceledError.js","node_modules/axios/lib/helpers/cookies.js","node_modules/axios/lib/core/buildFullPath.js","node_modules/axios/lib/helpers/isAbsoluteURL.js","node_modules/axios/lib/helpers/combineURLs.js","node_modules/axios/lib/helpers/isURLSameOrigin.js","node_modules/axios/lib/helpers/speedometer.js","node_modules/axios/lib/adapters/xhr.js","node_modules/axios/lib/core/settle.js","node_modules/axios/lib/helpers/parseProtocol.js","node_modules/axios/lib/adapters/adapters.js","node_modules/axios/lib/core/dispatchRequest.js","node_modules/axios/lib/core/mergeConfig.js","node_modules/axios/lib/env/data.js","node_modules/axios/lib/helpers/validator.js","node_modules/axios/lib/core/Axios.js","node_modules/axios/lib/cancel/CancelToken.js","node_modules/axios/lib/helpers/HttpStatusCode.js","node_modules/axios/lib/axios.js","node_modules/axios/lib/helpers/spread.js","node_modules/axios/lib/helpers/isAxiosError.js","../src/AssetSources.ts","../src/AssetUris.ts","../src/Asset.ts","../src/LocalAssets.web.ts","../src/ImageAssets.ts","../src/FontAwesome5.ts","../src/createIconSetFromFontAwesome5.ts"],"names":["module","exports","toPropertyKey","obj","key","value","Object","defineProperty","enumerable","configurable","writable","__esModule","Recoil_err","message","error","Error","undefined","stack","_","Recoil_isPromise","p","then","Recoil_nullthrows","x","_defineProperty","BaseLoadable","this","state","other","contents","_map","ValueLoadable","super","Promise","resolve","map","next","loadableWithPromise","isLoadable","loadableWithValue","e","loadableWithError","ErrorLoadable","reject","LoadingLoadable","promise","nextLoadable","catch","freeze","loadableLoading","loadableAll","inputs","output","every","i","some","find","all","loadableAllArray","Array","isArray","getOwnPropertyNames","outputs","reduce","out","idx","LoadableStaticInterface","of","loading","Recoil_Loadable","RecoilLoadable","Recoil_Loadable_1","Recoil_Loadable_2","Recoil_Loadable_3","Recoil_Loadable_4","Recoil_Loadable_5","Recoil_Loadable_6","Recoil_Loadable_7","Recoil_Loadable$1","__proto__","env","RECOIL_DUPLICATE_ATOM_KEY_CHECKING_ENABLED","RECOIL_GKS_ENABLED","Set","_process","process","name","set","_process$env$name","_process$env$name$toL","sanitizedValue","toLowerCase","trim","includes","readProcessEnvBooleanFlag","_process$env$name2","split","readProcessEnvStringArrayFlag","forEach","gk","add","applyProcessEnvFlagOverrides","Recoil_RecoilEnv","Recoil_gkx_OSS","has","setPass","setFail","delete","clear","Recoil_gkx","_createMutableSource","_useMutableSource","_useSyncExternalStore","Recoil_recoverableViolation","_projectName","createMutableSource","unstable_createMutableSource","useMutableSource","unstable_useMutableSource","useSyncExternalStore","unstable_useSyncExternalStore","ReactRendererVersionMismatchWarnOnce","Recoil_ReactMode","currentRendererSupportsUseSyncExternalStore","_ReactCurrentDispatch","ReactCurrentDispatcher","ReactCurrentOwner","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","isUseSyncExternalStoreSupported","current","currentDispatcher","reactMode","mode","early","concurrent","window","$disableRecoilValueMutableSource_TEMP_HACK_DO_NOT_USE","isFastRefreshEnabled","AbstractRecoilValue","newKey","RecoilState","RecoilValueReadOnly","Recoil_RecoilValue","isRecoilValue","Recoil_RecoilValue_1","Recoil_RecoilValue_2","Recoil_RecoilValue_3","Recoil_RecoilValue_4","Recoil_RecoilValue$1","Recoil_expectationViolation","format","args","Recoil_mapIterable","iterable","callback","index","isFastRefreshEnabled$1","DefaultValue","DEFAULT_VALUE","nodes","Map","recoilValues","NodeMissingError","configDeletionHandlers","getConfigDeletionHandler","get","Recoil_Node","registerNode","node","console","warn","checkForDuplicateAtomKey","recoilValue","getNode","getNodeMaybe","deleteNodeConfigIfPossible","_node$shouldDeleteCon","_getConfigDeletionHan","shouldDeleteConfigOnRelease","call","setConfigDeletionHandler","fn","recoilValuesForKeys","keys","Recoil_Queue","enqueueExecution","s","f","hamt_1","createCommonjsModule","_typeof","Symbol","iterator","constructor","prototype","hamt","BUCKET_SIZE","Math","pow","MASK","MAX_INDEX_NODE","MIN_ARRAY_NODE","nothing","constant","hash","str","type","len","length","charCodeAt","hashFragment","shift","h","toBitmap","fromBitmap","bitmap","bit","arrayUpdate","mutate","at","v","arr","arraySpliceOut","newLen","g","empty","__hamt_isEmpty","isEmptyNode","Leaf","edit","_modify","Leaf__modify","Collision","children","Collision__modify","IndexedNode","mask","IndexedNode__modify","ArrayNode","size","ArrayNode__modify","mergeLeaves","h1","n1","h2","n2","subH1","subH2","canEditNode","keyEq","k","_v","list","child","_newValue","newValue","updateCollisionList","frag","indx","exists","canEdit","newChildren","subNodes","count","expand","_i","arraySpliceIn","newChild","removed","elements","elem","pack","editable","config","root","_editable","_edit","_config","_root","_size","setTree","newRoot","newSize","tryGetHash","alt","tryGet","getHash","hasHash","defKeyCompare","y","make","isEmpty","modifyHash","NaN","modify","setHash","del","removeHash","deleteHash","remove","beginMutation","endMutation","transient","appk","lazyVisitChildren","lazyVisit","rest","DONE","done","MapIterator","v0","visit","buildPairs","entries","buildKeys","buildValues","values","fold","z","m","toVisit","pop","push","BuiltInMap","existing","persistentMap","HashArrayMappedTrieMap","_hamt","Recoil_PersistentMap_1","Recoil_PersistentMap$1","Recoil_differenceSets","setsWithValuesToRemove","ret","FIRST","otherSet","Recoil_mapMap","result","mergeDepsIntoGraph","newDeps","graph","olderGraph","nodeDeps","nodeToNodeSubscriptions","oldDeps","addedDeps","dep","removedDeps","Recoil_Graph","cloneGraph","saveDepsToStore","deps","store","version","_storeState$nextTree","_storeState$previousT","_storeState$previousT2","_storeState$previousT3","storeState","getState","currentTree","nextTree","previousTree","getGraph","_storeState$nextTree2","nextVersion","nextTreeStateVersion","nextStoreID","nextComponentID","Recoil_Keys","getNextTreeStateVersion","getNextStoreID","getNextComponentID","persistentMap$1","getNextTreeStateVersion$1","makeEmptyTreeState","stateID","transactionMetadata","dirtyAtoms","atomValues","nonvalidatedAtoms","Recoil_State","makeEmptyStoreState","commitDepth","knownAtoms","knownSelectors","transactionSubscriptions","nodeTransactionSubscriptions","nodeToComponentSubscriptions","queuedComponentCallbacks_DEPRECATED","suspendedComponentResolvers","graphsByVersion","retention","referenceCounts","nodesRetainedByZone","retainablesToCheckForRelease","nodeCleanupFunctions","RetentionZone","Recoil_RetentionZone","retentionZone","Recoil_CopyOnWrite","setByAddingToSet","setByDeletingFromSet","mapBySettingInMap","mapByUpdatingInMap","updater","mapByDeletingFromMap","mapByDeletingMultipleFromMap","ks","Recoil_filterIterable","predicate","Recoil_lazyProxy","base","factories","Proxy","target","prop","ownKeys","getNode$1","getNodeMaybe$1","recoilValuesForKeys$1","RetentionZone$1","setByAddingToSet$1","emptySet","ReadOnlyRecoilValueError","initializeNodeIfNewToStore","treeState","trigger","retentionCleanup","nodeKey","retainedBy","addToZone","zone","deleteFromZone","initializeRetentionForNode","nodeCleanup","init","peekNodeLoadable","peek","getDownstreamNodes","visitedNodes","visitingNodes","from","_graph$nodeToNodeSubs","subscribedNodes","downstreamNode","Recoil_FunctionalCore","getNodeLoadable","setNodeValue","initializeNode","cleanUpNode","_state$nodeCleanupFun","setUnvalidatedAtomValue_DEPRECATED","_node$invalidate","invalidate","clone","peekNodeInfo","nodeType","loadable","isActive","isSet","isModified","_graph$nodeDeps$get","subscribers","_storeState$nodeToCom","_storeState$nodeToCom2","components","_invalidateMemoizedSnapshot","Recoil_SnapshotCache","setInvalidateMemoizedSnapshot","invalidateMemoizedSnapshot","_invalidateMemoizedSn","getDownstreamNodes$1","getNodeLoadable$1","setNodeValue$1","getNextComponentID$1","getNode$2","getNodeMaybe$2","DefaultValue$1","reactMode$1","AbstractRecoilValue$1","RecoilState$1","RecoilValueReadOnly$1","isRecoilValue$1","invalidateMemoizedSnapshot$1","applyAction","action","valueOrUpdater","msg","valueFromValueOrUpdater","writes","writeLoadableToTreeState","unvalidatedValue","applyActionsToStore","actions","replaceState","newState","copyTreeState","invalidateDownstreams","queueOrPerformStateUpdate","batchStack","actionsByStore","downstreams","_getNodeMaybe","_getNodeMaybe$invalid","setRecoilValue","Recoil_RecoilValueInterface","getRecoilValueAsLoadable","setRecoilValueLoadable","markRecoilValueModified","setUnvalidatedRecoilValue","subscribeToRecoilValue","componentDebugName","subID","release","releaseStoreState","subs","applyAtomValueWrites","batchStart","refreshRecoilValue","_node$clearCache","clearCache","Recoil_someSet","context","entry","cleanUpNode$1","deleteNodeConfigIfPossible$1","getNode$3","RetentionZone$2","emptySet$1","releaseRetainablesNowOnCurrentTree","retainables","r","n","releasableNodes","searchFromNodes","nonReleasableNodes","findReleasableNodesInner","releasableNodesFoundThisIteration","doNotDescendInto1","doNotDescendInto2","answer","visited","getDownstreamNodesInTopologicalOrder","_storeState$retention","zonesThatCouldRetainNode","nodeChildren","parents","parent","findReleasableNodes","releaseNode","zones","_storeState$retention2","_storeState$retention3","updateRetainCountToZero","retainable","scheduleOrPerformPossibleReleaseOfRetainable","Recoil_Retention","SUSPENSE_TIMEOUT_MS","updateRetainCount","delta","_map$get","newCount","releaseScheduledRetainablesNow","retainedByOptionWithDefault","unstable_batchedUpdates","ReactBatchedUpdates","unstable_batchedUpdates$1","Recoil_ReactBatchedUpdates","batchStart$1","unstable_batchedUpdates$2","batcher","batchFn","Recoil_Batching","getBatcher","setBatcher","newBatcher","batchUpdates","batchEnd","Recoil_concatIterables","iters","iter","val","isSSR","Window","isReactNative","navigator","product","Recoil_Environment","isWindow","Recoil_Memoize","memoizeWithArgsHash","hashFunction","cache","hasOwnProperty","memoizeOneWithArgsHash","lastKey","lastResult","memoizeOneWithArgsHashAndInvalidation","batchUpdates$1","initializeNode$1","peekNodeInfo$1","graph$1","getNextStoreID$1","DEFAULT_VALUE$1","recoilValues$1","recoilValuesForKeys$2","AbstractRecoilValue$2","getRecoilValueAsLoadable$1","setRecoilValue$1","setUnvalidatedRecoilValue$1","updateRetainCount$1","setInvalidateMemoizedSnapshot$1","getNextTreeStateVersion$2","makeEmptyStoreState$1","isSSR$1","memoizeOneWithArgsHashAndInvalidation$1","Snapshot","parentStoreID","checkRefCount_INTERNAL","_store","getLoadable","toPromise","opt","isInitialized","mapper","mutableSnapshot","MutableSnapshot","async","retain","autoRelease_INTERNAL","storeID","replacer","graphs","newGraph","subscribeToTransactions","addTransactionMetadata","_refCount","released","_release","setTimeout","cleanup","cloneStoreState","bumpVersion","memoizedCloneSnapshot","invalidateMemoizedSnapshot$2","_store$getState$nextT","_store$getState$previ","String","snapshot","batch","getStore_INTERNAL","getStoreID","recoilState","newValueOrUpdater","_batch","Recoil_Snapshot","freshSnapshot","initializeState","cloneSnapshot","isRetained","Recoil_Snapshot_1","Recoil_Snapshot_2","Recoil_Snapshot_3","Recoil_Snapshot_4","Recoil_Snapshot$1","Recoil_unionSets","sets","useRef","Recoil_useRefInitOnce","initialValue","ref","getNextTreeStateVersion$3","makeEmptyStoreState$2","cleanUpNode$2","getDownstreamNodes$2","initializeNode$2","setNodeValue$2","setUnvalidatedAtomValue_DEPRECATED$1","graph$2","cloneGraph$1","getNextStoreID$2","createMutableSource$1","reactMode$2","applyAtomValueWrites$1","releaseScheduledRetainablesNow$1","freshSnapshot$1","useCallback","useContext","useEffect","useMemo","useRef$1","useState","notInAContext","defaultStore","stateReplacerIsBeingExecuted","startNextTreeIfNeeded","AppContext","createContext","useStoreRef","MutableSourceContext","notifyComponents","dependentNodes","comps","_subID","_debugName","sendEndOfBatchNotifications","subscriptions","subscription","cb","splice","Batcher","setNotifyBatcherOfChange","storeRef","setState","endBatch","nextID","RecoilRoot_INTERNAL","initializeState_DEPRECATED","store_INTERNAL","storeProp","storeStateRef","id","metadata","replaced","notifyBatcherOfChange","initial","atom","writtenNodes","setUnvalidatedAtomValues","initialStoreState_DEPRECATED","initialStoreState","mutableSource","atomKey","createElement","Provider","Recoil_RecoilRoot","RecoilRoot","props","override","propsExceptOverride","ancestorStoreRef","useRecoilMutableSource","useRecoilStoreID","notifyComponents_FOR_TESTING","sendEndOfBatchNotifications_FOR_TESTING","Recoil_shallowArrayEqual","a","b","l","useEffect$1","useRef$2","Recoil_usePrevious","useStoreRef$1","SUSPENSE_TIMEOUT_MS$1","updateRetainCount$2","RetentionZone$3","useEffect$2","useRef$3","isSSR$2","Recoil_useRetain","toRetain","timeoutID","clearTimeout","previousRetainables","useRetain_ACTUAL","Recoil_useComponentName","batchUpdates$2","DEFAULT_VALUE$2","currentRendererSupportsUseSyncExternalStore$1","reactMode$3","useMutableSource$1","useSyncExternalStore$1","useRecoilMutableSource$1","useStoreRef$2","isRecoilValue$2","AbstractRecoilValue$3","getRecoilValueAsLoadable$2","setRecoilValue$2","setUnvalidatedRecoilValue$2","subscribeToRecoilValue$1","useCallback$1","useEffect$3","useMemo$1","useRef$4","useState$1","setByAddingToSet$2","isSSR$3","handleLoadable","finally","useRecoilValueLoadable_SYNC_EXTERNAL_STORE","componentName","getSnapshot","memoizePreviousSnapshot","prevState","_prevState","_prevState2","nextState","is","getMemoizedSnapshot","subscribe","notify","useRecoilValueLoadable_MUTABLE_SOURCE","_storeState$nextTree3","getLoadableWithTesting","_storeState","newLoadable","prevLoadableRef","source","useRecoilValueLoadable_TRANSITION_SUPPORT","_storeState$nextTree4","updateState","_state","useRecoilValueLoadable_LEGACY","forceUpdate","_storeState$nextTree5","_prevLoadableRef$curr","_prevLoadableRef$curr2","useRecoilValueLoadable","TRANSITION_SUPPORT","SYNC_EXTERNAL_STORE","MUTABLE_SOURCE","LEGACY","useRecoilValue","useSetRecoilState","useRecoilValueLoadable_TRANSITION_SUPPORT_UNSTABLE","useRecoilValue_TRANSITION_SUPPORT_UNSTABLE","Recoil_Hooks","recoilComponentGetRecoilValueCount_FOR_TESTING","useRecoilInterface","recoilValuesUsed","previousSubscriptions","unsubscribeFrom","sub","currentSubscriptions","getRecoilValue","getRecoilValueLoadable","getRecoilState","getRecoilStateLoadable","getSetRecoilState","getResetRecoilState","useRecoilState","useRecoilStateLoadable","useResetRecoilState","useSetUnvalidatedAtomValues","useRecoilState_TRANSITION_SUPPORT_UNSTABLE","Recoil_filterMap","Recoil_filterSet","Recoil_mergeMaps","maps","nextKey","batchUpdates$3","DEFAULT_VALUE$3","getNode$4","nodes$1","useStoreRef$3","AbstractRecoilValue$4","setRecoilValueLoadable$1","SUSPENSE_TIMEOUT_MS$2","cloneSnapshot$1","useCallback$2","useEffect$4","useRef$5","useState$2","isSSR$4","useTransactionSubscription","externallyVisibleAtomValuesInState","toMap","persistedAtomContentsValues","persistence","persistence_UNSTABLE","gotoSnapshot","prev","keysToUpdate","_prev$atomValues$get","_next$atomValues$get","shouldRestoreFromSnapshots","getID","Recoil_SnapshotHooks","useRecoilSnapshot","setSnapshot","previousSnapshot","releaseRef","_releaseRef$current","_releaseRef$current2","_releaseRef$current3","useGotoRecoilSnapshot","useRecoilTransactionObserver","useTransactionObservation_DEPRECATED","previousAtomValues","atomInfo","_node$persistence_UNS","_node$persistence_UNS2","_node$persistence_UNS3","_node$persistence_UNS4","backButton","modifiedAtoms","useTransactionSubscription_DEPRECATED","peekNodeInfo$2","useStoreRef$4","Recoil_useGetRecoilValueInfo","reactMode$4","RecoilRoot$1","useStoreRef$5","useMemo$2","Recoil_useRecoilBridgeAcrossReactRoots","loadableWithValue$1","initializeNode$3","DEFAULT_VALUE$4","getNode$5","copyTreeState$1","getRecoilValueAsLoadable$3","invalidateDownstreams$1","writeLoadableToTreeState$1","isAtom","TransactionInterfaceImpl","_changes","_treeState","Recoil_AtomicUpdates_1","changeset","newTreeState_INTERNAL","Recoil_AtomicUpdates$1","atomicUpdater","Recoil_invariant","condition","atomicUpdater$1","batchUpdates$4","DEFAULT_VALUE$5","useStoreRef$6","refreshRecoilValue$1","setRecoilValue$3","cloneSnapshot$2","gotoSnapshot$1","useCallback$3","Sentinel","SENTINEL","recoilCallback","extraInterface","releaseSnapshot","_releaseSnapshot2","errMsg","callbackInterface","reset","refresh","transact_UNSTABLE","transaction","_releaseSnapshot","Recoil_useRecoilCallback","useRecoilCallback","useStoreRef$7","refreshRecoilValue$2","useCallback$4","Recoil_useRecoilRefresher","atomicUpdater$2","useStoreRef$8","useMemo$3","Recoil_useRecoilTransaction","atomicUpdate","transactionInterface","Recoil_Wrapper_1","Recoil_Wrapper$1","WrappedValue","isFastRefreshEnabled$2","ChangedPathError","Recoil_TreeCache_1","options","_options$onHit","_options$onSet","_options$mapNodeValue","_name","_numLeafs","_onHit","onHit","_onSet","onSet","_mapNodeValue","mapNodeValue","getNodeValue","handlers","_this$getLeafNode","getLeafNode","onNodeVisit","nodeValue","branches","route","addLeaf","_node2","_node3","_this$_root2","_handlers$onNodeVisit2","branchKey","_node","_handlers$onNodeVisit","_this$_root","invalidCacheError","oldLeaf","leafNode","leaf","_node4","CHANGED_PATH_ERROR_MESSAGE","Recoil_TreeCache$1","TreeCache","Recoil_LRUCache_1","_options$mapKey","_maxSize","maxSize","_head","_tail","_keyMapper","mapKey","mappedKey","head","right","left","_maybeDeleteLRU","deleteLru","tail","Recoil_LRUCache$1","LRUCache","LRUCache$1","TreeCache$1","Recoil_treeCacheLRU","lruCache","lruNode","Recoil_stableStringify","allowFunctions","stringify","JSON","_JSON$stringify","toString","toJSON","sort","localeCompare","filter","join","TreeCache$2","defaultPolicy","equality","eviction","Infinity","Recoil_treeCacheFromPolicy","getTreeCache","getValueMapper","isReactNative$1","isWindow$1","Recoil_PerformanceTimings","startPerfBlock","_id","isLoadable$1","loadableWithError$1","loadableWithPromise$1","loadableWithValue$2","WrappedValue$1","getNodeLoadable$2","peekNodeLoadable$1","setNodeValue$3","saveDepsToStore$1","DEFAULT_VALUE$6","getConfigDeletionHandler$1","getNode$6","registerNode$1","isRecoilValue$3","markRecoilValueModified$1","retainedByOptionWithDefault$1","recoilCallback$1","startPerfBlock$1","Canceled","CANCELED","dependencyStack","waitingStores","getNewExecutionID","executionID","selector","cachePolicy_UNSTABLE","cachePolicy","discoveredDependencyNodeKeys","retainedBy_UNSTABLE","executionInfoMap","liveStoresCount","selectorIsLive","selectorInit","selectorShouldDeleteConfigOnRelease","resolveAsync","depValues","setCache","notifyStoresOfResolvedAsync","isLatestExecution","clearExecutionInfo","notifyWaitingStores","clearWaitlist","stores","waitingStore","markStoreWaitingForResolvedAsync","wrapPendingDependencyPromise","existingDeps","loadingDepsState","resolvedDep","loadingDepKey","loadingDepPromise","cachedLoadable","getLoadableFromCacheAndUpdateDeps","getExecutionInfo","executionInfo","getInProgressExecutionInfo","loadingLoadable","evaluateSelectorGetter","updateDeps","_store$getState","_store$getState$curre","_store$getState2","_store$getState2$next","_store$getState3","_store$getState3$next","endPerfBlock","duringSynchronousExecution","duringAsynchronousExecution","finishEvaluation","resultIsError","depKey","depLoadable","stateVersions","notifyStoresOfNewAsyncDep","getCallback","errorOrPromise","wrapResultPromise","errorOrDepPromise","depValuesDiscoveredSoFarDuringAsyncWork","updateExecutionInfoDepValues","depsAfterCacheLookup","_getExecutionInfo","getSelectorLoadableAndUpdateDeps","cachedVal","inProgressExecutionInfo","_inProgressExecutionI","newExecutionID","newDepValues","setExecutionInfo","pendingExecutions","execInfo","anyDepChanged","execDepValues","execLoadable","_getExecutionInfo2","valLoadable","depValuesToDepRoute","selectorPeek","_peekNodeLoadable","selectorGet","slice","indexOf","detectCircularDependencies","invalidateSelector","clearSelectorCache","syncSelectorSetFinished","setRecoilState","setValue","dangerouslyAllowMutability","Recoil_selector","isLoadable$2","loadableWithError$2","loadableWithPromise$2","loadableWithValue$3","WrappedValue$2","peekNodeInfo$3","DEFAULT_VALUE$7","DefaultValue$2","getConfigDeletionHandler$2","registerNode$2","setConfigDeletionHandler$1","isRecoilValue$4","getRecoilValueAsLoadable$4","markRecoilValueModified$2","setRecoilValue$4","setRecoilValueLoadable$2","retainedByOptionWithDefault$2","unwrap","baseAtom","unwrapPromise","defaultLoadable","default","maybeFreezeValueOrPromise","cachedAnswerForUnvalidatedValue","cleanupEffectsByStore","valueOrPromise","peekAtom","_ref","_state$atomValues$get3","nonvalidatedValue","validatorResult","validator","validatedValueLoadable","initState","_options$effects","notifyDefaultSubscribers","_store$getState$nextT3","effects","effects_UNSTABLE","initValue","isDuringInit","isInitError","pendingSetSelf","retValue","getPromise","getInfo_UNSTABLE","_store$getState$nextT4","info","setSelf","effect","currentLoadable","currentValue","resetSelf","handler","_cleanupEffectsByStor2","currentStore","_currentTree$atomValu","_previousTree$atomVal","_pendingSetSelf","_pendingSetSelf2","_pendingSetSelf3","oldLoadable","oldValue","parentStoreID_UNSTABLE","_cleanupEffectsByStor3","_store$getState$nextT5","initLoadable","wrappedPromise","_state$atomValues$get","_store$getState$nextT2","_state$atomValues$get2","wrapPendingPromise","_cleanupEffectsByStor","restOptions","optionsDefault","storedValue","sel","baseValue","atomWithFallback","Recoil_atom","Recoil_MapCache_1","Recoil_MapCache$1","MapCache","LRUCache$2","MapCache$1","defaultPolicy$1","Recoil_cacheFromPolicy","getCache","getValueMapper$1","setConfigDeletionHandler$2","Recoil_atomFamily","_options$cachePolicyF","_options$cachePolicyF2","atomCache","cachePolicyForParams_UNSTABLE","params","_stableStringify","cachedAtom","atomOptions","newAtom","setConfigDeletionHandler$3","nextIndex","Recoil_selectorFamily","selectorCache","cachedSelector","myKey","myGet","callbacks","myCachePolicy","newSelector","constantSelector","Recoil_constSelector","throwingSelector","Recoil_errorSelector","Recoil_readOnlySelector","loadableWithError$3","loadableWithPromise$3","loadableWithValue$4","concurrentRequests","results","fill","exceptions","isError","exp","unwrapDependencies","dependencies","wrapResults","wrapLoadables","exception","Recoil_WaitFor","waitForNone","waitForAny","waitForAll","exceptionResults","syncResults","waitForAllSettled","noWait","dependency","DefaultValue$3","RecoilRoot$2","useRecoilStoreID$1","isRecoilValue$5","retentionZone$1","freshSnapshot$2","useRecoilState$1","useRecoilState_TRANSITION_SUPPORT_UNSTABLE$1","useRecoilStateLoadable$1","useRecoilValue$1","useRecoilValue_TRANSITION_SUPPORT_UNSTABLE$1","useRecoilValueLoadable$1","useRecoilValueLoadable_TRANSITION_SUPPORT_UNSTABLE$1","useResetRecoilState$1","useSetRecoilState$1","useGotoRecoilSnapshot$1","useRecoilSnapshot$1","useRecoilTransactionObserver$1","useRecoilCallback$1","noWait$1","waitForAll$1","waitForAllSettled$1","waitForAny$1","waitForNone$1","Recoil_index","RecoilEnv","useRecoilBridgeAcrossReactRoots_UNSTABLE","atomFamily","selectorFamily","constSelector","errorSelector","readOnlySelector","useGetRecoilValueInfo_UNSTABLE","useRecoilRefresher_UNSTABLE","useRecoilTransaction_UNSTABLE","useRecoilTransactionObserver_UNSTABLE","snapshot_UNSTABLE","useRetain","Recoil_index_1","Recoil_index_2","Recoil_index_3","Recoil_index_4","Recoil_index_5","Recoil_index_6","Recoil_index_7","Recoil_index_8","Recoil_index_9","Recoil_index_10","Recoil_index_11","Recoil_index_12","Recoil_index_13","Recoil_index_14","Recoil_index_15","Recoil_index_16","Recoil_index_17","Recoil_index_18","Recoil_index_19","Recoil_index_20","Recoil_index_21","Recoil_index_22","Recoil_index_23","Recoil_index_24","Recoil_index_25","Recoil_index_26","Recoil_index_27","Recoil_index_28","Recoil_index_29","Recoil_index_30","Recoil_index_31","Recoil_index_32","Recoil_index_33","Recoil_index_34","Recoil_index_35","Recoil_index_36","Recoil_index_37","Recoil_index_38","emptyObject","supportsCSS3TextDecoration","canUseDOM","CSS","supports","ignoredProps","elevation","overlayColor","resizeMode","tintColor","SYSTEM_FONT_STACK","STYLE_SHORT_FORM_EXPANSIONS","borderColor","borderRadius","borderStyle","borderWidth","marginHorizontal","marginVertical","overflow","overscrollBehavior","paddingHorizontal","paddingVertical","mapTransform","transform","normalizeValueWithProperty","createTransformValue","style","createReactDOMStyle","isInline","resolvedStyle","backgroundClip","WebkitBackgroundClip","flexGrow","flexShrink","flexBasis","flex","replace","fontVariant","verticalAlign","textDecorationLine","textDecoration","direction","longFormProperties","marginLeft","marginRight","marginTop","marginBottom","paddingLeft","paddingRight","paddingTop","paddingBottom","longForm","seed","murmurhash2_32_gc","uppercasePattern","msPattern","toHyphenLower","match","hyphenateStyleName","hName","test","w","wms","plugins","crossFade","cursor","imageSet","logical","position","sizing","transition","prefixMap","appearance","userSelect","textEmphasisPosition","textEmphasis","textEmphasisStyle","textEmphasisColor","boxDecorationBreak","clipPath","maskImage","maskMode","maskRepeat","maskPosition","maskClip","maskOrigin","maskSize","maskComposite","maskBorderSource","maskBorderMode","maskBorderSlice","maskBorderWidth","maskBorderOutset","maskBorderRepeat","maskBorder","maskType","textDecorationStyle","textDecorationSkip","textDecorationColor","breakAfter","breakBefore","breakInside","columnCount","columnFill","columnGap","columnRule","columnRuleColor","columnRuleStyle","columnRuleWidth","columns","columnSpan","columnWidth","backdropFilter","hyphens","flowInto","flowFrom","regionFragment","textOrientation","tabSize","fontKerning","textSizeAdjust","prefixAll","createPrefixer","staticData","_excluded","customGroup","display","margin","padding","PROPERTIES_FLIP","_PROPERTIES_FLIP","PROPERTIES_I18N","borderTopStartRadius","borderTopEndRadius","borderBottomStartRadius","borderBottomEndRadius","borderStartColor","borderStartStyle","borderStartWidth","borderEndColor","borderEndStyle","borderEndWidth","end","marginStart","marginEnd","paddingStart","paddingEnd","start","PROPERTIES_VALUE","atomic","compiledStyle","$$css","compiledRules","atomicCompile","identifier","cacheKey","stringifyValueWithProperty","cachedResult","createIdentifier","order","orderedRules","property","rules","_processKeyframesValu2","processKeyframesValue","animationNames","keyframesRules","block","createDeclarationBlock","animationName","apply","concat","_toConsumableArray","_block","color","opacity","finalValue","_block3","pointerEvents","_block4","_block2","_block5","scrollbarWidth","_block6","createAtomicRules","localizeableValue","_left","_right","propPolyfill","ltr","rtl","polyfillIndices","ltrPolyfillValues","rtlPolyfillValues","ltrVal","ltrPolyfill","rtlPolyfill","_ltr","_rtl","normalizedValue","domStyle","prefixStyles","prefix","keyframesValue","keyframes","_createKeyframes","steps","stepName","createKeyframes","staticStyleMap","WeakMap","sheet","createSheet","insertRules","compiledOrderedRules","rule","insert","compileAndInsertReset","_classic","animationKeyframes","_objectWithoutPropertiesLoose","_processKeyframesValu","_objectSpread","classic","absoluteFillObject","top","bottom","absoluteFill","create","styles","compiledStyles","styleObj","_atomic","preprocess","compileAndInsertAtomic","StyleSheet","isRTL","writingDirection","styleProps","styleq","factory","localizeStyle","customStyleq","originalStyle","frozenProps","nextStyle","originalProp","originalValue","originalValues","valuePolyfill","inline","compose","style1","style2","flatten","_len","arguments","_key","flatArray","flat","assign","getSheet","textContent","getTextContent","hairlineWidth","__REACT_DEVTOOLS_GLOBAL_HOOK__","resolveRNStyle","stylesheet","instance","Constructor","TypeError","_defineProperties","descriptor","protoProps","staticProps","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","bind","forwardPropsList","forwardedProps","href","lang","onScroll","onWheel","View","React","forwardedRef","hrefAttrs","onLayout","onMoveShouldSetResponder","onMoveShouldSetResponderCapture","onResponderEnd","onResponderGrant","onResponderMove","onResponderReject","onResponderRelease","onResponderStart","onResponderTerminate","onResponderTerminationRequest","onScrollShouldSetResponder","onScrollShouldSetResponderCapture","onSelectionChangeShouldSetResponder","onSelectionChangeShouldSetResponderCapture","onStartShouldSetResponder","onStartShouldSetResponderCapture","hasTextAncestor","TextAncestorContext","hostRef","contextDirection","useLocaleContext","useElementLayout","useResponderEvents","component","langDirection","getLocaleDirection","componentDirection","dir","supportedProps","pick","pickProps","view$raw","download","rel","charAt","platformMethodsRef","usePlatformMethods","setRef","useMergeRefs","displayName","alignItems","backgroundColor","border","boxSizing","flexDirection","listStyle","minHeight","minWidth","zIndex","attachNativeEvent","viewRef","eventName","argMapping","eventMappings","invariant","nativeEvent","traverse","path","AnimatedValue","__makeNative","nativeEventPath","animatedValueTag","__getNativeTag","viewTag","findNodeHandle","mapping","NativeAnimatedHelper","API","addAnimatedEventToView","detach","removeAnimatedEventFromView","AnimatedEvent","_classCallCheck","_listeners","_argMapping","useNativeDriver","listener","__addListener","_callListeners","_attachedEvent","__isNative","shouldUseNativeDriver","_createClass","_this","_len2","_key3","recMapping","recEvt","mappingKey","_len3","_key4","_callSuper","t","_possibleConstructorReturn","Boolean","valueOf","Reflect","construct","_isNativeReflectConstruct","AnimatedTransform","_AnimatedWithChildren","transforms","_transforms","_inherits","AnimatedNode","_get","__getValue","__getAnimatedValue","_this2","__addChild","_this3","__removeChild","transConfigs","nodeTag","transformDataType","validateTransform","AnimatedWithChildren","flattenStyle","AnimatedStyle","_style","updatedStyle","_walkStyleAndGetValues","_walkStyleAndGetAnimatedValues","styleConfig","styleKey","validateStyles","AnimatedProps","_AnimatedNode","_props","_callback","__attach","__getHandler","_animatedView","__disconnectAnimatedView","__connectAnimatedView","animatedView","nativeViewTag","connectAnimatedNodeToView","disconnectAnimatedNodeFromView","restoreDefaultValues","propsConfig","propKey","setAndForwardRef","getForwardedRef","setLocalRef","_excluded2","animatedComponentNextId","createAnimatedComponent","Component","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","getNativeScrollRef","getScrollResponder","_waitForUpdate","setWaitingForIdentifier","_markUpdateComplete","unsetWaitingForIdentifier","_animatedPropsCallback","setNativeProps","_propsAnimated","_setComponentRef","_prevComponent","_ref$constructor$name","_this$_component","scrollableNode","getScrollableNode","_loop","__detach","nextProps","oldPropsAnimated","__restoreDefaultValues","_ref$style","_ref2","passthroughAnimatedPropExplicitValues","_ref2$style","passthruStyle","passthruProps","mergedStyle","_extends","_attachProps","setNativeView","_attachNativeEvents","newProps","prevProps","_detachNativeEvents","FlatList","scrollEventThrottle","Image","collapsable","ScrollView","SectionList","Text","AnimatedAddition","_a","_b","AnimatedInterpolation","input","AnimatedDiffClamp","min","max","_min","_max","_value","_lastValue","diff","AnimatedDivision","_warnedAboutDivideByZero","AnimatedModulo","modulus","_modulus","AnimatedMultiplication","AnimatedSubtraction","AnimatedTracking","animationClass","animationConfig","_parent","_animationClass","_animationConfig","_useNativeDriver","animate","toValue","__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","stop","stopAnimation","resetAnimation","_startNativeLoop","iterations","_isUsingNativeDriver","sequence","animations","finished","animation","doneCount","hasEnded","endResult","delay","time","duration","Value","ValueXY","Interpolation","Node","decay","_start3","DecayAnimation","spring","_start","SpringAnimation","subtract","divide","multiply","modulo","diffClamp","stagger","loop","_temp","_ref$iterations","_ref$resetBeforeItera","resetBeforeIteration","isFinished","iterationsSoFar","restart","event","animatedEvent","forkEvent","unforkEvent","__removeListener","Event","__PropsOnlyForTests","emptyAnimation","anyValue","AnimatedImplementation","Animated","Platform","isTesting","AnimatedMock","subClass","superClass","objectWithoutPropertiesLoose","excluded","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","OS","select","web","assertThisInitialized","self","ReferenceError","asyncGeneratorStep","gen","_next","_throw","arg","err","colorString","convert","_slice","skippedModels","hashedModelKeys","model","labels","limiters","Color","channels","valpha","newArr","zeroArray","alpha","hashedKeys","limit","getset","channel","modifier","maxfn","assertArray","string","places","to","rgb","round","percentString","percent","array","object","unitArray","unitObject","num","Number","toFixed","roundTo","roundToPlace","red","green","blue","hue","saturationl","lightness","saturationv","chroma","gray","white","wblack","cyan","magenta","yellow","black","keyword","hex","rgbNumber","luminosity","lum","chan","contrast","color2","lum1","lum2","level","contrastRatio","isDark","isLight","negate","lighten","ratio","hsl","darken","saturate","desaturate","whiten","hwb","blacken","grayscale","fade","opaquer","rotate","degrees","mix","mixinColor","weight","color1","w1","w2","newAlpha","raw","State","UNDETERMINED","FAILED","BEGAN","CANCELLED","ACTIVE","END","superPropBase","receiver","desc","getOwnPropertyDescriptor","DefaultTheme","MD3LightTheme","createTheming","ThemeProvider","withTheme","useAppTheme","useTheme","overrides","useInternalTheme","themeOverrides","withInternalTheme","WrappedComponent","defaultThemesByVersion","light","MD2LightTheme","dark","MD2DarkTheme","MD3DarkTheme","getTheme","isV3","themeVersion","scheme","adaptNavigationTheme","themes","reactNavigationLight","reactNavigationDark","materialLight","materialDark","getAdaptedTheme","navigationTheme","MD3Theme","colors","primary","background","card","level2","text","onSurface","outline","notification","MD3Themes","NavigationThemes","curr","LightTheme","DarkTheme","adaptedDark","getDynamicThemeElevations","elevations","elevationValue","surface","arrayWithoutHoles","iterableToArray","nonIterableSpread","hookCallback","hooks","isObject","hasOwnProp","isObjectEmpty","isUndefined","isNumber","isDate","Date","res","arrLen","extend","createUTC","locale","strict","createLocalOrUTC","utc","getParsingFlags","_pf","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","isValid","flags","parsedParts","isNowValid","_d","isNaN","getTime","invalidWeekday","_strict","bigHour","isFrozen","_isValid","createInvalid","fun","momentProperties","updateInProgress","copyConfig","momentPropertiesLen","_isAMomentObject","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","updateOffset","isMoment","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","argLen","deprecations","deprecateSimple","isFunction","Function","mergeConfigs","parentConfig","childConfig","Locale","zeroFill","number","targetLength","forceSign","absNumber","abs","zerosToFill","substr","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","func","localeData","formatMoment","expandFormat","mom","makeFormatFunction","invalidDate","replaceLongDateFormatTokens","longDateFormat","lastIndex","aliases","D","dates","date","d","days","day","weekdays","weekday","E","isoweekdays","isoweekday","DDD","dayofyears","dayofyear","hours","hour","ms","milliseconds","millisecond","minutes","minute","M","months","month","Q","quarters","quarter","seconds","second","gg","weekyears","weekyear","GG","isoweekyears","isoweekyear","weeks","week","W","isoweeks","isoweek","years","year","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","regexes","priorities","isoWeekday","dayOfYear","weekYear","isoWeekYear","isoWeek","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchWord","match1to2NoLeadingZero","match1to2HasZero","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","RegExp","regexEscape","matched","p1","p2","p3","p4","absFloor","ceil","floor","toInt","argumentForCoercion","coercedNumber","isFinite","tokens","addParseToken","tokenLen","addWeekParseToken","_w","addTimeToArrayFromToken","isLeapYear","daysInYear","parseTwoDigitYear","parseInt","getSetYear","makeGetSet","unit","keepTime","set$1","isUTC","getUTCMilliseconds","getMilliseconds","getUTCSeconds","getSeconds","getUTCMinutes","getMinutes","getUTCHours","getHours","getUTCDate","getDate","getUTCDay","getDay","getUTCMonth","getMonth","getUTCFullYear","getFullYear","setUTCMilliseconds","setMilliseconds","setUTCSeconds","setSeconds","setUTCMinutes","setMinutes","setUTCHours","setHours","setUTCDate","setDate","setUTCFullYear","setFullYear","daysInMonth","modMonth","monthsShort","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","setMonth","setUTCMonth","getSetMonth","computeMonthsParse","cmpLenRev","shortP","longP","shortPieces","longPieces","mixedPieces","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","createDate","createUTCDate","UTC","firstWeekOffset","dow","doy","fwd","dayOfYearFromWeeks","resYear","resDayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","shiftWeekdays","ws","weekdaysMin","weekdaysShort","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","computeWeekdaysParse","minp","shortp","longp","minPieces","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","hFormat","lowercase","matchMeridiem","_meridiemParse","kInput","_isPm","isPM","_meridiem","pos","pos1","pos2","globalLocale","getSetHour","baseConfig","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","LTS","LT","L","LL","LLL","LLLL","dayOfMonthOrdinalParse","relativeTime","future","past","ss","mm","hh","dd","ww","MM","yy","meridiemParse","locales","localeFamilies","commonPrefix","arr1","arr2","minl","normalizeLocale","loadLocale","oldLocale","isLocaleNameSane","_abbr","getSetGlobalLocale","data","getLocale","defineLocale","abbr","parentLocale","names","j","chooseLocale","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","exec","isoDatesLen","isoTimesLen","configFromStringAndFormat","untruncateYear","yearStr","configFromRFC2822","parsedArray","monthStr","dayStr","hourStr","minuteStr","secondStr","extractFromRFC2822Strings","weekdayStr","parsedInput","checkWeekday","obsOffset","militaryOffset","numOffset","hm","calculateOffset","defaults","c","configFromArray","currentDate","expectedWeekday","yearToUse","nowValue","now","_useUTC","currentDateArray","temp","weekdayOverflow","curWeek","createLocal","_week","_dayOfYear","dayOfYearFromWeekInfo","_nextDay","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","isPm","meridiemHour","meridiemFixWrap","erasConvertYear","prepareConfig","preparse","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","score","configFromStringAndArray","createFromInputFallback","configFromString","dayOrDate","configFromObject","configFromInput","createFromConfig","prototypeMin","prototypeMax","pickBy","moments","ordering","Duration","unitHasDecimal","orderLen","parseFloat","isDurationValid","_milliseconds","_days","_months","_data","_bubble","isDuration","absRound","offset","separator","utcOffset","sign","offsetFromString","chunkOffset","matcher","parts","matches","cloneWithOffset","setTime","local","getDateOffset","getTimezoneOffset","isUtc","aspNetRegex","isoRegex","createDuration","diffRes","parseIso","isBefore","positiveMomentsDifference","momentsDifference","inp","isAfter","createAdder","period","tmp","addSubtract","isAdding","invalid","isString","isMomentInput","arrayTest","dataTypeTest","item","isNumberOrStringArray","objectTest","propertyTest","properties","propertyLen","isMomentInputObject","isCalendarSpec","monthDiff","wholeMonthDiff","anchor","newLocaleData","defaultFormat","defaultFormatUtc","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","matchEraAbbr","erasAbbrRegex","computeErasParse","erasName","erasAbbr","erasNarrow","abbrPieces","namePieces","narrowPieces","eras","narrow","_erasRegex","_erasNameRegex","_erasAbbrRegex","_erasNarrowRegex","addWeekYearFormatToken","getter","getSetWeekYearHelper","weeksTarget","setWeekAll","dayOfYearData","erasNameRegex","erasNarrowRegex","erasParse","_eraYearOrdinalRegex","eraYearOrdinalParse","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetMillisecond","getSetSecond","parseMs","proto","preParsePostFormat","formats","sod","startOf","calendarFormat","asFloat","that","zoneDelta","endOf","startOfDate","inputString","postformat","withoutSuffix","humanize","fromNow","toNow","invalidAt","localInput","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","parsingFlags","prioritized","unitsObj","u","priority","getPrioritizedUnits","prioritizedLen","toArray","toObject","toDate","toISOString","keepOffset","inspect","suffix","isLocal","for","unix","creationData","eraName","since","until","eraNarrow","eraAbbr","eraYear","isoWeeks","weekInfo","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","parseWeekday","parseIsoWeekday","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","parseZone","tZone","hasAlignedHourOffset","isDST","isUtcOffset","zoneAbbr","zoneName","isDSTShifted","_isDSTShifted","array1","array2","dontConvert","lengthDiff","diffs","compareArrays","proto$1","get$1","field","setter","listMonthsImpl","listWeekdaysImpl","localeSorted","_calendar","_longDateFormat","formatUpper","toUpperCase","tok","_invalidDate","_ordinal","isFuture","_relativeTime","pastFuture","_eras","isFormat","_monthsShort","_monthsParseExact","firstDayOfYear","firstDayOfWeek","_weekdays","_weekdaysMin","_weekdaysShort","_weekdaysParseExact","_fullWeekdaysParse","isLower","langData","mathAbs","addSubtract$1","absCeil","daysToMonths","monthsToDays","makeAs","alias","as","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","valueOf$1","makeGetter","thresholds","substituteTimeAgo","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","total","proto$2","monthsFromDays","argWithSuffix","argThresholds","withSuffix","th","posNegDuration","relativeTime$1","toIsoString","updateLocale","tmpLocale","relativeTimeRounding","roundingFunction","relativeTimeThreshold","threshold","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","DATE","TIME","TIME_SECONDS","TIME_MS","WEEK","MONTH","kindOf","thing","kindOfTest","typeOfTest","isArrayBuffer","isPlainObject","toStringTag","isFile","isBlob","isFileList","isURLSearchParams","allOwnKeys","findKey","_global","globalThis","global","isContextDefined","isTypedArray","TypedArray","Uint8Array","isHTMLForm","isRegExp","reduceDescriptors","reducer","descriptors","getOwnPropertyDescriptors","reducedDescriptors","defineProperties","ALPHA","ALPHABET","DIGIT","ALPHA_DIGIT","isAsyncFn","isBuffer","isFormData","kind","FormData","append","isArrayBufferView","ArrayBuffer","isView","buffer","isBoolean","isStream","pipe","merge","caseless","assignValue","targetKey","thisArg","stripBOM","content","inherits","superConstructor","toFlatObject","sourceObj","destObj","propFilter","merged","endsWith","searchString","forEachEntry","pair","matchAll","regExp","freezeMethods","toObjectSet","arrayOrString","delimiter","define","toCamelCase","noop","toFiniteNumber","defaultValue","generateString","alphabet","random","isSpecCompliantForm","toJSONObject","reducedValue","isThenable","validateFormat","argIndex","framesToPop","transparent","red50","red100","red200","red300","red400","red500","red600","red700","red800","red900","redA100","redA200","redA400","redA700","pink50","pink100","pink200","pink300","pink400","pink500","pink600","pink700","pink800","pink900","pinkA100","pinkA200","pinkA400","pinkA700","purple50","purple100","purple200","purple300","purple400","purple500","purple600","purple700","purple800","purple900","purpleA100","purpleA200","purpleA400","purpleA700","deepPurple50","deepPurple100","deepPurple200","deepPurple300","deepPurple400","deepPurple500","deepPurple600","deepPurple700","deepPurple800","deepPurple900","deepPurpleA100","deepPurpleA200","deepPurpleA400","deepPurpleA700","indigo50","indigo100","indigo200","indigo300","indigo400","indigo500","indigo600","indigo700","indigo800","indigo900","indigoA100","indigoA200","indigoA400","indigoA700","blue50","blue100","blue200","blue300","blue400","blue500","blue600","blue700","blue800","blue900","blueA100","blueA200","blueA400","blueA700","lightBlue50","lightBlue100","lightBlue200","lightBlue300","lightBlue400","lightBlue500","lightBlue600","lightBlue700","lightBlue800","lightBlue900","lightBlueA100","lightBlueA200","lightBlueA400","lightBlueA700","cyan50","cyan100","cyan200","cyan300","cyan400","cyan500","cyan600","cyan700","cyan800","cyan900","cyanA100","cyanA200","cyanA400","cyanA700","teal50","teal100","teal200","teal300","teal400","teal500","teal600","teal700","teal800","teal900","tealA100","tealA200","tealA400","tealA700","green50","green100","green200","green300","green400","green500","green600","green700","green800","green900","greenA100","greenA200","greenA400","greenA700","lightGreen50","lightGreen100","lightGreen200","lightGreen300","lightGreen400","lightGreen500","lightGreen600","lightGreen700","lightGreen800","lightGreen900","lightGreenA100","lightGreenA200","lightGreenA400","lightGreenA700","lime50","lime100","lime200","lime300","lime400","lime500","lime600","lime700","lime800","lime900","limeA100","limeA200","limeA400","limeA700","yellow50","yellow100","yellow200","yellow300","yellow400","yellow500","yellow600","yellow700","yellow800","yellow900","yellowA100","yellowA200","yellowA400","yellowA700","amber50","amber100","amber200","amber300","amber400","amber500","amber600","amber700","amber800","amber900","amberA100","amberA200","amberA400","amberA700","orange50","orange100","orange200","orange300","orange400","orange500","orange600","orange700","orange800","orange900","orangeA100","orangeA200","orangeA400","orangeA700","deepOrange50","deepOrange100","deepOrange200","deepOrange300","deepOrange400","deepOrange500","deepOrange600","deepOrange700","deepOrange800","deepOrange900","deepOrangeA100","deepOrangeA200","deepOrangeA400","deepOrangeA700","brown50","brown100","brown200","brown300","brown400","brown500","brown600","brown700","brown800","brown900","blueGrey50","blueGrey100","blueGrey200","blueGrey300","blueGrey400","blueGrey500","blueGrey600","blueGrey700","blueGrey800","blueGrey900","grey50","grey100","grey200","grey300","grey400","grey500","grey600","grey700","grey800","grey900","UPDATED_NODES","loopID","propUpdatesEnqueued","nodeCount","callID","getCallID","setCallID","nextCallID","sanitizeConfig","__nodeID","runPropUpdates","findAndUpdateNodes","update","__getChildren","scheduleUpdates","requestAnimationFrame","setImmediate","nodeConfig","inputNodes","__lastLoopID","__memoizedValue","__children","__nodeConfig","__initialized","__inputNodes","__nativeInitialize","__nativeTearDown","__onEvaluate","__markUpdated","ReanimatedModule","createNode","dropNode","connectNodes","__dangerouslyRescheduleEvaluate","disconnectNodes","connectNodeToView","disconnectNodeFromView","defaultSpacingFunc","space","SpacingFuncContext","useSpacingFunc","useSpacing","spacingFunc","SpacingFuncProvider","Box","minH","maxH","minW","maxW","mt","mr","mb","ml","me","mh","mv","pt","pr","pb","pl","ps","pe","ph","pv","borderTop","borderRight","borderBottom","borderLeft","borderStart","borderEnd","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","radius","topLeftRadius","topRightRadius","bottomLeftRadius","bottomRightRadius","topStartRadius","topEndRadius","bottomStartRadius","bottomEndRadius","bg","boxStyle","height","maxHeight","width","maxWidth","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","cloneElement","Divider","orientation","thickness","dividerStyle","Flex","center","justify","items","wrap","basis","grow","shrink","justifyContent","alignSelf","alignContent","flexWrap","flexStyle","Spacer","getValidChildren","Children","isValidElement","Selector","childrenStyle","validChildren","firstChild","notFirstChild","lastChild","notLastChild","even","odd","Stack","spacing","divider","shouldWrapChildren","spacingValue","spacingStyle","shouldUseChildren","clones","isLast","wrappedChild","_child","dividerElement","clonedDivider","StackItem","HStack","reverse","VStack","Wrap","WrapItem","defaultTheme","colorScheme","0","android","shadowColor","shadowOffset","shadowOpacity","shadowRadius","boxShadow","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","palette","main","on","secondary","shapes","small","medium","large","typography","fontWeight","fontSize","letterSpacing","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","button","textTransform","caption","overline","darkTheme","ThemeContext","theme","useColorScheme","usePaletteColor","_main","startsWith","IconComponentContext","useIconComponent","IconComponentProvider","IconComponent","Icon","PortalContext","usePortalContext","portal","PortalProvider","portals","setPortals","Outlet","Fragment","Portal","defaultWindowSizes","sm","md","lg","xl","WindowSizeClassContext","useWindowSizeClass","WindowSizeClassProvider","windowSizes","useWindowDimensions","windowSizeClass","inputRange","useAnimatedElevation","animated","interpolate","outputRange","useBoolean","initialState","off","toggle","classes","useWindowSize","query","nearest","useSurfaceScale","scale","domain","useSurfaceColor","surfaceScale","useSurfaceColorValue","useStyles","surfaceColor","windowSize","useWindowSizeValue","ActivityIndicator","Surface","category","variant","contentContainer","ios","leadingContainer","trailingContainer","titleContainer","centeredTitleContainer","AppBar","title","subtitle","centerTitle","leading","trailing","enableColorOnDark","contentContainerStyle","titleContentStyle","titleStyle","subtitleStyle","leadingContainerStyle","trailingContainerStyle","titleElement","subtitleElement","leadingElement","trailingElement","Avatar","label","image","icon","initials","uppercase","autoColor","imageContainerStyle","labelStyle","imageStyle","getColor","container","namesArray","getInitials","getLabel","Backdrop","revealed","header","headerHeight","backLayer","backLayerHeight","subheader","subheaderHeight","headerContainerStyle","backLayerContainerStyle","frontLayerContainerStyle","subheaderContainerStyle","currentHeaderHeight","setCurrentHeaderHeight","currentBackLayerHeight","setCurrentBackLayerHeight","currentSubheaderHeight","setCurrentSubheaderHeight","frontLayer","dimensions","translateY","layout","inset","leadingInset","trailingInset","BackdropSubheader","titleContainerStyle","Badge","showZero","visible","isVisible","Banner","illustration","buttons","illustrationContainerStyle","textContainerStyle","textStyle","actionsContainerStyle","illustrationContainer","textContainer","actionsContainer","effectContainer","ripple","Pressable","pressEffect","pressEffectColor","onPressIn","onPressOut","onFocus","onBlur","android_ripple","onMouseEnter","onMouseLeave","setSize","ripples","setRipples","handleLayout","pressed","setPressed","handlePressIn","locationX","locationY","easing","Easing","ease","handlePressOut","focused","setFocused","handleFocus","handleBlur","hovered","setHovered","handleMouseEnter","handleMouseLeave","disabled","Button","compact","disableElevation","loadingIndicatorPosition","loadingIndicator","pressableContainerStyle","loadingOverlayContainerStyle","onPress","onLongPress","delayLongPress","hitSlop","pressRetentionOffset","android_disableSound","testOnly_pressed","contentColor","hasLeading","hasTrailing","pressableContainer","pressable","loadingOverlayContainer","getLoadingIndicator","animatedElevation","selectable","getTitle","Chip","labelElement","backdrop","Dialog","onDismiss","portalVisible","setPortalVisible","cubic","TouchableWithoutFeedback","needsOffscreenAlphaCompositing","DialogActions","DialogContent","DialogHeader","FAB","iconContainerStyle","labelContainerStyle","hasIcon","iconContainer","labelContainer","IconButton","ListItem","secondaryText","meta","leadingMode","Snackbar","Switch","TextInput","forwardRef","helperText","inputContainerStyle","inputStyle","placeholder","leadingNode","trailingNode","focusAnimation","active","activeAnimation","inputContainer","underline","underlineFocused","outlineLabelGap","selectionColor","placeholderTextColor","scaleX","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","cos","PI","sqrt","bounciness","_t","_t2","t2","x1","y1","x2","y2","_bezier","I18nManager","allowRTL","forceRTL","getConstants","CALLBACK_TYPE","UNDEFINED","START","UPDATE","CHANGE","FINALIZE","TOUCHES_DOWN","TOUCHES_MOVE","TOUCHES_UP","TOUCHES_CANCELLED","Gesture","nextGestureId","BaseGesture","gestureId","handlerTag","isWorklet","addDependency","gesture","withRef","__workletHash","onBegin","onStart","onEnd","onFinalize","onTouchesDown","needsPointerData","onTouchesMove","onTouchesUp","onTouchesCancelled","enabled","shouldCancelWhenOutside","runOnJS","simultaneousWithExternalGesture","gestures","requireExternalGestureToFail","withTestId","testId","cancelsTouchesInView","initialize","getNextHandlerTag","toGestureArray","prepare","shouldUseReanimated","isRemoteDebuggingEnabled","ContinousBaseGesture","onUpdate","onChange","manualActivation","getContrastingColor","restStyle","textColor","AvatarImage","onError","onLoad","onLoadEnd","onLoadStart","onProgress","testID","accessibilityIgnoresInvertColors","AvatarText","customColor","maxFontSizeMultiplier","fontScale","lineHeight","numberOfLines","textAlign","textAlignVertical","DrawerItem","customRippleColor","rippleColor","accessibilityLabel","labelMaxFontSizeMultiplier","roundness","secondaryContainer","onSecondaryContainer","onSurfaceVariant","labelMargin","font","fonts","labelLarge","TouchableRipple","borderless","v3Container","accessibilityRole","accessibilityState","selected","wrapper","v3Wrapper","isFirstRendering","regular","DrawerCollapsedItem","focusedIcon","unfocusedIcon","badge","numOfLines","setNumOfLines","animScale","iconPadding","labelColor","iconColor","androidLetterSpacingStyle","labelTextStyle","labelMedium","accessibilityTraits","accessibilityComponentType","roundedOutline","badgeContainer","onTextLayout","lines","itemSize","DrawerSection","showDivider","titleMaxFontSizeMultiplier","titleColor","titleMargin","titleSmall","v3TitleContainer","horizontalInset","bold","v3Divider","MD3Colors","neutralVariant50","ListAccordionGroupContext","ListAccordionGroup","expandedIdProp","expandedId","onAccordionPress","setExpandedId","newExpandedId","currentExpandedId","getLeftStyles","alignToTop","description","stylesV3","iconMarginLeft","marginVerticalNone","getRightStyles","iconMarginRight","ListAccordion","descriptionStyle","titleNumberOfLines","descriptionNumberOfLines","expandedProp","expanded","descriptionMaxFontSizeMultiplier","setExpanded","setAlignToTop","expandedInternal","groupContext","isExpanded","descriptionColor","titleTextColor","getAccordionColors","handlePress","containerV3","rowV3","row","itemV3","multiline","MaterialCommunityIcon","childV3","ListIcon","contentStyle","titleEllipsizeMode","descriptionEllipsizeMode","onDescriptionTextLayout","renderTitle","ellipsizeMode","renderDescription","ListSubheader","overrideTheme","bodyMedium","ListSection","viewProps","ListImage","videoV3","video","absolute","onShowAnimationFinished","onHideAnimationFinished","measured","setLayout","showCallback","useLatestCallback","hideCallback","accessibilityLiveRegion","others","getLabelColor","_ref3","hasColor","defaultColor","useAnimatedValueArray","initialValues","refs","Touchable","centered","supported","BottomNavigationBar","navigationState","renderIcon","renderLabel","renderTouchable","getLabelText","getBadge","getAccessibilityLabel","getTestID","activeColor","inactiveColor","keyboardHidesNavigationBar","activeIndicatorStyle","labeled","animationEasing","onTabPress","onTabLongPress","shiftingProp","shifting","safeAreaInsets","compactProp","useSafeAreaInsets","routes","visibleAnim","useAnimatedValue","tabsAnims","indexAnim","rippleAnim","useLayout","keyboardVisible","setKeyboardVisible","handleKeyboardShow","handleKeyboardHide","animateToIndex","tab","useIsKeyboardShown","onShow","onHide","willShowSubscription","willHideSubscription","didShowSubscription","didHideSubscription","Keyboard","addListener","removeListener","eventForIndex","defaultPrevented","preventDefault","isDarkTheme","customBackground","approxBackgroundColor","overlay","v2BackgroundColorInterpolation","activeTintColor","getActiveTintColor","inactiveTintColor","getInactiveTintColor","touchColor","maxTabBarWidth","rippleSize","insets","bar","barContent","activeOpacity","inactiveOpacity","v3ActiveOpacity","v3InactiveOpacity","outlineScale","activeLabelColor","inactiveLabelColor","badgeStyle","isV3Shifting","v3Item","v3TouchableContainer","v3NoLabelContainer","v3IconContainer","iconWrapper","v3IconWrapper","labelWrapper","whiteSpace","OUTLINE_WIDTH","BottomNavigationRouteScreen","render","visibility","FAR_FAR_AWAY","SceneComponent","BottomNavigation","renderScene","barStyle","sceneAnimationEnabled","sceneAnimationType","sceneAnimationEasing","onIndexChange","getLazy","lazy","focusedKey","tabsPositionAnims","offsetsAnims","loaded","setLoaded","_ref4","prevNavigationState","handleTabPress","findIndex","jumpTo","previouslyFocused","countAlphaOffscreen","renderToHardwareTextureAndroid","offsetTarget","accessibilityElementsHidden","importantForAccessibility","removeClippedSubviews","translateX","SceneMap","scenes","Bar","getFABColors","customBackgroundColor","baseFABColorProps","isVariant","variantToCompare","surfaceDisabled","primaryContainer","tertiaryContainer","level3","accent","getBackgroundColor","foregroundColor","onSurfaceDisabled","onPrimaryContainer","onTertiaryContainer","getForegroundColor","_ref5","getBackdropColor","_ref6","customBackdropColor","getStackedFABBackgroundColor","_ref7","standardSize","smallSize","v3SmallSize","v3MediumSize","v3LargeSize","extended","v3Extended","uppercaseProp","customSize","CrossFadeIcon","fabStyle","_ref9","getCustomFabSize","getFabStyle","isLargeSize","isFlatMode","iconSize","loadingIndicatorSize","extendedStyle","_ref10","getExtendedFabDimensions","getExtendedFabStyle","md3Elevation","newAccessibilityState","elevated","uppercaseLabel","AnimatedPressable","FABGroup","open","toggleStackOnLongPress","onStateChange","colorProp","enableLongPressWhenStackOpened","backdropColor","prevActions","setPrevActions","close","_ref8","stackedFABBackgroundColor","getFABGroupColors","backdropOpacity","opacities","scales","translations","labelTranslations","containerPaddings","safeArea","it","labelTextColor","titleMedium","accessible","Card","accessibilityHint","containerStyle","v3ContainerStyle","fab","FABComponent","Group","standard","innerWrapper","shadowWrapper","shadow","v3Shadow","textPlaceholderContainer","AnimatedFAB","animateFrom","iconMode","isIOS","isAnimatedFromRight","isIconStatic","animFAB","textWidth","setTextWidth","textHeight","setTextHeight","extendedWidth","distance","linear","currentWidth","currentHeight","propForDirection","combinedStyles","defaultPositionStyles","animatedFromRightRTL","animatedFromLeft","animatedFromLeftRTL","getCombinedStyles","md2Elevation","shadowStyle","baseStyle","scaleY","AnimatedText","webContainer","progressBar","ProgressBar","indeterminate","progress","fillStyle","isWeb","timer","passedAnimatedValue","setWidth","prevWidth","setPrevWidth","indeterminateAnimation","startAnimation","isInteraction","trackTintColor","surfaceVariant","setColor","busy","accessibilityValue","onIconPress","iconAccessibilityLabel","wrapperStyle","hideTimeout","hidden","setHidden","handleOnVisible","POSITIVE_INFINITY","NEGATIVE_INFINITY","handleOnHidden","actionStyle","actionLabel","onPressAction","actionRippleColor","actionProps","buttonTextColor","inversePrimary","inverseOnSurface","inverseSurface","isIconButton","wrapperPaddings","DURATION_SHORT","DURATION_MEDIUM","DURATION_LONG","ToggleButtonGroupContext","ToggleButtonGroup","onValueChange","ToggleButton","status","Consumer","checked","getToggleButtonColor","ToggleButtonRow","first","last","middle","ToggleButtonComponent","Row","getSegmentedButtonBorderWidth","getSegmentedButtonColors","checkedColor","uncheckedColor","getSegmentedButtonBackgroundColor","getSegmentedButtonBorderColor","getSegmentedButtonTextColor","SegmentedButtonItem","showSelectedCheck","segment","density","checkScale","segmentBorderRadius","getSegmentedButtonBorderRadius","showIcon","showCheckedIcon","iconStyle","buttonStyle","getSegmentedButtonDensityPadding","rippleStyle","SegmentedButtons","multiSelect","disabledChildStyle","isDisabled","isNextDisabled","getDisabledSegmentedButtonStyle","nextValue","initialTheme","StyledText","NativeText","customText","Directions","RIGHT","LEFT","UP","DOWN","GestureHandlerRootView","gestureHandlerRootHOC","containerStyles","Wrapper","hoistNonReactStatics","PinchGestureHandler","createHandler","allowedProps","baseGestureHandlerProps","RotationGestureHandler","nativeViewProps","NativeViewGestureHandler","NATIVE_WRAPPER_PROPS_FILTER","createNativeWrapper","ComponentWrapper","gestureHandlerProps","_gestureHandlerRef","useImperativeHandle","FlingGesture","handlerName","numberOfPointers","pointers","changeEventCalculator","previous","changePayload","forceChange","force","ForceTouchGesture","minForce","maxForce","feedbackOnActivation","extendRelation","currentRelation","extendWith","ComposedGesture","prepareSingleGesture","simultaneousGestures","requireGesturesToFail","newConfig","simultaneousWith","requireToFail","flatMap","SimultaneousGesture","simultaneousArrays","ExclusiveGesture","gestureArrays","LongPressGesture","minDuration","minDurationMs","maxDistance","maxDist","changeX","translationX","changeY","translationY","PanGesture","activeOffsetY","activeOffsetYStart","activeOffsetYEnd","activeOffsetX","activeOffsetXStart","activeOffsetXEnd","failOffsetY","failOffsetYStart","failOffsetYEnd","failOffsetX","failOffsetXStart","failOffsetXEnd","minPointers","maxPointers","minDistance","minDist","minVelocity","velocity","minVelocityX","minVelocityY","averageTouches","avgTouches","enableTrackpadTwoFingerGesture","activateAfterLongPress","scaleChange","PinchGesture","rotationChange","rotation","RotationGesture","TapGesture","numberOfTaps","maxDuration","maxDurationMs","maxDelay","maxDelayMs","maxDeltaX","maxDeltaY","NativeGesture","shouldActivateOnStart","disallowInterruption","_previous","ManualGesture","GestureObjects","Tap","Pan","Pinch","Rotation","Fling","LongPress","ForceTouch","Native","Manual","Race","Simultaneous","Exclusive","RawButton","GestureHandlerButton","BaseButton","oldState","pointerInside","lastActive","onActiveStateChange","longPressDetected","longPressTimeout","onHandlerStateChange","handleEvent","onGestureEvent","processColor","AnimatedBaseButton","btnStyles","underlay","RectButton","underlayColor","BorderlessButton","TouchableNativeFeedback","TOUCHABLE_STATE","GenericTouchable","onMoveIn","onMoveOut","moveToState","STATE","shouldCallOnPress","pressOutTimeout","handleGoToUndetermined","delayPressIn","pressInTimeout","onLongPressDetected","handleMoveOutside","delayPressOut","componentDidMount","componentWillUnmount","coreProps","accessibilityActions","onAccessibilityAction","nativeID","touchSoundDisabled","extraButtonProps","exclusive","defaultProps","TouchableOpacity","childStyle","getChildStyleOpacityWithDefault","inOut","quad","useNativeAnimations","_from","setOpacityTo","TouchableHighlight","hasPressHandler","extraChildStyle","extraUnderlayStyle","onShowUnderlay","onHideUnderlay","showUnderlay","hideUnderlay","renderChildren","only","RNScrollView","RNSwitch","RNTextInput","DrawerLayoutAndroid","RNDrawerLayoutAndroid","positions","RefreshControl","renderScrollComponent","scrollProps","Swipeable","friction","overshootFriction","dragX","rowTranslation","leftWidth","rowWidth","rightOffset","rightWidth","overshootLeft","overshootRight","transX","showLeftAction","leftActionTranslate","MIN_VALUE","extrapolate","showRightAction","rightActionTranslate","ev","handleRelease","velocityX","rowState","leftThreshold","rightThreshold","startOffsetX","currentOffset","animateRow","fromValue","restSpeedThreshold","restDisplacementThreshold","animationOptions","onSwipeableLeftOpen","onSwipeableOpen","onSwipeableRightOpen","closingDirection","onSwipeableClose","onSwipeableLeftWillOpen","onSwipeableWillOpen","onSwipeableRightWillOpen","onSwipeableWillClose","updateAnimatedEvent","shouldComponentUpdate","renderLeftActions","renderRightActions","leftActions","rightActions","PanGestureHandler","onRowLayout","TapGestureHandler","onTapHandlerStateChange","childrenContainerStyle","DrawerLayout","drawerPosition","drawerWidth","drawerType","dragXValue","touchXValue","touchX","drawerTranslation","containerWidth","dragOffsetFromOnStartPosition","openValue","gestureOptions","onDrawerSlide","drawerWillShow","onDrawerStateChanged","emitStateChanged","drawerState","keyboardDismissMode","dismiss","hideStatusBar","StatusBar","statusBarAnimation","drawerShown","drawerLockMode","closeDrawer","gestureStartX","dragOffsetBasedOnStart","animateDrawer","showing","accessibilityIsModalView","accessibilityViewIsModal","pointerEventsView","minSwipeDistance","edgeWidth","fromLeft","gestureOrientation","panGestureHandler","speed","nextFramePosition","willShow","updateShowing","drawerOpened","onDrawerOpen","onDrawerClose","dynamicOverlayStyles","drawerBackgroundColor","drawerContainerStyle","drawerSlide","containerSlide","reverseContentDirection","dynamicDrawerStyles","drawerTranslateX","closedDrawerOffset","drawerStyles","handleContainerLayout","containerOnBack","containerInFront","renderOverlay","drawerContainer","renderNavigationView","onGestureRef","setPanGestureRef","openingHandlerStateChange","renderDrawer","Left","Right","startListening","_setGlobalConsole","testWorklet","_closure","asString","__location","throwUninitializedReanimatedException","checkPluginState","throwError","shouldBeUseWeb","isConfigured","isConfiguredCheck","pushFrame","frame","NativeReanimatedModule","_getTimestamp","requestFrame","native","runOnUI","worklet","makeShareable","getViewProp","propName","_WORKLET","_log","log","nativeShouldBeMock","getTimestamp","_frameTimestamp","_eventTimestamp","_getCurrentTime","workletValueSetter","timestamp","previousAnimation","_animation","cancelled","onFrame","isHigherOrder","step","makeMutable","makeRemote","startMapper","viewDescriptors","stopMapper","mapperId","__callAsync","installCoreFunctions","initializeAnimation","_setValue","capturableConsole","debug","featuresConfig","enableLayoutAnimations","setByUser","flag","isCallByUser","configureProps","uiProps","nativeProps","jestResetJsReanimatedModule","jestResetModule","sourceKeys","screen","listeners","shouldInit","win","visualViewport","docEl","document","documentElement","clientHeight","clientWidth","devicePixelRatio","handleResize","Dimensions","dimension","initialDimensions","removeEventListener","_handler","addEventListener","useCode","nodeFactory","animatedAlways","always","Code","code","assertNodesNotNull","procDecay","proc","clock","deceleration","lastTime","cond","deltaTime","kv","kx","lessThan","internalTiming","frameTime","nextProgress","newFrameTime","distanceLeft","fullDistance","startPosition","nextPosition","greaterOrEq","procSpring","prevPosition","damping","mass","stiffness","overshootClamping","x0","zeta","omega0","omega1","sin1","sin","cos1","underDampedEnvelope","underDampedFrag1","underDampedPosition","underDampedVelocity","criticallyDampedEnvelope","criticallyDampedPosition","criticallyDampedVelocity","isOvershooting","and","neq","greaterThan","isVelocity","isDisplacement","or","eq","Animation","TransitioningContext","configFromProps","durationMs","interpolation","delayMs","propagation","wrapTransitioningContext","Comp","_jsx","In","Change","_React$Component2","Out","_React$Component3","Together","_React$Component4","transitions","Sequence","_React$Component5","_key2","createTransitioningComponent","_React$Component6","Wrapped","propTypes","createRef","animateMount","animateNextTransition","_this$props","_objectWithoutProperties","_jsxs","Transitioning","Transition","stiffnessFromOrigamiValue","oValue","dampingFromOrigamiValue","stiffnessFromOrigamiNode","dampingFromOrigamiNode","makeDefaultConfig","makeConfigFromBouncinessAndSpeed","prevConfig","normalize","startValue","endValue","projectNormal","bouncyTension","bouncyFriction","tension","b3Friction2","b3Friction3","b3Nobounce","linearInterpolation","fromBouncinessAndSpeedNumbers","lessOrEq","fromBouncinessAndSpeedNodes","makeConfigFromOrigamiTensionAndFriction","useValue","backwardsCompatibleAnimWrapper","animationStateDefaults","alwaysNode","animationCallback","newClock","Clock","currentState","isStarted","isDone","wasStopped","currentAnimationCallback","isNativelyInitialized","evaluateOnce","clockRunning","startClock","__detachAnimation","stopClock","__attachAnimation","__stopImmediately_testOnly","createOldAnimationObject","procAcc","acc","procColor","procDiff","stash","defined","minVal","maxVal","interpolateColors","animationValue","outputColorRange","Extrapolate","CLAMP","procOnChange","prevValue","not","decayWrapper","backwardCompatibleAnimWrapper","decayDefaultState","timingWrapper","timingDefaultState","springWrapper","springDefaultState","useAnimatedReaction","react","useSharedValue","getTag","view","measure","scrollTo","isNative","animatedRef","element","viewportOffset","getBoundingClientRect","offsetWidth","offsetHeight","offsetLeft","offsetTop","pageX","pageY","isChromeDebugger","_animatedRef","_measure","_scrollTo","_x","_y","setGestureState","_setGestureState","useAnimatedRef","tag","useAnimatedScrollHandler","scrollHandlers","_useHandler","useHandler","doDependenciesDiffer","subscribeForEvents","onBeginDrag","onEndDrag","onMomentumBegin","onMomentumEnd","useEvent","SensorType","useAnimatedSensor","sensorType","userConfig","sensorData","sensor","unregister","isAvailable","interval","ROTATION","qw","qx","qy","qz","yaw","pitch","roll","NativeReanimated","registerSensor","unregisterSensor","KeyboardState","frameCallbackRegistry","FrameCallbackRegistryJS","useFrameCallback","autostart","setActive","manageStateFrameCallback","callbackId","registerFrameCallback","unregisterFrameCallback","useAnimatedKeyboard","listenerId","isSubscribed","keyboardEventData","UNKNOWN","subscribeForKeyboardEvents","unsubscribeFromKeyboardEvents","useScrollViewOffset","aref","offsetRef","contentOffset","registerForEvents","ColorSpace","interpolateColorsHSV","hsvToColor","interpolateColorsRGB","rgbaColor","getInterpolateRGB","processedColor","getInterpolateHSV","RGBtoHSV","interpolateColor","colorSpace","useInterpolateConfig","RGB","interpolateSharableColor","interpolateConfig","HSV","createAnimatedPropAdapter","adapter","nativePropsToAdd","addWhitelistedNativeProps","SVGAdapter","TextInputAdapter","BaseAnimationBuilder","randomizeDelay","build","durationV","delayV","callbackV","withDelay","createInstance","withCallback","randomDelay","ComplexAnimationBuilder","_BaseAnimationBuilder","easingFunction","easingV","degree","rotateV","withSpring","dampingV","massV","stiffnessV","overshootClampingV","restDisplacementThresholdV","restSpeedThresholdV","withTiming","springify","withInitialValues","Keyframe","definitions","delayFunction","getDelayFunction","_this$parseDefinition","parseDefinitions","_targetValues","addAnimation","keyframePoints","withSequence","keyframePoint","transformProp","transformPropKey","parsedKeyframes","styleProp","transformStyle","animationKeyPoints","getAnimationDuration","currentKeyPoint","keyPoint","keyframe","addKeyPointWith","addKeyPoint","FlipInXUp","_ComplexAnimationBuil","_this$getAnimationAnd","getAnimationAndConfig","_this$getAnimationAnd2","_slicedToArray","getDelay","targetValues","perspective","rotateX","targetHeight","FlipInYLeft","_ComplexAnimationBuil2","_this2$getAnimationAn","_this2$getAnimationAn2","rotateY","targetWidth","FlipInXDown","_ComplexAnimationBuil3","_this3$getAnimationAn","_this3$getAnimationAn2","FlipInYRight","_ComplexAnimationBuil4","_this4","_this4$getAnimationAn","_this4$getAnimationAn2","FlipInEasyX","_ComplexAnimationBuil5","_this5","_this5$getAnimationAn","_this5$getAnimationAn2","FlipInEasyY","_ComplexAnimationBuil6","_this6","_this6$getAnimationAn","_this6$getAnimationAn2","FlipOutXUp","_ComplexAnimationBuil7","_this7","_this7$getAnimationAn","_this7$getAnimationAn2","FlipOutYLeft","_ComplexAnimationBuil8","_this8","_this8$getAnimationAn","_this8$getAnimationAn2","FlipOutXDown","_ComplexAnimationBuil9","_this9","_this9$getAnimationAn","_this9$getAnimationAn2","FlipOutYRight","_ComplexAnimationBuil10","_this10","_this10$getAnimationA","_this10$getAnimationA2","FlipOutEasyX","_ComplexAnimationBuil11","_this11","_this11$getAnimationA","_this11$getAnimationA2","FlipOutEasyY","_ComplexAnimationBuil12","_this12","_this12$getAnimationA","_this12$getAnimationA2","StretchInX","StretchInY","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","ZoomInRotate","ZoomInLeft","ZoomInRight","ZoomInUp","ZoomInDown","ZoomInEasyUp","ZoomInEasyDown","ZoomOut","ZoomOutRotate","ZoomOutLeft","ZoomOutRight","ZoomOutUp","_ComplexAnimationBuil13","_this13","_this13$getAnimationA","_this13$getAnimationA2","ZoomOutDown","_ComplexAnimationBuil14","_this14","_this14$getAnimationA","_this14$getAnimationA2","ZoomOutEasyUp","_ComplexAnimationBuil15","_this15","_this15$getAnimationA","_this15$getAnimationA2","ZoomOutEasyDown","_ComplexAnimationBuil16","_this16","_this16$getAnimationA","_this16$getAnimationA2","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","JumpingTransition","bounce","CurvedTransition","easingXV","in","easingYV","easingWidthV","easingHeightV","easingX","easingY","easingWidth","easingHeight","EntryExitTransition","enteringV","exitingV","enteringAnimation","exitingAnimation","exitingDuration","_c","enteringValues","exitingValues","mergedTransform","objectKeys","entering","exiting","combineTransition","getRelativeCoords","parentRef","absoluteX","absoluteY","parentCoords","AnimatedView","AnimatedScrollView","AnimatedImage","__rest","AnimatedFlatList","ReanimatedFlatlist","itemLayoutAnimation","restProps","cellRenderer","ReanimatedView","createCellRenderer","CellRendererComponent","nativeEventEmitter","NativeAnimatedModule","RN$Bridgeless","NativeAnimatedTurboModule","NativeAnimatedNonTurboModule","__nativeAnimatedNodeTagCount","__nativeAnimationIdCount","waitingForQueuedOperations","queueOperations","queue","getValue","saveValueCallback","disableQueue","startOperationBatch","q","finishOperationBatch","queueOperation","createAnimatedNode","startListeningToAnimatedNodeValue","stopListeningToAnimatedNodeValue","connectAnimatedNodes","parentTag","childTag","disconnectAnimatedNodes","startAnimatingNode","endCallback","setAnimatedNodeValue","setAnimatedNodeOffset","flattenAnimatedNodeOffset","extractAnimatedNodeOffset","dropAnimatedNode","eventMapping","animatedNodeTag","SUPPORTED_STYLES","SUPPORTED_TRANSFORMS","rotateZ","SUPPORTED_INTERPOLATION_PARAMS","extrapolateRight","extrapolateLeft","_warnedMissingNativeAnimated","addWhitelistedStyleProp","addWhitelistedTransformProp","addWhitelistedInterpolationParam","param","configs","validateInterpolation","generateNewNodeTag","assertNativeAnimatedModule","NativeEventEmitter","onClick","handleClick","stopPropagation","WebkitLineClamp","textHasAncestor$raw","text$raw","textOneLine","textMultiLine","notSelectable","wordWrap","textOverflow","WebkitBoxOrient","NUMBER","PERCENTAGE","jsCachedMatchers","uiCachedMatchers","getMatchers","cachedMatchers","rgba","hsla","hex3","hex4","hex6","hex8","hue2rgb","hslToRgb","parse255","int","parse360","parse1","parsePercentage","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","blanchedalmond","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","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","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","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","whitesmoke","yellowgreen","normalizeColor","_e","_g","_h","matchers","HSVtoRGB","_HSVtoRGB","processColorInitially","normalizedColor","isColor","convertToHSVA","_RGBtoHSV","toRGBA","HSVA","_HSVtoRGB2","PressableNative","getUnderlayColor","calculatedRippleColor","getTouchableRippleColors","getRippleColor","calculatedUnderlayColor","disabledProp","hoverColor","rippleEffectEnabled","SettingsContext","touchY","currentTarget","getComputedStyle","changedTouches","touches","touch","setAttribute","transitionProperty","transitionDuration","transitionTimingFunction","transformOrigin","appendChild","containers","querySelectorAll","parentNode","removeChild","hasPassedTouchHandler","hasTouchHandler","touchable","findDOMNode","NativeAnimatedAPI","_uniqueId","__nativeTag","hasListeners","_startListeningToNativeValueUpdates","_stopListeningForNativeValueUpdates","__nativeAnimatedValueListener","__shouldUpdateListenersForNewNativeTag","_onAnimatedValueUpdateReceived","__callListeners","_this$__nativeTag","nativeTag","__getNativeConfig","ScrollResponder","Mixin","scrollResponderMixinGetInitialState","isTouching","lastMomentumScrollBeginTime","lastMomentumScrollEndTime","observedScrollSinceBecomingResponder","becameResponderWhileAnimating","scrollResponderHandleScrollShouldSetResponder","scrollResponderHandleStartShouldSetResponder","scrollResponderHandleStartShouldSetResponderCapture","scrollResponderIsAnimating","scrollResponderHandleResponderReject","warning","scrollResponderHandleTerminationRequest","scrollResponderHandleTouchEnd","onTouchEnd","scrollResponderHandleResponderRelease","currentlyFocusedTextInput","TextInputState","currentlyFocusedField","keyboardShouldPersistTaps","onScrollResponderKeyboardDismissed","blurTextInput","scrollResponderHandleScroll","scrollResponderHandleResponderGrant","scrollResponderHandleScrollBeginDrag","onScrollBeginDrag","scrollResponderHandleScrollEndDrag","onScrollEndDrag","scrollResponderHandleMomentumScrollBegin","onMomentumScrollBegin","scrollResponderHandleMomentumScrollEnd","onMomentumScrollEnd","scrollResponderHandleTouchStart","onTouchStart","scrollResponderHandleTouchMove","onTouchMove","scrollResponderGetScrollableNode","scrollResponderScrollTo","scroll","behavior","scrollLeft","scrollTop","scrollResponderZoomTo","rect","scrollResponderFlashScrollIndicators","scrollResponderScrollNativeHandleToKeyboard","nodeHandle","additionalOffset","preventNegativeScrollOffset","additionalScrollOffset","UIManager","measureLayout","getInnerViewNode","scrollResponderTextInputFocusError","scrollResponderInputMeasureAndScrollToKeyboard","keyboardScreenY","keyboardWillOpenTo","endCoordinates","screenY","scrollOffsetY","UNSAFE_componentWillMount","scrollResponderKeyboardWillShow","onKeyboardWillShow","scrollResponderKeyboardWillHide","onKeyboardWillHide","scrollResponderKeyboardDidShow","onKeyboardDidShow","scrollResponderKeyboardDidHide","onKeyboardDidHide","normalizeScrollEvent","contentSize","scrollHeight","scrollWidth","layoutMeasurement","timeStamp","ScrollViewBase","_props$scrollEnabled","scrollEnabled","_props$scrollEventThr","showsHorizontalScrollIndicator","showsVerticalScrollIndicator","scrollState","isScrolling","scrollLastTick","scrollTimeout","scrollRef","createPreventableScrollHandler","handleScrollTick","hideScrollbar","persist","handleScrollEnd","lastTick","eventThrottle","timeSinceLastTick","shouldEmitScrollEvent","handleScrollStart","scrollDisabled","overflowX","overflowY","touchAction","createReactClass","mixins","getInitialState","flashScrollIndicators","_scrollNodeRef","getInnerViewRef","_innerViewRef","scrollToEnd","horizontal","scrollResponder","scrollResponderNode","onContentSizeChange","refreshControl","stickyHeaderIndices","pagingEnabled","centerContent","contentSizeChangeProps","_handleContentOnLayout","hasStickyHeaderIndices","isSticky","stickyHeader","pagingEnabledChild","_setInnerViewRef","contentContainerHorizontal","contentContainerCenterContent","baseHorizontal","baseVertical","pagingEnabledStyle","pagingEnabledHorizontal","pagingEnabledVertical","_handleScroll","scrollResponderHandleTerminate","ScrollViewClass","scrollView","_setScrollNodeRef","_e$nativeEvent$layout","dismissKeyboard","mergeRefs","commonStyle","translateZ","WebkitOverflowScrolling","scrollSnapType","scrollSnapAlign","ForwardedScrollView","dataUriPattern","ImageUriCache","uri","_entries","lastUsedTimestamp","refCount","_cleanUpIfNeeded","leastRecentlyUsedKey","leastRecentlyUsedEntry","imageUris","_maximumEntries","requests","ImageLoader","abort","requestId","onerror","onload","getSize","success","failure","complete","setInterval","load","clearInterval","naturalHeight","naturalWidth","onDecode","decode","src","prefetch","queryCache","uris","_filterId","svgDataUriPattern","resolveAssetUri","asset","getAssetByID","preferredScale","PixelRatio","scaleSuffix","httpServerLocation","svg","encodeURIComponent","blurRadius","defaultSource","draggable","_React$useState","_React$useState2","updateLayout","hiddenImageRef","filterRef","requestRef","shouldDisplaySource","_getFlatStyle","filterId","flatStyle","filters","_filter","shadowString","createBoxShadowValue","getFlatStyle","_resizeMode","selectedSource","displayImageUri","imageSizeStyle","_getAssetByID","resolveAssetDimensions","backgroundImage","backgroundSize","_hiddenImageRef$curre","_height3","_width3","scaleFactor","getBackgroundSize","hiddenImage","accessibilityImage$raw","abortPendingRequest","_layout","resizeModeStyles","suppressHydrationWarning","floodColor","in2","operator","createTintColorSVG","ImageWithStatics","backgroundPosition","backgroundRepeat","contain","cover","none","repeat","stretch","isImageSource","getIconId","isValidIcon","isEqualIcon","accessibilityProps","SettingsConsumer","emptyFunction","canUsePassiveEvents","supportsPassiveEvents","isPropagationStopped","cancelBubble","isDefaultPrevented","createEventHandle","opts","capture","getOptions","compatListener","previousModality","previousActiveModality","activeModality","modality","isEmulatingMouseEvents","bubbleOptions","passive","captureOptions","addBlurListener","addFocusListener","addVisibilityChangeListener","addKeyDownListener","addPointerDownListener","addPointerMoveListener","addContextMenuListener","addMouseDownListener","addMouseMoveListener","addMouseUpListener","addScrollListener","addSelectiomChangeListener","addTouchCancelListener","addTouchMoveListener","addTouchStartListener","restoreModality","callListeners","onPointerish","eventType","PointerEvent","pointerType","metaKey","altKey","ctrlKey","visibilityState","targetListeners","useStable","removeTargetListener","useLayoutEffect","dispatchCustomEvent","payload","createEvent","_ref$bubbles","bubbles","_ref$cancelable","cancelable","detail","initCustomEvent","dispatchEvent","getPointerType","useHover","targetRef","onHoverStart","onHoverChange","onHoverUpdate","onHoverEnd","canUsePE","addMoveListener","addEnterListener","addLeaveListener","addLockListener","addUnlockListener","hoverEnd","leaveListener","moveListener","clientX","clientY","hoverStart","lockEvent","useForceableState","forced","_useState","MemoedPressable","memo","focusable","onContextMenu","onHoverIn","onHoverOut","onKeyDown","onPressMove","testOnly_hovered","_useForceableState","_useForceableState2","_useForceableState3","pressConfig","delayPressStart","delayPressEnd","onPressChange","onPressStart","onPressEnd","pressEventHandlers","usePressEvents","onContextMenuPress","onKeyDownPress","interactionState","blurHandler","focusHandler","contextMenuHandler","keyDownHandler","accessibilityDisabled","sanitizeValue","CONSTANT_VALUES","initializeConstantValues","InternalAnimatedValue","_startingValue","_constant","_updateValue","__forceUpdateCache","moduleName","propertyName","CodedError","requireNativeViewManager","viewName","postedWarnings","library","deprecatedAPI","currentVersion","versionToRemove","replacement","codeFromLibrary","prependLibrary","PermissionStatus","createPermissionHook","methods","isMounted","setStatus","request","permissionOptions","getPermission","response","getMethod","requestPermission","requestMethod","usePermission","DeviceEventEmitter","AxiosError","captureStackTrace","fileName","lineNumber","columnNumber","customProps","axiosError","cause","goBack","navigate","setParams","BaseRouter","getStateForAction","routeNames","stale","nanoid","shouldActionChangeFocus","TabActions","getRouteHistory","backBehavior","initialRouteName","initialRouteIndex","history","unshift","changeIndex","currentKey","TabRouter","routeParamList","getRehydratedState","partialState","getStateForRouteNamesChange","routeKeyChanges","getStateForRouteFocus","routeGetIdList","getId","currentId","nextId","previousKey","actionCreators","DrawerActions","openDrawer","toggleDrawer","DrawerRouter","defaultStatus","router","isDrawerInHistory","addDrawerToHistory","removeDrawerFromHistory","StackActions","popToTop","StackRouter","NOT_INITIALIZED_ERROR","createNavigationContainerRef","CommonActions","isReady","SingleNavigatorContext","EnsureSingleNavigator","navigatorKeyRef","register","findFocusedRoute","NavigationBuilderContext","onDispatchAction","onOptionsChange","NavigationContainerRefContext","NavigationContext","NavigationRouteContext","MISSING_CONTEXT_ERROR","isDefault","UnhandledActionContext","useChildListeners","focus","useEventEmitter","listen","listenRef","emit","canPreventDefault","lastIndexOf","useKeyedChildListeners","keyedListeners","beforeRemove","addKeyedListener","useOptionsGetters","navigation","optionsRef","optionsGettersFromChildRef","parentAddOptionsGetter","NavigationStateContext","addOptionsGetter","optionsChangeListener","isFocused","hasChildren","getOptionsFromListener","getCurrentOptions","optionsFromListener","ScheduleUpdateContext","scheduleUpdate","flushUpdates","UNINTIALIZED_STATE","BaseNavigationContainer","onUnhandledAction","independent","stateRef","isSchedulingRef","isMountedRef","trackingState","setTrackingState","useSyncState","getPartialState","isFirstMountRef","getKey","setKey","dispatch","canGoBack","handled","resetRoot","getRootState","getCurrentRoute","emitter","getParent","stackRef","lastEmittedOptionsRef","builderContext","scheduleContext","isInitialRef","getIsInitial","onStateChangeRef","hydratedState","defaultOnUnhandledAction","Screen","createNavigatorFactory","Navigator","CurrentRenderContext","getActionFromState","normalizedConfig","createNormalizedConfigItem","screens","createNormalizedConfigs","CHILD_STATE","getFocusedRouteNameFromRoute","fromEntries","formatToList","validatePathConfig","validKeys","invalidKeys","getPathFromState","allParams","pattern","focusedParams","focusedRoute","getActiveRoute","currentOptions","nestedRouteNames","hasNext","currentParams","getParamName","nextRoute","nestedConfig","queryString","joinPaths","paths","parentPattern","exact","createConfigItem","getStateFromPath","initialRoutes","parentScreens","remaining","decodeURIComponent","createNestedStateObject","aParts","bParts","aWildCard","bWildCard","matchAgainstConfigs","remainingPath","matchedParams","parse","routeConfig","escape","findInitialRoute","routeName","sameParents","createStateObject","initialRoute","flatConfig","nestedState","nestedStateIndex","parseQueryParams","findParseConfigForRoute","parseConfig","NavigationHelpersContext","PreventRemoveContext","transformPreventedRoutes","preventedRoutesMap","routeKey","preventRemove","PreventRemoveProvider","parentId","setPreventedRoutesMap","preventRemoveContextValue","setParentPrevented","setPreventRemove","prevPrevented","nextPrevented","isPrevented","preventedRoutes","PrivateValueStore","useNavigation","useFocusEffect","destroy","unsubscribeFocus","unsubscribeBlur","useIsFocused","setIsFocused","valueToReturn","isArrayEqual","NavigationContent","prevPropKeys","nextPropKeys","SceneView","routeState","clearOptions","getCurrentState","currentRoute","setCurrentState","ScreenComponent","getComponent","useDescriptors","screenOptions","defaultScreenOptions","onAction","onRouteFocus","setOptions","navigations","thunk","withStack","helpers","useNavigationCache","useRouteCache","customOptions","mergedOptions","VISITED_ROUTE_KEYS","shouldPreventRemove","beforeRemoveListeners","currentRoutes","nextRoutes","nextRouteKeys","removedRoutes","visitedRouteKeys","beforeRemoveAction","useOnAction","actionListeners","routerConfigOptions","onActionParent","onRouteFocusParent","addListenerParent","routerConfigOptionsRef","visitedNavigators","shouldFocus","useOnPreventRemove","isValidKey","useNavigationBuilder","createRouter","navigatorKey","useRegisterNavigator","screenListeners","routeConfigs","getRouteConfigsFromChildren","groupKey","groupOptions","navigationKey","routeKeyList","initialParams","isStateValid","isStateInitialized","stateCleanedUp","cleanUpState","initialRouteParamList","initialParamsFromParams","initializedState","isFirstStateInitialization","previousRouteKeyListRef","previousRouteKeyList","aKeys","bKeys","isRecordEqual","previousNestedParamsRef","previousParams","updatedState","shouldUpdate","useScheduleUpdate","initializedStateRef","lastFocusedKeyRef","currentFocusedKey","lastFocusedKey","useFocusEvents","childListeners","sourceRouteKey","useOnRouteFocus","navigatorId","parentNavigationHelpers","op","navigationHelpers","useNavigationHelpers","focusedListeners","useFocusedListenersChildrenAdapter","getStateListeners","childState","useOnGetState","useCurrentRender","renderRef","useComponent","useNavigationContainerRef","useNavigationState","setResult","selectorRef","usePreventRemoveContext","useRoute","usePreventRemove","beforeRemoveListener","cssFunction","SafeAreaView","exportedModule","reanimatedJS","commonProps","baseGestureHandlerWithMonitorProps","isConfigParam","filterConfig","validProps","filteredConfig","transformIntoHandlerTags","handlerIDs","handle","handlerID","handlerIDToTag","findNodeHandleRN","scheduledFlushOperationsId","scheduleFlushOperations","RNGestureHandlerModule","flushOperations","isJest","JEST_WORKER_ID","nativeCallSyncHook","__REMOTEDEV__","MaterialCommunityIcons","require","isErrorLogged","role","defaultIcon","allowFontScaling","customAlphabet","defaultSize","eventNames","rebuild","initRef","WorkletEventHandler","updateWorklet","savedDependencies","_initRef$current","areDependenciesEqual","buildDependencies","useWeb","buildWorkletsHash","handlersList","workletHash","closure","nextDeps","prevDeps","objectIs","areHookInputsEqual","hasColorProps","updates","colorPropsSet","colorProps","parseColors","canApplyOptimalisation","upadterFn","optimalization","__optimalization","isAnimated","propsToCheck","currentProp","styleDiff","oldStyle","newStyle","getStyleWithoutAnimations","validateAnimatedStyles","__isInteraction","InteractionManager","createInteractionHandle","clearInteractionHandle","_tracking","tracking","flush","rootNode","animatedStyles","findAnimatedStyles","animatedStyle","_flush","dataSet","accessibilityActiveDescendant","accessibilityAtomic","accessibilityAutoComplete","accessibilityBusy","accessibilityChecked","accessibilityColumnCount","accessibilityColumnIndex","accessibilityColumnSpan","accessibilityControls","accessibilityCurrent","accessibilityDescribedBy","accessibilityDetails","accessibilityErrorMessage","accessibilityExpanded","accessibilityFlowTo","accessibilityHasPopup","accessibilityHidden","accessibilityInvalid","accessibilityKeyShortcuts","accessibilityLabelledBy","accessibilityLevel","accessibilityModal","accessibilityMultiline","accessibilityMultiSelectable","accessibilityOrientation","accessibilityOwns","accessibilityPlaceholder","accessibilityPosInSet","accessibilityPressed","accessibilityReadOnly","accessibilityRequired","accessibilityRoleDescription","accessibilityRowCount","accessibilityRowIndex","accessibilityRowSpan","accessibilitySelected","accessibilitySetSize","accessibilitySort","accessibilityValueMax","accessibilityValueMin","accessibilityValueNow","accessibilityValueText","clickProps","onClickCapture","focusProps","keyboardProps","onKeyDownCapture","onKeyUp","onKeyUpCapture","mouseProps","onMouseDown","onMouseMove","onMouseOver","onMouseOut","onMouseUp","touchProps","onTouchCancel","onTouchCancelCapture","onTouchEndCapture","onTouchMoveCapture","onTouchStartCapture","classList","IN_STYLE_UPDATER","initialUpdaterRun","recognizePrefixSuffix","strippedValue","decorateAnimation","baseOnStart","baseOnFrame","animationCopy","prefNumberSuffOnFrame","strippedCurrent","__prefix","__suffix","colorOnFrame","HSVACurrent","arrayOnFrame","HSVAValue","HSVAToValue","colorOnStart","arrayOnStart","_recognizePrefixSuffi","strippedToValue","_recognizePrefixSuffi3","paPrefix","paSuffix","paStrippedValue","prefNumberSuffOnStart","defineAnimation","starting","cancelAnimation","sharedValue","withStartValue","Bezier","SUBDIVISION_PRECISION","SUBDIVISION_MAX_ITERATIONS","NEWTON_ITERATIONS","LinearEasing","kSampleStepSize","NEWTON_MIN_SLOPE","EasingObject","poly","circle","elastic","back","bezierFn","createChecker","workletName","prevArgs","checkIfReaOne","EasingNode","MD2Surface","outerLayerStyleProperties","iOSShadowOutputRanges","getStyleForShadowLayer","layer","isAnimatedValue","SurfaceIOS","flattenedStyles","splitStyles","filteredStyles","outerLayerStyles","borderRadiusStyles","bgColor","isElevated","outerLayerViewStyles","innerLayerViewStyles","overridenTheme","_colors$elevation2","elevationLevel","sharedStyle","__createBinding","k2","__setModuleDefault","__importStar","mod","__importDefault","useIsomorphicLayoutEffect_1","latestCallback","unitlessNumbers","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","flexOrder","flexPositive","flexNegative","gridRow","gridRowEnd","gridRowGap","gridRowStart","gridColumn","gridColumnEnd","gridColumnGap","gridColumnStart","lineClamp","orphans","widows","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","scaleZ","prefixes","substring","prefixKey","dangerousStyleValue","isCustomProperty","isUnitlessNumber","setValueForStyles","styleName","styleValue","setProperty","getRect","_getBoundingClientRec","relativeToNativeNode","relativeNode","relativeRect","_getRect","elementsToIgnore","BODY","INPUT","SELECT","TEXTAREA","blur","nodeName","getAttribute","isContentEditable","measureInWindow","_getRect2","onFail","onSuccess","updateView","configureNextLayoutAnimation","onAnimationDidEnd","setLayoutAnimationEnabledExperimental","majorStr","minorStr","REACT_NATIVE_VERSION","major","minor","withPrevAndCurrent","mapFn","previousArr","currentArr","transformedArr","transformed","hasProperty","isJestEnv","tagMessage","isFabric","nativeFabricUIManager","shouldUseCodegenNativeComponent","actionable","MemoedTouchableOpacity","rejectResponderTermination","setDuration","_useState2","opacityOverride","setOpacityOverride","setOpacityActive","setOpacityInactive","isGrant","dispatchConfig","registrationName","removeAllListeners","NativeModules","__awaiter","_arguments","P","generator","fulfilled","rejected","adopt","attachEvent","_viewTag","_eventName","_nodeID","detachEvent","_nativeProps","_uiProps","removeListeners","ReanimatedModuleCompat","accessibilityComponent","AccessibilityUtil","propsToAccessibilityComponent","domProps","createDOMProps","LocaleProvider","_children","_step","_iterator","_createForOfIteratorHelperLoose","_step2","_iterator2","isSupported","requestIdleCallback","didTimeout","timeRemaining","cancelIdleCallback","Events","interactionStart","interactionComplete","runAfterInteractions","task","cancel","createInterpolation","stringShapeRegex","checkPattern","colorToRgba","outputRanges","interpolations","shouldRound","range","createInterpolationFromStringOutputRange","checkInfiniteRange","checkValidInputRange","findRange","inputMin","inputMax","outputMin","outputMax","_interpolation","parentValue","__transformDataType","__createInterpolation","isNativeFunction","_wrapNativeSuper","Class","_cache","primary100","primary99","primary95","primary90","primary80","primary70","primary60","primary50","primary40","primary30","primary20","primary10","primary0","secondary100","secondary99","secondary95","secondary90","secondary80","secondary70","secondary60","secondary50","secondary40","secondary30","secondary20","secondary10","secondary0","tertiary100","tertiary99","tertiary95","tertiary90","tertiary80","tertiary70","tertiary60","tertiary50","tertiary40","tertiary30","tertiary20","tertiary10","tertiary0","neutral100","neutral99","neutral95","neutral90","neutral80","neutral70","neutral60","neutral50","neutral40","neutral30","neutral20","neutral10","neutral0","neutralVariant100","neutralVariant99","neutralVariant95","neutralVariant90","neutralVariant80","neutralVariant70","neutralVariant60","neutralVariant40","neutralVariant30","neutralVariant20","neutralVariant10","neutralVariant0","error100","error99","error95","error90","error80","error70","error60","error50","error40","error30","error20","error10","error0","typeface","brandRegular","weightRegular","plainMedium","weightMedium","level1","level4","regularType","fontFamily","mediumType","typescale","displayLarge","displayMedium","displaySmall","headlineLarge","headlineMedium","headlineSmall","titleLarge","labelSmall","bodyLarge","bodySmall","sys","getBorderColor","isMode","customContainerColor","customIconColor","containerColor","baseIconColorProps","modeToCompare","onPrimary","getIconColor","getIconButtonColor","buttonSize","borderStyles","limit$2","limit$1","classToType","i$1","list$1","type$p","type$o","type$n","PI$2","utils","clip_rgb","_clipped","_unclipped","unpack","keyOrder","TWOPI","PITHIRD","DEG2RAD","RAD2DEG","input$h","autodetect","last$3","clip_rgb$2","type$m","_input","Color$D","sorted","chk","_rgb","Color_1","chroma$k","chroma_1","unpack$A","max$2","unpack$z","cmyk2rgb_1","chroma$j","Color$C","input$g","unpack$y","type$l","rgb2cmyk","cmyk","unpack$x","last$2","rnd","unpack$w","rgb2hsl_1","unpack$v","last$1","hsl2css","rgb2hsl$2","round$6","rgb2css_1","unpack$u","round$5","hsl2rgb_1","t3","t1","h_","hsl2rgb","input$f","RE_RGB","RE_RGBA","RE_RGB_PCT","RE_RGBA_PCT","RE_HSL","RE_HSLA","round$4","css2rgb$1","css","named","rgb$1","rgb$2","i$2","rgb$3","i$3","rgb$4","hsl$1","rgb$5","chroma$i","Color$B","input$e","type$k","rgb2css","css2rgb","Color$A","chroma$h","unpack$t","gl","unpack$s","rgb2hcg_1","unpack$r","floor$3","hcg2rgb_1","assign$1","assign$2","assign$3","assign$4","assign$5","unpack$q","type$j","chroma$g","Color$z","input$c","rgb2hcg","hcg","unpack$p","round$3","rgb2hex_1","hxa","RE_HEX","RE_HEXA","hex2rgb_1","u$1","chroma$f","Color$y","type$i","input$b","rgb2hex$1","unpack$o","TWOPI$2","min$2","sqrt$4","acos","rgb2hsi_1","min_","unpack$n","TWOPI$1","cos$4","hsi2rgb_1","unpack$m","type$h","chroma$e","Color$x","input$a","rgb2hsi","hsi","unpack$l","type$g","chroma$d","Color$w","input$9","rgb2hsl$1","unpack$k","min$1","max$1","rgb2hsv$1","max_","unpack$j","floor$2","hsv2rgb_1","unpack$i","type$f","chroma$c","Color$v","input$8","rgb2hsv","hsv","labConstants","Kn","Xn","Yn","Zn","t0","LAB_CONSTANTS$3","unpack$h","pow$a","rgb_xyz","xyz_lab","rgb2xyz","rgb2lab_1","ref$1","LAB_CONSTANTS$2","unpack$g","pow$9","xyz_rgb","lab_xyz","lab2rgb_1","unpack$f","type$e","chroma$b","Color$u","input$7","rgb2lab$1","lab","unpack$e","sqrt$3","atan2$2","atan2","round$2","lab2lch_1","unpack$d","rgb2lab","lab2lch$1","rgb2lch_1","b_","unpack$c","sin$3","cos$3","lch2lab_1","unpack$b","lch2lab$1","lab2rgb","lch2rgb_1","unpack$a","lch2rgb","hcl2rgb_1","hcl","unpack$9","type$d","chroma$a","Color$t","input$6","rgb2lch","lch","w3cx11_1","cornflower","laserlemon","lightgoldenrod","maroon2","maroon3","purple2","purple3","input$5","type$c","w3cx11","hex2rgb","rgb2hex","unpack$8","type$b","num2rgb_1","chroma$9","Color$r","input$4","type$a","rgb2num","chroma$8","Color$q","input$3","unpack$7","type$9","round$1","log$1","temperature2rgb_1","kelvin","temperature2rgb","unpack$6","chroma$7","Color$p","input$2","rgb2temperature","minTemp","maxTemp","eps","temperature","unpack$5","cbrt","pow$8","sign$1","rgb2oklab_1","rgb2lrgb","lr","lb","unpack$4","pow$7","oklab2rgb_1","lrgb2rgb","unpack$3","type$8","chroma$6","Color$o","input$1","rgb2oklab$1","oklab","unpack$2","rgb2oklab","lab2lch","unpack$1","lch2lab","oklab2rgb","oklch2rgb_1","type$7","chroma$5","Color$n","rgb2oklch","oklch","Color$m","type$6","clipped","Color$k","LAB_CONSTANTS$1","amount","brighten","darker","brighter","mc","Color$i","type$5","pow$6","luminance","cur_lum","max_iter","low","high","mid","lm","rgb2luminance","luminance_x","interpolator$1","Color$h","type$4","interpolator","mix$1","col1","col2","Color$g","Color$f","premultiply","Color$e","LAB_CONSTANTS","Color$d","type$3","Color$c","xyz0","xyz1","Color$b","sqrt$2","pow$5","lrgb","z1","z2","Color$a","Color$9","_hsx","hue0","hue1","sat0","sat1","lbv0","lbv1","sat","lbv","interpolate_hsx$5","Color$8","c1","c2","interpolate_hsx$4","interpolate_hsx$3","interpolate_hsx$2","interpolate_hsx$1","Color$7","interpolate_hsx","Color$6","clip_rgb$1","pow$4","sqrt$1","PI$1","cos$2","sin$2","atan2$1","_average_lrgb","weights","xyz","col","chroma$4","type$2","pow$3","scale$2","_mode","_nacol","_spread","_domain","_pos","_padding","_classes","_colors","_out","_correctLightness","_colorCache","_useCache","_gamma","setColors","brewer","c$1","resetCache","tMapLightness","tMapDomain","bypassMap","getClass","analyze","limits","tOut","tBreaks","_m","_o","spread","correctLightness","L0","L1","pol","L_actual","L_ideal","L_diff","numColors","dm","__range__","samples","asc","gamma","nodata","inclusive","ascending","Color$5","scale$1","I","lab0","lab1","lab2","lab3","RangeError","labs","newrow","binom_row","sum","el","chroma$3","blend","blend_f","c0","each","normal","dodge","burn","blend_1","type$1","pow$2","sin$1","cos$1","chroma$2","Color$4","floor$1","pow$1","MAX_VALUE","min_log","LOG10E","max_log","cluster","assignments","clusterSizes","nb_iters","centroids","i$4","mindist","best","j$1","dist","newCentroids","j$2","i$5","j$3","j$4","kClusters","j$5","i$6","tmpKMeansBreaks","j$6","i$7","analyze_1","Color$3","Color$2","Color$1","chroma$1","cool","hot","colorbrewer","OrRd","PuBu","BuPu","Oranges","BuGn","YlOrBr","YlGn","Reds","RdPu","Greens","YlGnBu","Purples","GnBu","Greys","YlOrRd","PuRd","Blues","PuBuGn","Viridis","Spectral","RdYlGn","RdBu","PiYG","PRGn","RdYlBu","BrBG","RdGy","PuOr","Set2","Accent","Set1","Set3","Dark2","Paired","Pastel2","Pastel1","colorbrewer_1","average","cnt","dx","dy","ci","xyz2","A$1","cubehelix","rotations","dl","dh","fract","amp","cos_a","sin_a","l1","l2","deltaE","Kl","Kc","Kh","rad2deg","rad","deg2rad","deg","a1","b1","L2","a2","b2","avgL","C1","C2","avgC","G","a1p","a2p","C1p","C2p","avgCp","arctan1","arctan2","h1p","h2p","avgHp","T","deltaHp","deltaL","deltaCp","sl","sc","sh","deltaTheta","Rt","sum_sq","valid","configureInteractions","dropRelationsForHandlerWithTag","waitFor","otherHandler","waitForRelations","simultaneousHandlers","simultaneousRelations","shouldWaitForHandlerFailure","shouldWait","shouldRecognizeSimultaneously","shouldRequireHandlerToWaitForFailure","_otherHandler","shouldHandlerBeCancelledBy","getInstance","MouseButtons","EventTypes","TouchEventType","PointerType","Direction","PointerTracker","lastMovedPointerId","touchEventsIds","addToTracker","trackedPointers","pointerId","newElement","lastX","lastY","velocityY","mapTouchEventId","cachedAverages","getLastAvgX","getLastAvgY","removeFromTracker","removeMappedTouchId","dt","avgX","avgY","mappedId","touchId","getMappedTouchEventId","touchEventId","getVelocityX","getVelocityY","getLastX","getLastY","getSumX","getSumY","ignoredPointer","sumX","sumY","getTrackedPointersCount","getTrackedPointersID","getData","resetTracker","shareCommonPointers","stPointers","ndPointers","isPointerInBounds","GestureHandlerOrchestrator","scheduleFinishedHandlersCleanup","handlingChangeSemaphore","cleanupFinishedHandlers","cleanHandler","setAwaiting","setActivationIndex","removeHandlerFromOrchestrator","gestureHandlers","awaitingHandlers","handlersToCancel","isAwaiting","hasOtherHandlerToWaitFor","hasToWait","shouldHandlerWaitForOther","tryActivate","addAwaitingHandler","shouldActivate","makeActive","fail","cleanupAwaitingHandlers","sendIfDisabled","isEnabled","sendEvent","setShouldResetProgress","activationIndex","alreadyExists","recordHandlerIfNotPresent","MAX_SAFE_INTEGER","shouldRequireToWaitForFailure","canRunSimultaneously","gh1","gh2","shouldBeCancelledByOther","handlerPointers","otherPointers","getView","checkOverlap","overlap","pointer","handlerX","getTracker","handlerY","otherX","otherY","cancelMouseAndPenGestures","currentHandler","MOUSE","PEN","EventManager","activePointersCounter","onPointerDown","_event","onPointerAdd","onPointerUp","onPointerRemove","onPointerMove","onPointerOut","onPointerEnter","onPointerCancel","onPointerOutOfBounds","setOnPointerDown","setOnPointerAdd","setOnPointerUp","setOnPointerRemove","setOnPointerMove","setOnPointerOut","setOnPointerEnter","setOnPointerCancel","setOnPointerOutOfBounds","markAsInBounds","pointersInBounds","markAsOutOfBounds","resetManager","PointerEventManager","setListeners","TOUCH","adaptedEvent","mapEvent","setPointerCapture","ADDITIONAL_POINTER_DOWN","releasePointerCapture","ADDITIONAL_POINTER_UP","MOVE","inBounds","pointerIndex","ENTER","OUT","CANCEL","offsetX","offsetY","TouchEventManager","touchType","touchEventType","NONE","allTouches","GestureHandler","propsRef","onGestureHandlerEvent","onGestureHandlerStateChange","resultEvent","transformEventData","lastSentState","invokeNullableMethod","hasCustomActivationCriteria","setView","addEventManager","manager","eventManagers","onCancel","onReset","resetProgress","tracker","cancelTouches","_newState","_oldState","begin","checkHitSlop","activate","awaiting","getShouldResetProgress","shouldResetProgress","getActivationIndex","sendTouchEvent","tryToSendMoveEvent","shouldCancellWhenOutside","touchEvent","transformTouchEvent","transformNativeEvent","changed","trackerData","numberOfTouches","cancelEvent","updateGestureConfig","setShouldCancelWhenOutside","validateHitSlops","checkCustomActivationCriteria","criterias","vertical","resetConfig","setTag","getConfig","getShouldEnableGestureOnSetup","getEventManagers","shouldCancel","getShouldCancelWhenOutside","method","nativeValue","DEFAULT_TOUCH_SLOP","MIN_SAFE_INTEGER","customActivationProperties","minDistSq","minVelocitySq","getTranslationX","getTranslationY","startX","startY","clearActivationTimeout","activationTimeout","tryBegin","checkBegan","distanceSq","vx","vy","velocitySq","shouldFail","maxDistSq","minNumberOfPointers","clearTimeouts","waitTimeout","delayTimeout","startTap","endTap","tapsSoFar","currentMaxNumberOfPointers","trySettingPosition","distSq","LongPressGestureHandler","DEFAULT_MAX_DIST_DP","defaultMaxDistSq","oncontextmenu","startTime","checkDistanceFail","previousTime","ScaleGestureDetector","onScaleBegin","onScale","onScaleEnd","spanSlop","minSpan","onTouchEvent","currentTime","numOfPointers","streamComplete","inProgress","initialSpan","configChanged","pointerUp","div","focusX","focusY","devSumX","devSumY","spanX","spanY","span","hypot","wasInProgress","prevSpan","currentSpan","prevTime","getCurrentSpan","getFocusX","getFocusY","getTimeDelta","getScaleFactor","detector","startingSpan","prevScaleFactor","_detector","scaleDetectorListener","focalX","scaleGestureDetector","focalY","RotationGestureDetector","onRotationBegin","onRotation","onRotationEnd","updateCurrent","keyPointers","firstPointerID","secondPointerID","firstPointerX","firstPointerY","secondPointerX","secondPointerY","vectorX","vectorY","anchorX","anchorY","angle","previousAngle","finish","isInProgress","setKeyPointers","pointerIDs","getAnchorX","getAnchorY","getRotation","ROTATION_RECOGNITION_THRESHOLD","previousRotation","rotationGestureListener","rotationGestureDetector","cachedAnchorX","cachedAnchorY","_force","DEFAULT_DIRECTION","FlingGestureHandler","numberOfPointersRequired","startFling","keyPointer","maxNumberOfPointersSimultaneously","tryEndFling","minAcceptableDelta","endFling","newPointerAction","onUp","hasAttribute","buttonRole","disallowsInterruption","canBeInterrupted","ManualGestureHandler","getHandler","getNodes","_inheritsLoose","_assertThisInitialized","VENDOR_PREFIXES","TEST_ELEMENT","prefixed","camelProp","PREFIXED_TOUCH_ACTION","NATIVE_TOUCH_ACTION","TOUCH_ACTION_MAP","touchMap","cssSupports","getTouchActionProps","SUPPORT_TOUCH","SUPPORT_POINTER_EVENTS","SUPPORT_ONLY_TOUCH","userAgent","PROPS_XY","PROPS_CLIENT_XY","boolOrFn","inStr","TouchAction","_proto","compute","recognizers","recognizer","enable","getTouchAction","hasPanX","hasPanY","cleanTouchActions","preventDefaults","srcEvent","offsetDirection","session","prevented","hasNone","isTapPointer","isTapMovement","isTapTouchTime","DIRECTION_LEFT","DIRECTION_UP","preventSrc","hasParent","getCenter","pointersLength","simpleCloneInputData","deltaX","deltaY","getDistance","getAngle","getVelocity","computeInputData","firstInput","firstMultiple","offsetCenter","offsetDelta","prevDelta","prevInput","computeDeltaXY","overallVelocity","overallVelocityX","overallVelocityY","lastInterval","computeIntervalInputData","srcEventTarget","composedPath","inputHandler","pointersLen","changedPointersLen","changedPointers","isFirst","isFinal","recognize","splitStr","addEventListeners","types","removeEventListeners","getWindowForElement","doc","ownerDocument","defaultView","parentWindow","Input","inputTarget","domHandler","evEl","evTarget","evWin","inArray","findByKey","POINTER_INPUT_MAP","pointerdown","pointermove","pointerup","pointercancel","pointerout","IE10_POINTER_TYPE_ENUM","POINTER_ELEMENT_EVENTS","POINTER_WINDOW_EVENTS","MSPointerEvent","PointerEventInput","_Input","removePointer","eventTypeNormalized","isTouch","storeIndex","uniqueArray","TOUCH_INPUT_MAP","touchstart","touchmove","touchend","touchcancel","TouchInput","targetIds","getTouches","targetTouches","changedTargetTouches","MOUSE_INPUT_MAP","mousedown","mousemove","mouseup","MouseInput","which","setLastTouch","eventData","primaryTouch","lastTouch","lts","lastTouches","recordTouches","isSyntheticEvent","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","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","targetRecognizer","events","gestureEvent","initEvent","triggerDomEvent","SINGLE_TOUCH_INPUT_MAP","SingleTouchInput","started","normalizeSingleTouches","deprecationMessage","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","Swipe","Rotate","Press","DEG_RAD","EventMap","gestureInstances","asArray","removePendingGesture","clearSelfAsPending","hammer","getHammerConfig","isGestureRunning","hasGestureFailed","shouldEnableGestureOnSetup","isDiscrete","_stillWaiting","_getPendingGestures","deltaRotation","initialRotation","isGestureEnabledForEvent","failed","simulateCancelEvent","gestureInstance","onWaitingEnded","_gesture","pendingGestures","addPendingGesture","_recognizer","NativeGestureClass","updateHasCustomActivationCriteria","ensureConfig","sync","changedTouch","isPointInView","previousState","cancelPendingGestures","notifyPendingGestures","onGestureEnded","forceInvalidate","onRawEvent","shouldUseTouchEvents","SUPPORTS_TOUCH","setupEvents","onGestureActivated","__initialX","__initialY","_inputData","NodeManager","isnan","isValidNumber","TEST_MIN_IF_NOT_NAN","VEC_LEN_SQ","TEST_MAX_IF_NOT_NAN","fireAfterInterval","DiscreteGestureHandler","shouldFailUnderCustomCriteria","pointerLength","validPointerCount","PressGestureHandler","onGestureStart","shouldDelayTouchForEvent","shouldDelayTouches","visualFeedbackTimer","initialEvent","sendGestureStartedEvent","timeout","contains","DraggingGestureHandler","getDirection","directions","horizontalDirections","verticalDirections","criteria","shouldActivateUnderCustomCriteria","shouldMultiFingerPanFail","deltaScale","absDeltaRotation","_shouldFireEndEvent","onSuccessfulTap","_multiTapTimer","IndiscreteGestureHandler","GesturePropError","expectedType","getTargetDirections","Gestures","HammerGestures","HammerNativeViewGestureHandler","HammerPanGestureHandler","HammerTapGestureHandler","HammerLongPressGestureHandler","HammerPinchGestureHandler","HammerRotationGestureHandler","handleSetJSResponder","blockNativeResponder","handleClearJSResponder","createGestureHandler","isExperimentalWebImplementationEnabled","GestureClass","HammerNodeManager","updateGestureHandler","attachGestureHandler","newView","_actionType","HTMLElement","getGestureHandlerNode","dropGestureHandler","dims","setDims","handleChange","interpolateInternalSingleProc","inS","inE","outS","outE","resultForNonZeroRange","interpolateInternalSingle","EXTEND","IDENTITY","checkMinElements","checkValidNumbers","_config$extrapolate","checkNonDecreasing","convertToRadians","interpolateInternal","oldHandlers","testIDs","registerHandler","registerOldGestureHandler","unregisterHandler","findHandler","findOldGestureHandler","findHandlerByTestID","withDecay","velocityFactor","VELOCITY_EPS","lastTimestamp","startTimestamp","initialVelocity","clamp","validateConfig","withRepeat","_nextAnimation","numberOfReps","nextAnimation","reps","numberOfLoops","autoCapitalize","autoComplete","autoCorrect","autoFocus","maxLength","readOnly","rows","spellCheck","focusTimeout","inputMode","_props$autoCapitalize","autoCompleteType","_props$autoCorrect","blurOnSubmit","clearTextOnFocus","_props$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","activeElement","_currentlyFocusedNode","enterKeyHint","shouldBlurOnSubmit","isComposing","keyCode","isEventComposing","shiftKey","onSelect","textinput$raw","MozAppearance","WebkitAppearance","resize","AnimatedBlock","_array","createAnimatedBlock","adapt","__isProxy","__val","valueForConstant","nodify","glyphMap","fontName","expoAssetId","fontStyle","RNVIconComponent","_mounted","fontIsLoaded","_icon","getRawGlyphMap","getFontFamily","loadFont","UIManagerAny","customGHEventsConfig","topOnGestureHandlerEvent","topOnGestureHandlerStateChange","genericDirectEventTypes","UIManagerConstants","getViewManagerConfig","setJSResponder","oldSetJSResponder","clearJSResponder","oldClearJSResponder","allowTouches","hasUnresolvedRefs","extract","stateToPropMappings","transformProps","customNativeProps","Handler","stateEventName","eventHandler","viewNode","newViewTag","ActionType","JS_FUNCTION_OLD_API","onGestureStateChange","actionType","REANIMATED_WORKLET","NATIVE_ANIMATED_EVENT","updateEnqueued","componentDidUpdate","inspectorToggleListener","clearImmediate","remainingTries","deepEqual","mergedProps","gestureEventHandler","gestureStateEventHandler","grandChildren","refHandler","handlerType","ColorProperties","updateProps","maybeViewRef","_updatePropsJS","viewDescriptor","_updateProps","updatePropsJestWrapper","adapters","reduceFrom","infix","single","OPERATIONS","asin","atan","AnimatedOperator","_op","_operation","AnimatedDebug","_message","createAnimatedDebug","matchMedia","listenerMapping","Appearance","getColorScheme","addChangeListener","mappedListener","layoutSize","RCTDeviceEventEmitter","calculateColor","overlayTransparency","elevationOverlayTransparency","rtlScripts","rtlLangs","LocaleContext","cachedRTL","Intl","script","maximize","isLocaleRTL","textShadowColor","returnValue","MemoedTouchableWithoutFeedback","elementProps","NODE_MAPPING","_updateFromNative","dummyListener","hasAnimatedNodes","flattenArray","resultArr","_flattenArray","isSameAnimatedStyle","viewsRef","isSameAnimatedProps","_styles","_isFirstRender","initialStyle","DefaultLayout","DefaultEntering","DefaultExiting","sv","LayoutAnimationRepository","registerConfig","_detachPropUpdater","_detachStyles","_attachPropUpdater","_attachAnimatedStyles","_getEventViewRef","unregisterFromEvents","animatedProps","attached","nextEvts","reattachNeeded","createOrReusePropsNode","ReanimatedEventEmitter","onlyAnimatedStyles","prevStyles","prevAnimatedProps","_animatedProps","hostInstance","RNRenderer","findHostInstance_DEPRECATED","_nativeTag","viewConfig","uiViewClassName","adaptViewConfig","prevStyle","_reattachNativeEvents","inputProps","_loop2","processedStyle","_filterNonAnimatedStyle","animatedProp","_filterNonAnimatedProps","platformProps","checkDCE","setBackgroundColor","setBarStyle","setNetworkActivityIndicatorVisible","setTranslucent","mainClock","_InternalAnimatedValu","AnimatedMainClock","_runFrame","_frameCallback","cancelAnimationFrame","AnimatedClock","_started","_attached","family","customAnimatedText","allowArrayLike","AnimatedCond","ifBlock","elseBlock","_condition","_ifBlock","_elseBlock","createAnimatedCond","sanitizeArgMapping","alwaysNodes","createAnimatedAlways","proxyHandler","proxy","nodesMap","zoomScale","contentInset","createEventObjectProxyPolyfill","_sanitizeArgMapping","_alwaysNodes","createAnimatedEvent","focusTextInput","textFieldNode","Extrapolation","isNode","__nodeId","getVal","coef","leftEdgeOutput","rightEdgeOutput","isExtrapolate","validateType","extrapolationConfig","internalInterpolate","narrowedInput","leftEdgeInput","rightEdgeInput","interpolateNode","int32Color","MediaTypeOptions","VideoExportPreset","UIImagePickerControllerQualityType","UIImagePickerPresentationStyle","EventEmitter","IS_MANAGED_ENV","IS_ENV_WITH_UPDATES_ENABLED","IS_ENV_WITHOUT_UPDATES_ENABLED","manifestBaseUrl","downloadAsync","getManifest","getManifest2","Foundation","animating","indicatorColor","hidesWhenStopped","indicatorSize","startRotation","stopRotation","frameIndex","layerStyle","viewportStyle","offsetStyle","lineStyle","ModalPortal","elementRef","body","ReactDOM","createPortal","getAnimationStyle","animationType","animatedSlideInStyles","animatedSlideOutStyles","animatedFadeInStyles","animatedFadeOutStyles","animatedIn","animationDuration","ANIMATION_DURATION","animationTimingFunction","animatedOut","fadeIn","fadeOut","slideIn","slideOut","ModalAnimation","isRendering","setIsRendering","wasVisible","animationEndCallback","onAnimationEnd","ModalContent","onRequestClose","closeOnEscape","modal","modalTransparent","modalOpaque","FocusBracket","tabIndex","focusBracket","attemptFocus","ModalFocusTrap","trapElementRef","focusRef","trapFocusInProgress","lastFocusedElement","trapFocus","hasFocused","focusFirstDescendant","childNodes","focusLastDescendant","lastFocusedElementOutsideTrap","outlineStyle","uniqueModalIdentifier","activeModalStack","activeModalListeners","notifyActiveModalListeners","activeModalId","modalId","removeActiveModal","Modal","_props$visible","setIsActive","onDismissCallback","onShowCallback","addActiveModal","deepDiffer","one","two","maxDepth","twoKey","numColumnsOrDefault","numColumns","_React$PureComponent","_virtualizedListPairs","_captureRef","_listRef","_getItem","kk","_item","_getItemCount","_keyExtractor","_this$props$keyExtrac","keyExtractor","defaultKeyExtractor","_renderer","ListItemComponent","renderItem","columnWrapperStyle","virtualizedListRenderKey","renderer","_item2","_index","separators","_checkProps","viewabilityConfigCallbackPairs","viewabilityConfig","onViewableItemsChanged","_createOnViewableItemsChanged","scrollToIndex","scrollToItem","scrollToOffset","recordInteraction","getScrollRef","getItem","getItemCount","_this$props$keyExtrac2","viewableItems","_pushMultiColumnViewable","_this$props2","_removeClippedSubviews","VirtualizedList","UnimplementedView","unimplementedViewStyles","EXPERIMENTAL_WEB_IMPLEMENTATION","getWasCalled","enableExperimentalWebImplementation","shouldEnable","CSSTransitions","WebkitTransition","MozTransition","MSTransition","OTransition","NativeSafeAreaProvider","onInsetsChange","transitionDelay","getInset","createContextElement","getSupportedTransitionEvent","_supportedTransitionEvent","_supportedEnv","side","getSupportedEnv","SafeAreaInsetsContext","SafeAreaFrameContext","SafeAreaProvider","initialMetrics","initialSafeAreaInsets","parentInsets","parentFrame","setInsets","setFrame","nextFrame","nextInsets","NO_INSETS_ERROR","useSafeAreaFrame","withSafeAreaInsets","useSafeArea","SafeAreaConsumer","SafeAreaContext","freeGlobal","freeSelf","panGestureHandlerProps","panGestureHandlerCustomNativeProps","panHandlerName","managePanProps","transformPanGestureHandlerProps","useLayoutEffectImpl","Module","elementsThatOverlapOffsets","offsets","itemCount","getFrameMetrics","outLength","trailingOffset","newRangeCount","computeWindowedRenderLimits","maxToRenderPerBatch","getFrameMetricsApprox","scrollMetrics","visibleLength","visibleBegin","visibleEnd","overscanLength","fillPreference","overscanBegin","overscanEnd","_elementsThatOverlapO","overscanFirst","overscanLast","newCellCount","maxNewCells","firstWillAddMore","firstShouldIncrement","lastWillAddMore","lastShouldIncrement","initialURL","location","Linking","_eventCallbacks","filteredCallbacks","url","_dispatchEvent","urlToOpen","URL","JS_FUNCTION_NEW_API","jsListener","evt","registrations","newWorklet","fallbackEventName","registerEventHandler","unregisterEventHandler","fontConfig","thin","configureFonts","variantName","variantProperties","configureV3Fonts","configureV2Fonts","tapGestureHandlerProps","tapHandlerName","ImageBackground","_props$style","imageRef","_StyleSheet$flatten","TouchHistoryMath","centroidDimension","touchHistory","touchesChangedAfter","isXAxis","ofCurrent","touchBank","oneTouchData","numberActiveTouches","indexOfSingleActiveTouch","touchActive","currentTimeStamp","currentPageX","currentPageY","previousPageX","previousPageY","touchTrack","noCentroid","currentCentroidXOfTouchesChangedAfter","currentCentroidYOfTouchesChangedAfter","previousCentroidXOfTouchesChangedAfter","previousCentroidYOfTouchesChangedAfter","currentCentroidX","currentCentroidY","PanResponder","_initializeGestureState","gestureState","moveX","moveY","y0","_accountsForMovesUpTo","_updateGestureStateOnMove","movedAfter","prevX","prevY","nextDX","nextDY","mostRecentTimeStamp","shouldCancelClick","panHandlers","onStartShouldSetPanResponder","onMoveShouldSetPanResponder","onStartShouldSetPanResponderCapture","onMoveShouldSetPanResponderCapture","clearInteractionTimeout","onPanResponderGrant","onShouldBlockNativeResponder","onPanResponderReject","onPanResponderRelease","setInteractionTimeout","onPanResponderStart","onPanResponderMove","onPanResponderEnd","onPanResponderTerminate","onPanResponderTerminationRequest","getInteractionHandle","getButtonColors","customButtonColor","customTextColor","getButtonBackgroundColor","getButtonTextColor","getButtonBorderColor","getButtonBorderWidth","iconReverse","md3Icon","md3IconCompact","md3IconReverse","md3IconReverseCompact","md3IconTextMode","md3IconTextModeCompact","md3IconReverseTextMode","md3IconReverseTextModeCompact","md2Label","compactLabel","md3Label","md3LabelText","md3LabelTextAddons","buttonColor","isElevationEntitled","initialElevation","activeElevation","touchableStyle","customLabelColor","customLabelSize","constants","reactNativeVersion","CSS_UNIT_RE","multiplyStyleLengthValue","multiple","activeThumbColor","activeTrackColor","_props$disabled","thumbColor","trackColor","_props$value","thumbRef","handleFocusState","thumbDefaultBoxShadow","styleHeight","styleWidth","trackBorderRadius","trackCurrentColor","true","false","thumbCurrentColor","thumbHeight","thumbWidth","rootStyle","cursorDefault","disabledTrackColor","disabledThumbColor","trackStyle","thumbStyle","thumb","thumbActive","nativeControl","cursorInherit","forcedColorAdjust","nextObj","didWarn","previousStyleRef","setNativePropsArgsRef","relativeToNode","nextDomStyle","touchableEvents","touchableEventObject","newStyles","outer","LinkingContext","isVisitable","removeBrackets","renderKey","dots","predicates","formData","metaTokens","indexes","option","visitor","defaultVisitor","useBlob","Blob","convertValue","Buffer","isFlatArray","exposedHelpers","getAndroidRippleColor","getAndroidControlColor","getAndroidSelectionControlColor","customUncheckedColor","getAndroidCheckedColor","getAndroidUncheckedColor","selectionControlColor","getIOSRippleColor","getSelectionControlIOSColor","getIOSCheckedColor","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","_createEventHandlers","shouldDelay","_selectionTerminated","_receiveSignal","normalizeDelay","_handleLongPress","keyupHandler","elementType","tagName","getTouchFromResponderEvent","_touchActivatePosition","_this$_config","_this$_config2","_this$_config3","_performTransitionSideEffects","isTerminalSignal","isPrevActive","isNextActive","_activate","_deactivate","_this$_config4","_onLongPress","_this$_config5","_this$_config6","fallback","_event$nativeEvent","pressResponderRef","pressResponder","useDebugValue","getEventHandlers","tertiary","errorContainer","onSecondary","onTertiary","onErrorContainer","onBackground","outlineVariant","scrim","level0","level5","required","qs","controlOrWhitespace","CRHTLF","slashes","port","protocolre","windowsDriveLetter","trimLeft","address","isSpecial","protocol","ignore","lolcation","loc","finaldestination","Url","unescape","pathname","extractProtocol","forwardSlashes","otherSlashes","slashesCount","parser","relative","extracted","instruction","instructions","up","host","hostname","username","password","auth","origin","part","char","ins","Dummy","GestureState","Reanimated","toSJISFunction","CODEWORDS_COUNT","getSymbolSize","getSymbolTotalCodewords","getBCHDigit","digit","setToSJISFunction","isKanjiModeEnabled","toSJIS","kanji","VersionCheck","Regex","NUMERIC","ccBits","ALPHANUMERIC","BYTE","KANJI","MIXED","getCharCountIndicator","getBestModeForData","dataStr","testNumeric","testAlphanumeric","testKanji","fromString","UI_THREAD_PROPS_WHITELIST","NATIVE_THREAD_PROPS_WHITELIST","textShadowRadius","backfaceVisibility","jsiConfigureProps","oldSize","addWhitelistedUIProps","PROCESSED_VIEW_NAMES","validAttributes","propsToAdd","valueIn","setOffset","flattenOffset","extractOffset","jointCallback","SHADOW_COLOR","MD2Colors","MD3_SHADOW_COLOR","v2Shadow","shadowHeight","AnimatedAlways","what","_what","BackHandler","exitApp","isNativeReflectConstruct","useLatest","useHeaderBackgroundColor","useHeaderColorIsLight","useHeaderTextColor","useTextColorOnPrimary","showWeekDay","dayIndex","disableWeekDays","di","dateToUnix","addMonths","getDaysInMonth","getFirstDayOfMonth","useRangeChecker","validRange","validStart","startDate","validEnd","endDate","startUnix","endUnix","getEndOfDay","validDisabledDatesRef","disabledDates","isWithinValidRange","dateUnix","isDateWithinOptionalRange","disabledDate","areDatesOnSameDay","gridCounts","startAtIndex","getGridCount","cHeight","dayOfWeek","getGridCountForDate","getRealIndex","getInitialIndex","differenceInMonths","firstDate","secondDate","diffMonths","leftRadius","daySize","rightRadius","rangeRootBoth","flex1","rangeRoot","leftCrop","rightCrop","inRange","selectColor","bothWays","isCrop","EmptyDay","onPressDate","primaryColor","isToday","textColorOnPrimary","textFont","dayName","dayNameLabel","dayNames","shortDayNames","formatter","DateTimeFormat","translationsPerLocale","getTranslation","translation","registerTranslation","datePickerHeader","buttonContainer","buttonWrapper","spacer","scrollMode","onPrev","onNext","isHorizontal","monthHeaderSingleMarginTop","monthHeaderSingleMarginBottom","monthHeaderSingleHeight","monthHeader","monthLabel","yearButton","yearButtonInner","opacity0","opacity1","monthGrid","weekGrid","getVerticalMonthsOffset","getIndexCount","cIndex","weeksOffset","estimatedMonthHeight","getMonthHeight","buttonContainerHeight","getCalendarHeaderHeight","onPressYear","selectingYear","realIndex","grid","today","emptyDays","weekIndex","generatedDays","beforeWeekDay","dayOfMonth","afterWeekDay","isFirstDayOfMonth","isLastDayOfMonth","selectedStartDay","selectedEndDay","isDateBetween","safeDates","yesterday","tomorrow","yesterdaySelected","tomorrowSelected","gd","AutoSizer","nl","autoSizer","visibleArray","VerticalScroller","initialIndex","estimatedHeight","visibleIndexes","setVisibleIndexes","useIsomorphicLayoutEffect","setVisibleIndexesThrottled","mounted","latest","timerId","useDebouncedCallback","estimatedIndex","difference","getIndexFromVerticalOffset","vi","willChange","renderHeader","renderFooter","selectedYear","setIndex","renderProps","currentIndexRef","onChangeRef","currentIndex","newIndex","useYearChange","YearPicker","startYear","endYear","flatList","indexToGo","sProps","Year","yearInner","yearLabel","viewPager","dateMode","darkenBy","lightenBy","setSelectedYear","setSelectingYear","startDateRef","endDateRef","datesRef","sd","ed","isStart","newDates","datePressed","change","AnimatedCrossView","collapsed","calendarEdit","calendarOpacity","DatePickerModalHeader","disableSafeTop","closeIcon","saveLabel","appbarHeader","onSave","saveLabelDisabled","headerContentContainer","singleHeaderText","rangeHeaderText","headerTextFilled","headerTextEmpty","headerSeparator","DatePickerModalContentHeader","onToggle","moreLabel","editIcon","calendarIcon","allowEditing","configuredLabel","isEditingEnabled","supportingTextColor","HeaderContentSingle","emptyLabel","lighterColor","dateColor","HeaderContentMulti","dateCount","HeaderContentRange","startLabel","endLabel","startColor","endColor","safeContent","excludeInRangeHeaderText","excludeInRangeHeaderTextSmall","column","splitCharacters","enhanceTextWithMask","previousValue","isBackSpace","splitCharacter","ch","detectCharacter","maskParts","textParts","finalString","maskPartIndex","partString","maskPart","textPart","maskDigitIndex","currentCharacter","character","lastPart","lastMaskPart","controlledValue","setControlledValue","enhancedText","useDateInput","onValidationError","setError","useInputFormatter","inputFormat","useInputFormat","formattedValue","monthIndex","yearIndex","inputError","finalDate","errors","withDateFormatInLabel","hasError","hideValidationErrors","inputButtons","inputEnabled","onDateInputChangeText","inner","dateInput","startInput","endInput","inputsToFocus","inputsToBlur","ip","onSubmitStartInput","onSubmitEndInput","onSubmitInput","DatePickerModalHeaderBackground","onConfirm","anyProps","setCollapsed","onInnerChange","onInnerConfirm","onToggleCollapse","supportedOrientations","modalRoot","modalBackground","modalContent","modalContentBig","disableStatusBar","disableStatusBarPadding","animationTypeCalculated","headerBackgroundColor","hourTypes","inputTypes","reverseInputTypes","keyboard","picker","inputTypeIcons","getTimeInputTypeIcon","inputType","inputIconMap","clockTypes","_30","_12","_360","_90","snap","toHourInputFormat","is24Hour","toHourOutputFormat","newHours","previousHours","outerHourRoot","outerHourInner","innerHourRoot","innerHourInner","getHourNumbers","arrayLength","outerRange","innerRange","AnimatedClockSwitcher","animatedCollapsed","innerHourText","textWhite","getMinuteNumbers","currentMinutes","isZero","isCurrent","circleSize","middlePoint","endPoint","line","returnTrue","DisplayModeContext","shortPointer","clockRef","hoursRef","minutesRef","focusedRef","is24HourRef","modeRef","final","hours24","pickedHours","handAngle","hourType","getHourType","hours12AndPm","hourTypeFromOffset","getHourTypeFromOffset","pickedMinutes","panResponder","dynamicSize","pointerNumber","degreesPerNumber","buttonOverlay","clockType","onChanged","inputFontSize","inputFocused","setInputFocused","highlighted","useInputColors","AmPmSwitcher","setMode","isAM","switchSeparator","SwitchButton","useSwitchColors","switchButton","switchButtonInner","spaceBetweenInputsAndSwitcher","inputContainerLandscape","hoursAndMinutesSeparator","spaceDot","dot","betweenDot","onFocusInput","isLandscape","onChangeHours","newHoursFromInput","newMinutesFromInput","newMinutes","rootLandscape","rootPortrait","clockContainer","use24HourClock","displayMode","setDisplayMode","timeZone","keyboardView","timePickerContainer","inputTypeToggle","cancelLabel","confirmLabel","keyboardIcon","clockIcon","labelText","setInputType","localHours","setLocalHours","localMinutes","setLocalMinutes","calendarButton","withModal","setVisible","ar","save","selectSingle","selectMultiple","selectRange","notAccordingToDateFormat","mustBeHigherThan","mustBeLowerThan","mustBeBetween","dateIsDisabled","typeInDate","pickDateFromCalendar","de","en","enGB","es","fr","he","ko","tr","Timeout","clearFn","_clearFn","scope","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","baseIsNative","MaterialIcons","onRefresh","progressBackgroundColor","progressViewOffset","refreshing","KeyboardAvoidingView","keyboardFrame","keyboardY","keyboardVerticalOffset","AnimatedSet","createAnimatedSet","leftInset","v3LeftInset","dividerColor","PortalConsumer","checkManager","mount","unmount","settings","SettingsProvider","Host","PortalHost","tooltip","arrayLike","colorInt","startNativeAnimationNextId","__nativeId","__onEnd","startNativeAnimationWaitId","__debouncedOnEnd","resizeObserver","observer","ResizeObserver","observe","unobserve","AnimatedParam","argsStack","prevCallID","_prevCallID","_getTopNode","isRunning","createAnimatedParam","runtime","argsTag","mapTag","objectTag","reIsHostCtor","reIsUint","typedArrayTags","freeExports","freeModule","moduleExports","freeProcess","nodeUtil","binding","nodeIsTypedArray","arraySome","mapToArray","setToArray","arrayProto","funcProto","objectProto","coreJsData","funcToString","maskSrcKey","uid","IE_PROTO","nativeObjectToString","reIsNative","symToStringTag","nativeGetSymbols","nativeIsBuffer","nativeKeys","DataView","getNative","nativeCreate","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","Hash","ListCache","SetCache","__data__","arrayLikeKeys","inherited","isArr","isArg","isArguments","isBuff","isType","skipIndexes","iteratee","baseTimes","isIndex","assocIndexOf","baseGetTag","isOwn","unmasked","getRawTag","objectToString","baseIsArguments","isObjectLike","baseIsEqual","bitmask","customizer","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","byteLength","byteOffset","isPartial","stacked","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","getAllKeys","objLength","othLength","skipCtor","objValue","othValue","compared","objCtor","othCtor","equalObjects","baseIsEqualDeep","isMasked","baseKeys","Ctor","isPrototype","arrLength","seen","arrValue","othIndex","keysFunc","symbolsFunc","arrayPush","baseGetAllKeys","getSymbols","getMapData","isKeyable","pairs","LARGE_ARRAY_SIZE","resIndex","arrayFilter","symbol","ctorString","isLength","baseUnary","isArrayLike","lazyRef","emptyArray","normalizeIdentifier","createResponderEvent","domEvent","responderTouchHistoryStore","propagationWasStopped","domEventChangedTouches","domEventType","normalizeTouches","emulatedTouches","responderEvent","eventPhase","isTrusted","isStartish","isMoveish","isEndish","isCancelish","composedPathFallback","getResponderId","getResponderPaths","idPath","nodePath","eventPath","getSelection","anchorNode","getEventPath","hasValidSelection","focusNode","isTextNode","TEXT_NODE","isSelectionValid","timestampForTouch","getTouchIdentifier","recordTouchStart","touchRecord","startPageX","startPageY","startTimeStamp","previousTimeStamp","resetTouchRecord","createTouchRecord","printTouch","printTouchBank","printed","ResponderTouchHistoryStore","_touchHistory","topLevelType","recordTouchMove","recordTouchEnd","touchTrackToCheck","startRegistration","moveRegistration","shouldSetResponderEvents","emptyResponder","responderListenersMap","trackedTouchCount","currentResponder","changeCurrentResponder","responder","getResponderConfig","eventListener","eventTarget","isStartEvent","noModifiers","isPrimaryPointerDown","isMoveEvent","isEndEvent","isScrollEvent","isScroll","isSelectionChangeEvent","isSelectionChange","recordTouchTrack","wantsResponder","eventPaths","wasNegotiated","currentResponderIdPath","eventIdPath","lowestCommonAncestor","pathA","pathB","pathALength","pathBLength","itemA","indexA","itemB","indexB","depth","getLowestCommonAncestor","shouldSetCallbacks","shouldSetCallbackCaptureName","shouldSetCallbackBubbleName","check","callbackName","shouldSetCallback","_result","_id2","findWantsResponder","_currentResponder2","currentNode","_getResponderConfig2","_getResponderConfig3","allowTransfer","attemptTransfer","_currentResponder","_getResponderConfig","isTerminateEvent","relatedTarget","isReleaseEvent","hasTargetTouches","shouldTerminate","documentEventsCapturePhase","documentEventsBubblePhase","removeNode","_currentResponder3","terminateResponder","idCounter","getInitialValue","isAttachedRef","__reactResponderSystemActive","ResponderSystem","requiresResponderSystem","setResponderId","isResponder","Batchinator","delayMS","_delay","_taskHandle","timeoutHandle","_isViewable","viewAreaMode","viewablePercentThreshold","viewportHeight","itemLength","_isEntirelyVisible","pixels","visibleHeight","_getPixelsVisible","ViewabilityHelper","viewAreaCoveragePercentThreshold","_hasInteracted","_timers","_viewableIndices","_viewableItems","scrollOffset","renderRange","itemVisiblePercentThreshold","viewableIndices","firstVisible","metrics","createViewToken","waitForInteraction","computeViewableItems","minimumViewTime","_onUpdateSync","viewableIndicesToCheck","prevItems","nextItems","viewable","_step$value","_step2$value","_viewable","isViewable","infoLog","_console","VirtualizedListContext","VirtualizedListContextProvider","cellKey","getScrollMetrics","getOutermostParentListRef","getNestedChildState","registerAsNestedChild","unregisterAsNestedChild","debugInfo","listKey","VirtualizedListCellContextProvider","_usedIndexForKey","_keylessItemComponentName","horizontalOrDefault","initialNumToRenderOrDefault","initialNumToRender","maxToRenderPerBatchOrDefault","onEndReachedThresholdOrDefault","onEndReachedThreshold","windowSizeOrDefault","_this$props$updateCel","_getScrollMetrics","_scrollMetrics","_getOutermostParentListRef","_isNestedWithSameOrientation","_getNestedChildState","existingChildData","_nestedChildLists","_registerAsNestedChild","childList","childListsInCell","_cellKeysToChildListKeys","trace","parentDebugInfo","describeNestedLists","_unregisterAsNestedChild","_onUpdateSeparators","_cellRefs","updateSeparatorProps","_getSpacerKey","isVertical","_averageCellLength","_frames","_footerLength","_hasDoneInitialScroll","_hasMore","_hasWarned","_headerLength","_hiPriInProgress","_highestMeasuredFrameIndex","_indicesToKeys","_offsetFromParentVirtualizedList","_prevParentOffset","contentLength","dOffset","_scrollRef","_sentEndForContentLength","_totalCellLength","_totalCellsMeasured","_viewabilityTuples","_captureScrollRef","_defaultRenderScrollComponent","_props$refreshing","_onCellUnmount","inLayout","_onLayout","measureLayoutRelativeToContainingList","_selectLength","_scheduleCellsToRenderUpdate","_maybeCallOnEndReached","_onLayoutEmpty","_onLayoutFooter","_triggerRemeasureForChildListsInCell","_getFooterCellKey","_onLayoutHeader","_onContentSizeChange","initialScrollIndex","_convertParentScrollMetrics","_onScroll","_selectOffset","_this$_convertParentS","perf","prevDt","_updateViewableItems","_fillRateHelper","_computeBlankness","_onScrollBeginDrag","tuple","viewabilityHelper","_onScrollEndDrag","_onMomentumScrollBegin","_onMomentumScrollEnd","_updateCellsToRender","_this$props3","isVirtualizationDisabled","_isVirtualizationDisabled","_this$_scrollMetrics","renderAhead","_getFrameMetricsApprox","newFirst","newLast","cellKeyForIndex","childListKeys","someChildHasMore","childKey","hasMore","_createViewToken","_this$props4","_getFrameMetrics","getItemLayout","_this$props5","FillRateHelper","_updateCellsToRenderBatcher","updateCellsBatchingPeriod","storedState","_getListKey","frames","invertedWheelEventHandler","inverted","wheelDeltaX","wheelDeltaY","veryLast","onScrollToIndexFailed","viewOffset","viewPosition","averageItemLength","highestMeasuredFrameIndex","_this$context","_getCellKey","_this$context2","setupWebWheelHandler","dispose","deactivateAndFlush","teardownWebWheelHandler","cells","stickyIndicesFromProps","inversionStyle","prevCellKey","_this$props6","ItemSeparatorComponent","stickyOffset","ListHeaderComponent","CellRenderer","fillRateHelper","onUpdateSeparators","_onCellLayout","onUnmount","parentProps","disableVirtualization","nestedContext","_this$props7","ListEmptyComponent","ListFooterComponent","_this$props8","horizontallyInverted","verticallyInverted","ListHeaderComponentStyle","spacerKey","lastInitialIndex","_this$state","_pushCells","firstAfterInitial","insertedStickySpacer","initBlock","stickyBlock","leadSpace","trailSpace","_initBlock","firstSpace","lastFrame","endFrame","tailSpacerLength","_element","_element2","ListFooterComponentStyle","invertStickyHeaders","_getDebugInfo","_renderDebugOverlay","_this$props9","extraData","resetViewableIndices","hiPriInProgress","computeBlankness","_step3","_iterator3","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","schedule","contextType","separatorProps","leadingItem","_separators","highlight","_this$props11","unhighlight","_this$props12","_this$props13","_this$props14","_renderElement","itemSeparator","cellStyle","rowReverse","columnReverse","accessibilityRoleToWebRole","adjustable","imagebutton","keyboardkey","link","search","summary","propsToAriaRole","inferredRole","roleComponents","article","banner","blockquote","complementary","contentinfo","deletion","emphasis","figure","insertion","form","listitem","region","strong","accessibilityStates","AnimatedBezier","sq","dec","tryDecode","serialize","enc","encode","fieldContentRegExp","maxAge","expires","toUTCString","httpOnly","secure","sameSite","useLazyRef","omit","keysToOmit","keysToOmitSet","useAnimatedProps","useAnimatedStyle","useWorkletCallback","Alert","isPrefixed","EVENT_TYPES","VISIBILITY_CHANGE_EVENT","VISIBILITY_STATE_PROPERTY","AppStates","changeEmitter","AppState","clipboardAvailable","Clipboard","queryCommandSupported","removeAllRanges","createRange","selectNodeContents","addRange","execCommand","DeviceInfo","_Dimensions$get2","languages","language","deviceMemory","configureNext","Presets","easeInEaseOut","springDamping","LayoutAnimation","Types","easeIn","easeOut","Properties","scaleXY","checkConfig","Share","share","vibrate","Vibration","buttonDisabled","textDisabled","CheckBox","fakeControl","fakeControlChecked","fakeControlDisabled","fakeControlCheckedAndDisabled","Picker","selectedValue","itemStyle","prompt","_e$target","selectedIndex","Item","_props$color","_props$indeterminate","_props$progress","_props$trackColor","percentageProgress","twoArgumentPooler","instancePool","standardReleaser","destructor","poolSize","DEFAULT_POOLER","PooledClass","addPoolingTo","CopyConstructor","pooler","NewKlass","getPooled","BoundingDimensions","getPooledFromElement","Position","extractSingleTouch","hasTouches","hasChangedTouches","States","baseStatesConditions","RESPONDER_INACTIVE_PRESS_IN","RESPONDER_INACTIVE_PRESS_OUT","RESPONDER_ACTIVE_PRESS_IN","RESPONDER_ACTIVE_PRESS_OUT","RESPONDER_ACTIVE_LONG_PRESS_IN","RESPONDER_ACTIVE_LONG_PRESS_OUT","IsActive","IsPressingIn","IsLongPressingIn","Signals","ENTER_PRESS_RECT","LEAVE_PRESS_RECT","TouchableMixin","_touchableNode","_touchableBlurListener","_isTouchableKeyboardActive","touchState","touchableHandleResponderTerminate","touchableDelayTimeout","longPressDelayTimeout","pressOutDelayTimeout","pressInLocation","responderID","touchableGetInitialState","touchableHandleResponderTerminationRequest","touchableHandleStartShouldSetResponder","touchableLongPressCancelsPress","touchableHandleResponderGrant","dispatchID","touchableGetHighlightDelayMS","_handleDelay","longDelayMS","touchableGetLongPressDelayMS","LONG_PRESS_THRESHOLD","_handleLongDelay","touchableHandleResponderRelease","touchableHandleResponderMove","positionOnActivate","dimensionsOnActivate","pressRectOffset","touchableGetPressRectOffset","pressExpandLeft","pressExpandTop","pressExpandRight","pressExpandBottom","touchableGetHitSlop","_getDistanceBetweenPoints","touchableHandleFocus","touchableHandleBlur","_remeasureMetricsOnActivation","_handleQueryLayout","globalX","globalY","curState","_performSideEffectsForTransition","_isHighlight","_savePressInLocation","bX","bY","curIsHighlight","newIsHighlight","isInitialTransition","isActiveTransition","touchableHandleLongPress","_startHighlight","_endHighlight","hasLongPressHandler","pressIsLongButStillCallOnPress","touchableHandlePress","_playTouchSound","playTouchSound","touchableHandleActivePressIn","touchableHandleActivePressOut","touchableGetPressOutDelayMS","touchableHandleKeyEvent","withoutDefaultFocusAndBlur","TouchableMixinWithoutDefaultFocusAndBlur","TOUCH_TARGET_DEBUG","renderDebugView","debugHitSlopStyle","hexColor","YellowBox","ignoreWarnings","LogBox","ignoreLogs","ignoreAllLogs","uninstall","install","promiseMock","PERMISSIONS","RESULTS","checkPermission","requestMultiple","AnimatedCall","jsFunction","_args","createAnimatedCall","NativeIconAPI","RNVectorIconsManager","RNVectorIconsModule","ensureNativeModuleAvailable","DEFAULT_ICON_SIZE","DEFAULT_ICON_COLOR","createIconSet","fontFile","fontBasename","fontReference","windows","_PureComponent","handleRef","glyph","fromCodePoint","styleDefaults","styleOverrides","PureComponent","imageSourceCache","_cache$get","createIconSourceCache","resolveGlyph","_getImageSource","_asyncToGenerator","imagePath","getImageForFont","_loadFont","file","loadFontWithFileName","createIconButtonComponent","getImageSource","getImageSourceSync","getImageForFontSync","isDOMAvailable","canUseEventListeners","canUseViewport","isAsyncDebugging","EASING","WINDOW_LAYOUT","ELEVATION_LEVELS_MAP","ElevationLevels","Menu","rendered","menuLayout","anchorLayout","opacityAnimation","scaleAnimation","windowLayout","menu","keyboardHeight","isCoordinate","measureMenuLayout","measureAnchorLayout","updateVisibility","show","hide","isBrowser","focusFirstDOMNode","focusableNode","querySelector","handleDismiss","handleKeypress","attachListeners","backHandlerSubscription","dimensionsSubscription","keyboardDidShow","keyboardDidHide","keyboardDidShowListener","keyboardDidHideListener","anchorPosition","statusBarHeight","overlayAccessibilityLabel","additionalVerticalValue","scaleTransforms","positionTransforms","scrollableMenuHeight","shadowMenuContainerStyle","positionStyle","pressableOverlay","onAccessibilityEscape","shadowMenuContainer","MenuItem","APPROX_STATUSBAR_HEIGHT","hydrate","domHydrate","domRender","RootTagContext","AppContainer","WrapperComponent","innerView","appContainer","rootTag","wrapperComponentProvider","runnables","componentProviderInstrumentationHook","AppRegistry","appKey","appParameters","getApplication","componentProvider","RootComponent","initialProps","getStyleElement","dangerouslySetInnerHTML","__html","run","shouldHydrate","renderFn","renderApplication","registerRunnable","registerComponent","hook","provider","unmountComponentAtNode","defaultOffset","createTextShadowValue","textShadowOffset","boxShadowValue","textShadowValue","textShadow","UNINITIALIZED","getScale","getScaledAssetPath","AssetSourceResolver","pickScale","getBasePath","serverUrl","jsbundleUrl","isLoadedFromServer","assetServerURL","scaledAssetURLNearBundle","fromSource","__packager_asset","deviceScale","gestureHandlerEventSubscription","gestureHandlerStateChangeEventSubscription","gestureStateManagers","lastUpdateEvent","isStateChangeEvent","isTouchEvent","GestureStateManager","oldHandler","stopListening","evalNode","JSReanimated","_Object$keys$reduce","rawStyles","dashedKey","previousStyle","currentStyle","HeaderShownContext","getNamedContext","createCSSStyleSheet","getElementById","createTextNode","ShadowRoot","insertBefore","createOrderedCSSStyleSheet","group","groups","selectors","cssRules","cssRule","cssText","selectorText","groupPattern","decodeGroupRule","getSelectorText","sheetInsert","orderedGroups","getOrderedGroups","nextGroupIndex","nextGroup","isInserted","insertRule","insertRuleAt","groupNumber","previousStart","marker","groupValue","markerRule","encodeGroupRule","selectorPattern","roots","sheets","initialRules","getRootNode","initialSheet","PortalManager","setManager","webpackPolyfill","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","initialWindowMetrics","SafeAreaProviderCompat","PaperProvider","isOnlyVersionInTheme","colorSchemeName","reduceMotionEnabled","setReduceMotionEnabled","setColorScheme","handleAppearanceChange","preferences","AccessibilityInfo","appearanceSubscription","removeChangeListener","extendedThemeBase","createExtraStyles","MemoedTouchableHighlight","extraStyles","setExtraStyles","longPressGestureHandlerProps","longPressHandlerName","flingGestureHandlerProps","flingHandlerName","prepareAnimation","lastAnimation","lastValue","callStart","runAnimations","animationsActive","allFinished","styleUpdater","newValues","oldValues","hasAnimations","isAnimationCancelled","isAnimationRunning","jestStyleUpdater","makeViewsRefSet","makeViewDescriptorsSet","adaptersArray","adaptersHash","remoteState","sharableViewDescriptors","rebuildsharableViewDescriptors","updaterFn","checkSharedValueUsage","createSvgCircle","cx","cy","_props$animating","_props$hidesWhenStopp","_props$size","viewBox","stroke","indicatorSizes","animationPause","animationPlayState","isScreenReaderEnabled","prefersReducedMotionMedia","isReduceMotionEnabled","fetch","setAccessibilityFocus","reactTag","announceForAccessibility","announcement","dismissable","dismissableBackButton","visibleRef","setRendered","showModal","hideModal","onHardwareBackPress","prevVisible","CardActions","CardContent","siblings","getCardCoverStyle","CardCover","coverStyle","CardTitle","titleVariant","subtitleNumberOfLines","subtitleVariant","subtitleMaxFontSizeMultiplier","leftStyle","rightStyle","TitleComponent","Title","SubtitleComponent","Caption","titles","cardElevation","cardMode","elevationDarkAdaptive","prevDarkRef","prevDark","isAdaptiveMode","runElevationAnimation","pressType","isPressTypeIn","computedElevation","getCardColors","themedBorderColor","borderRadiusCombinedStyles","innerContainer","resetElevation","unstable_pressDelay","Content","Actions","Cover","ItemWithSeparator","LeadingSeparatorComponent","SeparatorComponent","setSelfHighlightCallback","updateHighlightFor","setSelfUpdatePropsCallback","updatePropsFor","section","leadingSeparatorHiglighted","setLeadingSeparatorHighlighted","separatorHighlighted","setSeparatorHighlighted","_React$useState3","leadingSection","trailingItem","trailingSection","leadingSeparatorProps","setLeadingSeparatorProps","_React$useState4","setSeparatorProps","leadingSeparator","VirtualizedSectionList","_subExtractor","_convertViewable","_info$index","keyExtractorWithNullableIndex","keyExtractorWithNonNullableIndex","_onViewableItemsChanged","_renderItem","listItemCount","infoIndex","renderSectionHeader","renderSectionFooter","_getSeparatorComponent","SectionSeparatorComponent","_setUpdateHighlightFor","_setUpdatePropsFor","_updateHighlightFor","_updatePropsFor","_updatePropsMap","updateHighlight","_updateHighlightMap","updateHighlightFn","updatePropsFn","itemIndex","sectionIndex","sections","stickySectionHeadersEnabled","toIndexParams","passThroughProps","listHeaderOffset","itemIdx","sectionData","isLastItemInList","isLastItemInSection","_wrapperListRef","scrollToLocation","listRef","getListRef","_stickySectionHeadersEnabled","forceTouchGestureHandlerProps","ForceTouchFallback","forceTouchHandlerName","ForceTouchGestureHandler","forceTouchAvailable","AnimatedCallFunc","_params","_previousCallID","beginContext","endContext","createAnimatedCallFunc","AnimatedFunction","createAnimatedFunction","_construct","getEnforcing","nativeModule","_nativeModule","_this$_nativeModule","_this$_nativeModule2","_this$_nativeModule3","_this$_nativeModule4","listenerCount","processIDRefList","idRefList","pointerEventsStyles","auto","dataProp","dataName","dataValue","_StyleSheet","className","inlineStyle","TEXT_PROP_NAMES","TOUCHABLE_PROP_NAMES","_IconButton","iconProps","touchableProps","colorStyle","blockStyle","currentIcon","setCurrentIcon","previousIcon","setPreviousIcon","opacityPrev","opacityNext","rotatePrev","rotateNext","MutableValue","MUTABLE_ID","_setter","_triggerListener","__reanimatedModuleProxy","installTurboModule","InnerNativeModule","valueSetter","sensorId","eventHash","strictUriEncode","decodeComponent","splitOnFirst","filterObject","encodeFragmentIdentifier","validateArrayFormatSeparator","hashStart","queryStart","parseValue","parseNumbers","parseBooleans","arrayFormat","arrayFormatSeparator","accumulator","isEncodedArray","arrayValue","parserForArrayFormat","keysSorter","shouldFilter","skipNull","isNullOrUndefined","skipEmptyString","keyValueSep","encoderForArrayFormat","objectCopy","parseUrl","url_","parseFragmentIdentifier","fragmentIdentifier","stringifyUrl","queryFromUrl","parsedQueryFromUrl","exclude","exclusionFilter","contexts","getDefaultHeaderHeight","modalPresentation","isPad","isTV","EmitterSubscription","_EventSubscription2","subscriber","removeSubscription","_EventSubscription","EventSubscriptionVendor","_subscriptionsForType","subscriptionsForType","sparseFilterPredicate","_subscriber","addSubscription","removeAllSubscriptions","getSubscriptionsForType","isWebColor","MediaTypeInput","All","Images","Videos","launchImageLibraryAsync","mediaTypes","allowsMultipleSelection","base64","openFileBrowserAsync","canceled","assets","launchCameraAsync","getCameraPermissionsAsync","permissionGrantedResponse","requestCameraPermissionsAsync","getMediaLibraryPermissionsAsync","_writeOnly","requestMediaLibraryPermissionsAsync","GRANTED","granted","canAskAgain","mediaTypeFormat","files","targetFile","reader","FileReader","returnRaw","readAsDataURL","MouseEvent","validateOptions","aspect","quality","videoMaxDuration","DEPRECATED_RESULT_KEYS","mergeDeprecatedResult","firstAsset","deprecatedResult","writeOnly","imagePickerMethod","useMediaLibraryPermissions","useCameraPermissions","getPendingResultAsync","allowsEditing","registerAsset","assetId","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","runClearTimeout","nextTick","browser","argv","versions","once","prependListener","prependOnceListener","cwd","chdir","umask","arrayLikeToArray","minLen","colorNames","swizzle","reverseNames","cs","hexDouble","hexAlpha","i2","hwba","_setPrototypeOf","_listenerCount","__expo_module_name__","EXReactNativeEventEmitter","addProxiedListener","removeProxiedListeners","_eventEmitter","startObserving","nativeEmitterSubscription","removedListenerCount","stopObserving","isSearchBarAvailableForCurrentPlatform","executeNativeBackPress","H","reactIs","REACT_STATICS","childContextTypes","contextTypes","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","objectPrototype","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","_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","__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","lastPosition","lastVelocity","__startNativeAnimation","_timeout","envelope","_envelope","_animationFrame","_easeInOut","_config$easing","_config$duration","_easing","_duration","numFrames","_fromValue","_startTime","assertPath","normalizeStringPosix","allowAboveRoot","lastSegmentLength","lastSlash","lastSlashIndex","posix","resolvedPath","resolvedAbsolute","isAbsolute","trailingSeparator","joined","fromStart","fromEnd","fromLen","toStart","toLen","lastCommonSep","fromCode","_makeLong","dirname","hasRoot","matchedSlash","basename","ext","extIdx","firstNonSlashEnd","extname","startDot","startPart","preDotState","pathObject","sep","_format","win32","batchToRemove","tags","waitForInsertSync","waitForRemoveSync","newArray","hexa","rgbArray","alphaHex","_model","Separator","getFlattenedTabWidth","tabStyle","getComputedTabWidth","tabWidths","flattenedWidth","getMaxScrollDistance","tabBarWidth","layoutWidth","getTabBarWidth","gap","flattenedTabWidth","getScrollAmount","scrollAmount","tabWidth","scrollValue","normalizeScrollValue","getLabelTextDefault","getAccessibleDefault","getAccessibilityLabelDefault","renderIndicatorDefault","getTestIdDefault","TabBar","getAccessible","renderIndicator","bounces","indicatorContainerStyle","indicatorStyle","pressColor","pressOpacity","renderBadge","renderTabBarItem","setTabWidths","flatListRef","measuredTabWidths","isWidthDynamic","hasMeasuredTabWidths","separatorsWidth","separatorPercent","tabBarWidthPercent","maxScrollDistance","getTranslateX","defaultTabWidth","contentContainerStyleMemoized","tabContent","handleScroll","handleViewableItemsChanged","tabBar","indicatorContainer","getTabWidth","TabBarIndicator","isIndicatorShown","indicatorVisible","indicator","HeaderHeightContext","FontDisplay","getFontFaceStyleSheet","styleSheet","getFontFaceRulesMatchingResource","fontFamilyName","CSSFontFaceRule","getFontFaceRules","fontDisplay","unloadAllAsync","ID","HTMLStyleElement","unloadAsync","deleteRule","loadAsync","resource","AUTO","styleElement","styleElementIE","textNode","_createWebStyle","isSafari","isEdge","isIE","isFirefox","isFontLoadingListenerSupported","getAssetForSource","uriFromFontSource","localUri","Asset","fromModule","throwInvalidSourceError","loadSingleFontAsync","loadPromises","processFontFamily","isLoaded","isLoading","fontFamilyOrFontMap","loadFontInNamespaceAsync","fontMap","unloadFontInNamespaceAsync","nativeFontName","toPrimitive","cssKeywords","reverseKeywords","ansi16","ansi256","apple","rdif","gdif","bdif","diffc","currentClosestKeyword","currentClosestDistance","smin","lmin","hi","vmin","wh","bl","hr","ansi","mult","rem","integer","mg","pure","isMergeableObject","isNonNullObject","stringValue","$$typeof","REACT_ELEMENT_TYPE","isReactElement","cloneUnlessOtherwiseSpecified","deepmerge","defaultArrayMerge","getKeys","getEnumerableOwnPropertySymbols","mergeObject","destination","customMerge","getMergeFunction","arrayMerge","sourceIsArray","RE","requireNativeModule","expo","modules","ExpoModules","moment","symbolMap","numberMap","pluralForm","plurals","pluralize","weekdaysParseExact","suffixes","70","80","50","100","30","60","90","relativeTimeWithPlural","word","forms","plural","standalone","lastDigit","last2Digits","monthsParseExact","relativeTimeWithMutation","mutationTable","softMutation","mutation","minWeekdaysParse","fullWeekdaysParse","shortWeekdaysParse","monthsStrictRegex","monthsShortStrictRegex","longMonthsParse","shortMonthsParse","lastNumber","translate","ll","lll","llll","processRelativeTime","monthsNominativeEl","monthsGenitiveEl","momentToFormat","_monthsGenitiveEl","_monthsNominativeEl","calendarEl","_calendarEl","monthsShortDot","numbersPast","numbersFuture","verbalNumber","monthsShortWithDots","monthsShortWithoutDots","weekEndings","eraYearOrdinalRegex","$0","$1","$2","40","isUpper","ezafeNumSuffix","eifelerRegelAppliesToNumber","translateSingular","special","relativeTimeWithSingular","translator","words","correctGrammaticalCase","wordKey","relativeTimeMr","monthsNominative","monthsSubjective","numbersNouns","numberNoun","hundred","ten","numberAsNoun","processHoursFunction","nominative","accusative","genitive","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","cacheHas","arrStacked","othStacked","stubFalse","baseIsTypedArray","ALLOWED_PROPS","convertToHandlerTag","extractValidHandlerTags","interactionGroup","dropHandlers","preparedGesture","checkGestureCallbacksForWorklets","areSomeNotWorklets","areSomeWorklets","attachHandlers","gestureConfig","webEventHandlersRef","firstExecution","animatedHandlers","needsToReattach","touchEventTypeToCallbackType","runWorklet","GestureDetector","applyUserSelectProp","useReanimatedHook","firstRenderRef","mountedRef","animatedEventHandler","needsToRebuildReanimatedEvent","needsRebuild","sharedHandlersCallbacks","stateControllers","currentCallback","useAnimatedGesture","previousHandlersValue","newHandlersValue","shouldUpdateSharedValue","updateHandlers","refFunction","getShadowNodeFromRef","isFormsStackingContext","AnimatedWrap","AnimatedClockTest","clockNode","_clockNode","createAnimatedClockTest","AnimatedStartClock","createAnimatedStartClock","AnimatedStopClock","createAnimatedStopClock","AnimatedConcat","createAnimatedConcat","EventType","useAnimatedGestureHandler","onActive","onFinish","useDerivedValue","processor","_animations","firstAnimation","currentAnim","animationIndex","nextAnim","resolvePath","setPath","currObj","withStyleAnimation","styleAnimations","stillGoing","entriesToCheck","currentEntry","currentStyleAnimation","prevAnimation","prevVal","currentAnimation","animationsToCheck","_convert$model","saturation","FontAwesome","Feather","useClipboard","Clipboard_1","useClipboard_1","getString","clipboard","readText","innerText","setString","writeText","Searchbar","searchAccessibilityLabel","clearIcon","clearAccessibilityLabel","onClearIconPress","traileringIcon","traileringIconColor","traileringIconAccessibilityLabel","customTraileringRippleColor","traileringRippleColor","onTraileringIconPress","md2IconColor","isBarMode","shouldRenderTraileringIcon","barModeInput","viewModeInput","underlineColorAndroid","keyboardAppearance","v3Loader","loader","v3ClearIcon","v3ClearIconHidden","ECLevel","EC_BLOCKS_TABLE","EC_CODEWORDS_TABLE","getBlocksCount","errorCorrectionLevel","getTotalCodewordsCount","byte","BYTE_KANJI","TEST_KANJI","TEST_NUMERIC","TEST_ALPHANUMERIC","hex2rgba","hexCode","hexValue","rendererOpts","qrSize","getImageWidth","qrToImageData","imgData","qr","symbolSize","scaledMargin","posDst","pxColor","TRANSFORM_STYLE_PROPERTIES","wrapStyleTransforms","wrapped","DIRECTIONAL_FALLBACKS","Top","Bottom","Vertical","Horizontal","DIRECTIONAL_SUFFICES","getStyleValues","fallbacks","getDefaultStyleValue","compareNumbers","notNull","parsePosition","parsed","createAnimation","definition","compiled","animationRegistry","registerAnimation","initializeRegistryWithDefinitions","EASING_FUNCTIONS","INTERPOLATION_STYLE_PROPERTIES","ZERO_CLAMPED_STYLE_PROPERTIES","getAnimationTarget","iteration","getAnimationOrigin","getCompiledAnimation","compiledAnimation","makeInterpolatedStyle","transitionToValue","transitionValue","onTransitionBegin","onTransitionEnd","createAnimatableComponent","_AnimatableComponent","wrappedComponentName","Animatable","_Component","AnimatableComponent","animationStyle","transitionStyle","transitionValues","currentTransitionValues","initializeTransitionState","delayTimer","transitionKeys","styleValues","missingKeys","transitionState","onAnimationBegin","iterationDelay","endState","transitionTo","setAnimation","scheduledAnimation","iterationCount","currentIteration","fromValues","toValues","fromValuesFlat","toValuesFlat","_this$getTransitionSt","getTransitionState","needsInterpolation","needsZeroClamping","transitionToValues","currentTransitionValue","filtered","PropTypes","oneOfType","oneOf","arrayOf","bool","0.2","0.4","0.43","0.53","0.7","0.8","0.9","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","containerBox","extractAnimationFromProps","ReactNativeModal","showContent","deviceWidth","deviceHeight","isSwipeable","swipeDirection","pan","isTransitioning","inSwipeClosingState","currentSwipingDirection","didUpdateDimensionsEmitter","interactionHandle","getDeviceHeight","getDeviceWidth","onBackButtonPress","shouldPropagateSwipe","propagateSwipe","buildPanResponder","animEvt","shouldSetPanResponder","panResponderThreshold","onSwipeStart","getSwipingDirection","createAnimationEventForSwipe","_dispatchInstances","isSwipeDirectionAllowed","newOpacityFactor","calcDistancePercentage","backdropRef","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","useNativeDriverForBackdrop","onBackdropPress","hasCustomBackdrop","backdropComputedStyle","backdropWrapper","_buildAnimations","_buildAnimations2","avoidKeyboard","coverScreen","otherProps","containerProps","computedStyle","panPosition","getTranslateTransform","getLayout","hideModalContentWhileAnimating","containerView","isRequired","statusBarTranslucent","AdornmentType","AdornmentSide","InputMode","calculateLabelTopPosition","labelHeight","optionalPadding","customHeight","calculateInputHeight","finalHeight","calculatePadding","calculateTextAreaPadding","calculateInputPadding","dense","topPosition","isAndroid","refFontSize","calculateFlatAffixTopPosition","affixHeight","calculateOutlinedIconAndAffixTopPosition","labelYOffset","getInputTextColor","getActiveColor","activeUnderlineColor","activeOutlineColor","modeColor","getPlaceholderColor","getSelectionColor","_ref11","customSelectionColor","getFlatBackgroundColor","_ref12","getFlatUnderlineColor","_ref13","underlineColor","getOutlinedOutlineInputColor","_ref14","customOutlineColor","isTransparent","AFFIX_OFFSET","ICON_OFFSET","LABEL_PADDING_TOP","LABEL_PADDING_HORIZONTAL","FLAT_INPUT_OFFSET","MIN_HEIGHT","INPUT_PADDING_HORIZONTAL","ADORNMENT_OFFSET","OUTLINED_INPUT_OFFSET","MIN_WIDTH","AffixContext","AffixAdornment","affix","TextInputAffix","getTextColor","StyleContext","isTextInputFocused","forceFocus","IconAdornment","contextState","TextInputIcon","forceTextInputFocus","onPressWithFocusControl","iconButton","Underline","parentState","underlineColorCustom","hasActiveOutline","activeScale","md3Underline","getAdornmentConfig","adornmentConfig","adornment","Affix","getAdornmentStyleAdjustmentForNativeInput","leftAffixWidth","rightAffixWidth","inputOffset","isLeftSide","inputModeAdornemntOffset","Outlined","paddingKey","captalize","isAffix","marginKey","mergedStyles","TextInputAdornment","onAffixChange","inputAdornmentComponent","wiggle","labelLayoutWidth","labelBackground","labelError","onLayoutAnimatedText","onLabelTextLayout","placeholderStyle","baseLabelTranslateX","baseLabelTranslateY","placeholderOpacity","wiggleOffsetX","labelScale","placeholderColor","errorColor","labelTranslationXOffset","inputContainerLayout","paddingOffset","labelTranslationX","commonStyles","TextInputFlat","cursorColor","underlineStyle","NativeTextInput","innerRef","onLeftAffixLayoutChange","onRightAffixLayoutChange","onInputLayout","fontSizeStyle","lineHeightStyle","viewStyle","isPaddingHorizontalPassed","calculateFlatInputHorizontalPadding","leftLayout","rightLayout","adornmentStyleAdjustmentForNativeInput","Flat","_ref15","baseFlatColorProps","inputTextColor","getFlatInputColors","labelWidth","labelLayout","labelHalfWidth","labelHalfHeight","minInputHeight","inputHeight","paddingSettings","inputFlatDense","inputFlat","pad","paddingFlat","topResult","bottomResult","adjustPaddingFlat","placeholderOpacityAnims","flatHeight","iconTopPosition","leftAffixTopPosition","rightAffixTopPosition","labelProps","labelTextLayout","affixTopPosition","adornmentProps","densePatchContainer","patchContainer","InputLabel","labelLayoutMeasured","Outline","outlineColor","noLabelOutline","LabelBackground","labelTextScaleY","labelTextTransform","outlinedLabel","TextInputOutlined","_ref16","baseOutlinedColorProps","getOutlinedInputColors","densePaddingTop","yOffset","isAdornmentLeftIcon","isAdornmentRightIcon","inputOutlinedDense","inputOutlined","paddingOut","fontHeight","refFontHeight","adjustPaddingOut","onLayoutChange","outlinedHeight","roundLayoutSize","DefaultRenderer","errorProp","isControlled","validInputValue","setPlaceholder","uncontrolledValue","setUncontrolledValue","setLabelTextLayout","setInputContainerLayout","setLabelLayout","setLeftLayout","setRightLayout","handleChangeText","handleLayoutAnimatedText","handleLabelTextLayout","handleInputContainerLayout","_arrayLikeToArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","filterUniqueArray","assignStyle","DASH","MS","toUpper","camelCaseProperty","hyphenateProperty","cssifyDeclaration","cssifyObject","isPrefixedProperty","isPrefixedValue","unitlessProperties","prefixedUnitlessProperties","jLen","_property","isUnitlessProperty","unprefixProperty","propertyWithoutPrefix","normalizeProperty","resolveArrayValue","unprefixValue","borderStyleProperties","getAppbarBackgroundColor","getAppbarColor","modeAppbarHeight","modeTextVariant","renderAppbarContent","shouldCenterContent","renderOnly","renderExcept","v3Spacing","v2Spacing","centerAlignedContent","AppbarContent","titleRef","subtitleColor","modeContainerStyles","v3DefaultContainer","v3MediumContainer","v3LargeContainer","contentWrapperProps","touchableRole","iosTouchableRole","Appbar","isV3CenterAlignedMode","shouldAddLeftSpacing","shouldAddRightSpacing","hasAppbarContent","leftItemsCount","rightItemsCount","filterAppbarActions","isLeading","appbar","columnContainer","centerAlignedContainer","controlsRow","rightActionControls","AppbarAction","actionIconColor","AppbarBackIcon","iosIconSize","AppbarBackAction","AppbarHeader","borders","getAppbarBorders","AppbarComponent","Action","BackAction","Header","RadioButtonContext","RadioButtonGroup","isChecked","contextValue","RadioButtonAndroid","borderAnim","radioAnim","radio","radioContainer","RadioButtonIOS","RadioButton","RadioButtonItem","radioButton","labelVariant","radioButtonProps","disabledTextColor","RadioButtonComponent","Android","IOS","actionsLength","DialogIcon","DialogScrollArea","DialogTitle","TextComponent","headerTextStyle","v3Text","backgroundColorV2","ScrollArea","DataTableCell","numeric","CellContent","DataTableHeader","PaginationControls","page","numberOfPages","onPageChange","showFastPaginationControls","paginationControlRippleColor","PaginationDropdown","numberOfItemsPerPageList","numberOfItemsPerPage","onItemsPerPageChange","selectPageDropdownRippleColor","dropdownItemRippleColor","showSelect","toggleSelect","DataTablePagination","selectPageDropdownLabel","selectPageDropdownAccessibilityLabel","optionsContainer","iconsContainer","DataTableRow","DataTableTitle","sortDirection","spinAnim","alphaTextColor","spin","cell","leftText","rightText","centerText","DataTable","Cell","Pagination","CheckboxAndroid","scaleAnim","fillContainer","CheckboxIOS","Checkbox","CheckboxItem","checkbox","checkboxProps","CheckboxComponent","renderLogo","logo","logoSize","logoBackgroundColor","logoMargin","logoBorderRadius","logoPosition","logoBackgroundSize","logoBackgroundBorderRadius","Defs","ClipPath","Rect","rx","ry","preserveAspectRatio","QRCode","_ref2$value","_ref2$size","_ref2$color","_ref2$backgroundColor","_ref2$logoSize","_ref2$logoBackgroundC","_ref2$logoMargin","_ref2$logoBorderRadiu","_ref2$quietZone","quietZone","_ref2$enableLinearGra","enableLinearGradient","_ref2$gradientDirecti","gradientDirection","_ref2$linearGradient","linearGradient","_ref2$ecl","ecl","getRef","matrix","cellSize","needDraw","transformMatrixIntoPath","genMatrix","Svg","LinearGradient","Stop","stopColor","Path","strokeLinecap","checkboxColor","checkboxLabelStyle","checkboxUncheckedColor","inputRef","arrayList","selectedArrayList","multiEnable","errorText","onSelection","selectAllEnable","selectAllText","dialogStyle","dialogTitle","dialogTitleStyle","searchStyle","errorStyle","textInputMode","textInputBackgroundColor","textInputColor","textInputHeight","textInputStyle","dialogButtonLabelStyle","hideSearchBox","searchPlaceholder","modalCloseButtonText","modalDoneButtonText","searchKey","setSearchKey","arrayHolder","setArrayHolder","setList","selectedList","setSelectedList","selfInputRef","selectInputRef","_exists","showSoftInputOnFocus","newData","_filterFunction","selectedData","_checkAll","_isCheckedAll","persistentScrollbar","indexSelected","_onChecked","_onCheckedSingle","finalText","HelperText","shown","isOutlined","selectedColor","isSelectedColor","getDefaultBackgroundColor","selectedBackgroundColor","getChipColors","showSelectedOverlay","baseChipColorProps","getSelectedBackgroundColor","md3OutlineContainer","md3FlatContainer","md3Content","md3CloseIcon","avatar","avatarWrapper","md3AvatarWrapper","md3SelectedIcon","avatarSelected","closeButtonStyle","closeIconAccessibilityLabel","onClose","defaultBorderRadius","elevationStyle","multiplier","labelSpacings","contentSpacings","getThumbTintColor","getOnTintColor","PlatformConstants","getCheckedColor","onTintColor","thumbTintColor","getSwitchColor","NativeSwitch","getTooltipXPosition","childrenX","childrenWidth","tooltipWidth","overflowLeft","overflowRight","getTooltipYPosition","childrenY","childrenHeight","tooltipHeight","overflowBottom","getTooltipPosition","measures","getChildrenMeasures","Tooltip","enterTouchDelay","leaveTouchDelay","measurement","setMeasurement","showTooltipTimer","hideTooltipTimer","childrenWrapperRef","touched","handleTouchStart","handleTouchEnd","mobilePressProps","webPressProps","pressContainer","useTransitionProgress","TransitionProgressContext","_createTheming","TurboModuleRegistry","_config$deceleration","_deceleration","_velocity","createStyleq","disableCache","disableMix","definedProperties","nextCache","possibleStyle","classNameChunk","cacheEntry","definedPropertiesChunk","weakMap","subStyle","_prop","_isObject2","combinedValue","processedValue","_prefixValue2","_addNewValuesOnly2","_processedValue","_prefixProperty2","_interopRequireDefault","_cssInJsUtils","CROSS_FADE_REGEX","grab","grabbing","FILTER_REGEX","_isPrefixedValue2","_isPrefixedValue","alternativeProps","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","pLen","prefixMapping","prefixValue","webkitOutput","mozOutput","_capitalizeString2","WebkitTransitionProperty","MozTransitionProperty","Webkit","Moz","ReactNoopUpdateQueue","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","performance","scrollSpeed","blankTop","firstFrame","blankBottom","bottomEdge","blankness","sampleRate","minSampleCount","semver","patchIndex","tryParse","validate","compareVersions","v1","v2","s1","s2","sp1","sp2","allowedOperators","operatorResMap","validateOperator","_customSourceTransformer","_serverURL","_sourceCodeScriptURL","getDevServerURL","sourceCodeScriptURL","sourceCode","nativeExtensions","SourceCode","scriptURL","getSourceCodeScriptURL","setCustomSourceTransformer","transformer","resolveAssetSource","resolver","defaultAsset","F","N","J","K","vendor","O","race","readyState","atob","fromCharCode","MD3TypescaleKey","estimatedStatusBarHeight","NativeUnimoduleProxy","modulesConstants","ExponentConstants","Version","_NativeReanimated","_valueSetter","_renderRequested","_mapperRegistry","MapperRegistry","timeProvider","ReanimatedDataMock","maybeRequestRender","_timestampMs","_onRender","timestampMs","execute","needRunOnRender","Mapper","__","sortedMappers","mappers","updatedSinceLastExecute","_module","updateOrder","dirty","mappersById","nodesLen","restNode","outi","outputsLen","resti","restLen","post","postCounter","dfs","postArray","MAPPER_ID","extractMutablesFromArray","markDirty","extractMutables","nextCallbackId","prepareUIRegistry","_frameCallbackRegistry","activeFrameCallbacks","previousFrameTimestamp","runCallbacks","callbackDetails","timeSincePreviousFrame","timeSinceFirstFrame","DrawerPositionContext","isRight","DrawerItemList","buildLink","useLinkBuilder","focusedOptions","drawerActiveTintColor","drawerInactiveTintColor","drawerActiveBackgroundColor","drawerInactiveBackgroundColor","drawerLabel","drawerIcon","drawerLabelStyle","drawerItemStyle","drawerAllowFontScaling","LinkPressable","activeBackgroundColor","inactiveBackgroundColor","iconNode","getStateFromParams","useLinkProps","linkTo","useLinkTo","getPathFromStateHelper","shouldHandle","linking","createMultiStyleIconSet","optionsInput","styleNames","defaultStyle","fallbackFamily","_unused","glyphValidator","__unused","iconSets","styleFromProps","getIconSetForProps","selectIconClass","iconSet","iconClass","reduceProps","getStyledIconSet","createStyledIconClass","selectClass","IconClass","SelectedIconClass","StyledIconSet","MaterialTopTabView","sceneContainerStyle","lazyPlaceholder","lazyPreloadDistance","swipeEnabled","animationEnabled","TabBarTop","tabBarActiveTintColor","tabBarInactiveTintColor","tabBarScrollEnabled","tabBarBounces","tabBarPressColor","tabBarPressOpacity","tabBarItemStyle","tabBarIndicatorStyle","tabBarGap","tabBarAndroidRipple","tabBarIndicatorContainerStyle","tabBarContentContainerStyle","tabBarStyle","tabBarAccessibilityLabel","tabBarTestID","tabBarShowIcon","tabBarIcon","tabBarIconStyle","tabBarShowLabel","tabBarLabel","tabBarLabelStyle","tabBarAllowFontScaling","tabBarBadge","tabBarIndicator","DrawerContent","drawerContentStyle","drawerContentContainerStyle","getDrawerStatusFromState","HeaderTitle","HeaderBackground","DrawerToggleButton","Background","DrawerStatusContext","useBackButton","useDocumentTitle","equal","ServerContext","useThenable","resolved","_extends2","_objectWithoutProperties2","_react","_reactNative","_RNCSliderNativeComponent","SliderWithRef","_props$accessibilityS","slider","onSlidingStart","onSlidingComplete","localProps","onValueChangeEvent","_disabled","_accessibilityState","onChangeEvent","onSlidingStartEvent","onSlidingCompleteEvent","onAccessibilityActionEvent","thumbImage","onRNCSliderSlidingStart","onRNCSliderSlidingComplete","onRNCSliderValueChange","onRNCSliderAccessibilityAction","__self","__source","minimumValue","maximumValue","tapToSeek","_default","AntDesign","canPromise","CanvasRenderer","SvgRenderer","renderCanvas","renderFunc","canvas","argsNum","isLastArgCb","getContext","toCanvas","toDataURL","renderToDataURL","registerRootComponent","runApplication","Screens","MaybeScreenContainer","screensEnabled","MaybeScreen","getDefaultDrawerWidth","smallerAxisSize","isTablet","appBarHeight","GestureHandlerWrapper","DrawerViewBase","drawerContent","detachInactiveScreens","useLegacyImplementation","legacyImplemenationNotAvailable","Drawer","focusedRouteKey","drawerHideStatusBarOnOpen","drawerStatusBarAnimation","drawerStyle","swipeEdgeWidth","swipeMinDistance","drawerStatus","handleDrawerOpen","handleDrawerClose","handleEscape","_document","_document2","addCancelListener","unmountOnBlur","freezeOnBlur","getHeaderTitle","headerLeft","headerShown","headerStatusBarHeight","headerTransparent","DrawerView","readCookie","cleanValue","cleanupCookieValue","doNotParse","isParsingCookie","__assign","Cookies","cookies","changeListeners","HAS_DOCUMENT_COOKIE","cookie","parseCookies","_updateBrowserValues","parseOptions","_emitChange","getAll","name_1","finalOptions","extractAnimatedParentNodes","createOrReuseTransformNode","oldNode","inputTransform","outputTransform","hasAnimatedTransform","nodeID","sanitizeTransform","_transform","createOrReuseStyleNode","sanitizeStyle","sanitizeProps","_disconnectAnimatedView","_connectAnimatedView","ANDROID_SUPPORTS_RIPPLE","PlatformPressable","TabBarItemLabel","MemoizedTabBarItemInternal","inactiveColorCustom","activeColorCustom","routesLength","renderLabelCustom","labelColorFromStyle","getActiveOpacity","getInactiveOpacity","activeIcon","inactiveIcon","activeLabel","inactiveLabel","tabContainerStyle","TabBarItem","onPressLatest","onLongPressLatest","onLayoutLatest","scene","getDisabledColor","getTitleColor","leadingIcon","trailingIcon","getMenuItemColor","containerPadding","iconWidth","MAX_WIDTH","getContentMaxWidth","titleTextStyle","md3DenseContainer","md3LeadingIcon","md3WithoutLeadingIcon","createMemoryHistory","pending","interrupt","backIndex","pushState","pathWithHash","go","lastItemIndex","interrupted","onPopState","series","useLinking","getStateFromPathDefault","getPathFromStateDefault","getActionFromStateDefault","enabledRef","configRef","getStateFromPathRef","getPathFromStateRef","getActionFromStateRef","server","thenable","onfulfilled","previousIndexRef","previousStateRef","pendingPopStatePathRef","previousIndex","record","rootState","getPathForRoute","stateForPath","isEqual","pendingPath","findMatchingState","aHistoryLength","bHistoryLength","aRoute","bRoute","aChildState","bChildState","previousFocusedState","focusedState","historyDelta","animateTo","initialWindowSafeAreaInsets","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","isPureReactComponent","_owner","R","S","_status","U","V","ReactCurrentBatchConfig","Profiler","StrictMode","Suspense","_currentValue","_currentValue2","_threadCount","_defaultValue","_globalName","_context","createFactory","_payload","_init","startTransition","unstable_act","useDeferredValue","useId","useInsertionEffect","useReducer","useTransition","aa","ba","da","ea","fa","ha","ia","ja","ka","la","ma","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","qa","ra","sa","oa","pa","na","removeAttribute","setAttributeNS","xlinkHref","ta","ua","va","wa","xa","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","prepareStackTrace","Oa","Qa","Pa","Ra","Sa","Ua","_valueTracker","Ta","Va","Wa","Xa","defaultChecked","_wrapperState","initialChecked","Ya","controlled","Za","$a","bb","db","eb","defaultSelected","fb","gb","hb","ib","jb","kb","MSApp","execUnsafeLocalFunction","namespaceURI","innerHTML","nb","ob","gridArea","gridRowSpan","gridColumnSpan","qb","rb","sb","menuitem","area","br","embed","img","keygen","wbr","tb","ub","vb","wb","srcElement","correspondingUseElement","xb","yb","zb","Ab","Bb","Cb","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","Rb","Sb","Ub","alternate","return","Vb","memoizedState","dehydrated","Wb","Yb","sibling","Xb","Zb","$b","unstable_scheduleCallback","ac","unstable_cancelCallback","bc","unstable_shouldYield","cc","unstable_requestPaint","unstable_now","dc","unstable_getCurrentPriorityLevel","ec","unstable_ImmediatePriority","fc","unstable_UserBlockingPriority","gc","unstable_NormalPriority","hc","unstable_LowPriority","ic","unstable_IdlePriority","jc","kc","nc","clz32","oc","pc","LN2","qc","rc","tc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","uc","wc","xc","yc","zc","eventTimes","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","blockedOn","domEventName","eventSystemFlags","targetContainers","Uc","Vc","isDehydrated","containerInfo","Wc","Xc","Yc","Zc","$c","ad","bd","cd","fd","hd","Tc","jd","kd","ld","nd","charCode","od","pd","qd","_reactName","_targetInst","isPersistent","vd","wd","xd","rd","td","ud","zd","screenX","getModifierState","yd","fromElement","toElement","movementX","movementY","Ad","Cd","dataTransfer","Ed","Gd","elapsedTime","pseudoElement","Id","clipboardData","Kd","Ld","Esc","Spacebar","Up","Down","Del","Win","Apps","Scroll","MozPrintableKey","Md","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","Nd","Alt","Control","Meta","Shift","Od","Qd","Sd","pressure","tangentialPressure","tiltX","tiltY","twist","isPrimary","Ud","Wd","Yd","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","documentMode","be","ce","ee","fe","ge","ke","datetime","email","tel","le","ne","oe","qe","re","se","te","ue","ve","we","xe","ye","oninput","ze","Ae","Be","Ce","De","Ee","Ge","He","Ie","Je","nextSibling","Le","HTMLIFrameElement","contentWindow","Me","contentEditable","Ne","focusedElem","selectionRange","Ke","compareDocumentPosition","rangeCount","anchorOffset","focusOffset","setStart","setEnd","Oe","Pe","Qe","Re","Se","Te","Ue","Ve","animationend","animationiteration","animationstart","transitionend","We","Xe","Ye","Ze","$e","af","bf","cf","df","ef","ff","gf","kf","lf","mf","Tb","nf","pf","qf","rf","sf","tf","uf","vf","Z","ya","ab","ca","ie","je","wf","xf","yf","zf","Af","Bf","Cf","Df","Ef","Ff","Gf","If","queueMicrotask","Hf","Jf","Kf","Lf","previousSibling","Mf","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","Vf","Wf","Xf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Yf","Zf","$f","ag","getChildContext","__reactInternalMemoizedMergedChildContext","cg","dg","eg","fg","ig","jg","kg","ng","og","pg","qg","rg","childLanes","sg","firstContext","lanes","tg","ug","memoizedValue","vg","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","interleaved","yg","zg","eventTime","lane","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Hg","Ig","Mg","_reactInternals","Jg","Kg","Lg","Ng","Og","Pg","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Qg","getSnapshotBeforeUpdate","componentWillMount","Rg","Sg","Tg","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","eh","fh","gh","deletions","ih","pendingProps","treeContext","retryLane","jh","kh","lh","memoizedProps","nh","oh","_stringRef","qh","rh","uh","vh","implementation","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","revealOrder","Lh","_workInProgressVersionPrimary","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","baseQueue","ai","bi","lastRenderedReducer","hasEagerState","eagerState","lastRenderedState","ei","fi","gi","ji","ki","lastEffect","li","mi","ni","oi","pi","qi","ri","si","ti","ui","wi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","readContext","unstable_isNewReconciler","identifierPrefix","Hi","Ii","Ti","Vi","Wi","Ji","Ki","Li","Mi","Ni","componentDidCatch","Oi","componentStack","Pi","pingCache","Qi","Ri","Si","Xi","tailMode","subtreeFlags","Yi","pendingContext","Zi","wasMultiple","onclick","createElementNS","$i","rendering","aj","renderingStartTime","isBackwards","bj","cj","dj","ej","fj","gj","hj","ij","jj","kj","lj","baseLanes","cachePool","mj","nj","oj","UNSAFE_componentWillUpdate","componentWillUpdate","pj","qj","rj","sj","tj","uj","vj","wj","xj","yj","zj","_reactRetry","Aj","Bj","Cj","Dj","Ej","Gj","Hj","Ij","WeakSet","Jj","Kj","Lj","Nj","Oj","Pj","Qj","Rj","Sj","Vj","Wj","Xj","onCommitFiberUnmount","Yj","Zj","ak","bk","ck","dk","ek","Uj","Tj","_reactRootContainer","fk","hk","ik","__reactInternalSnapshotBeforeUpdate","Uk","jk","lk","mk","X","Y","nk","ok","pk","qk","rk","sk","tk","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","callbackNode","expirationTimes","expiredLanes","vc","callbackPriority","hg","Dk","Ek","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","finishedWork","finishedLanes","Ok","Pk","Qk","Rk","Sk","Tk","mutableReadLanes","Ac","Mj","onCommitFiberRoot","lc","onRecoverableError","Vk","onPostCommitFiberRoot","Wk","Xk","Zk","pendingChildren","$k","mutableSourceEagerHydrationData","al","pendingSuspenseBoundaries","cl","fl","hl","Fj","Yk","jl","reportError","kl","_internalRoot","ol","ql","unstable_scheduleHydration","rl","usingClientEntryPoint","findFiberByHostInstance","bundleType","rendererPackageName","tl","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","ul","supportsFiber","inject","createRoot","unstable_strictMode","flushSync","hydrateRoot","hydratedSources","_getVersion","_source","unstable_renderSubtreeIntoContainer","sortIndex","expirationTime","priorityLevel","scheduling","isInputPending","MessageChannel","port2","port1","onmessage","postMessage","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","unstable_wrapCallback","registerImmediate","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","messagePrefix","onGlobalMessage","installPostMessageImplementation","installMessageChannelImplementation","html","onreadystatechange","installReadyStateChangeImplementation","isArrayish","conversions","fromModel","toModel","wrappedFn","conversion","wrapRounded","wrapRaw","deriveBFS","models","buildGraph","adjacents","adjacent","wrapConversion","cur","_createThemeProvider","_createWithTheme","_deepmerge","newObj","_interopRequireWildcard","_class","_hoistNonReactStatics","ThemedComponent","_reactThemeProviderForwardedRef","_merge","ResultComponent","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Lazy","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","compiledStyleIndex","_cachedStyles","_compiledStyle","compileStyle","cachedStyles","prefixProperties","requiredPrefixes","capitalizedProperty","prefixedProperty","_capitalizeString","metaData","addIfNew","_hyphenateStyleName2","_hyphenateStyleName","_assign","_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","propIsEnumerable","test1","test2","test3","letter","shouldUseNative","symbols","makeEmptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","thatReturnsArgument","jsx","jsxs","ExpoModulesCore_CodedError","undef","react_1","stackClear","stackDelete","stackGet","stackHas","stackSet","hashClear","hashDelete","hashGet","hashHas","hashSet","setCacheAdd","setCacheHas","objStacked","stubArray","overArg","PressabilityDebugView","singleMatcher","multiMatcher","decodeComponents","encodedURI","replaceMap","customDecodeURIComponent","separatorIndex","arg0","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","encodingOrOffset","allocUnsafe","fromArrayLike","fromArrayBuffer","encoding","isEncoding","actual","write","copy","fromObject","assertSize","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","arrayIndexOf","indexSize","valLength","read","buf","readUInt16BE","foundIndex","found","hexWrite","strLen","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","lo","utf16leToBytes","fromByteArray","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","foo","subarray","typedArraySupport","_augment","species","allocUnsafeSlow","_isBuffer","swap16","swap32","swap64","equals","thisStart","thisEnd","thisCopy","targetCopy","_arr","toHex","bytes","checkOffset","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","leadSurrogate","toByteArray","stringtrim","base64clean","dst","b64","lens","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","len2","encodeChunk","lookup","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","ENABLE_SCREENS","enableScreens","shouldEnableScreens","enableFreeze","NativeScreen","activityState","InnerScreen","ScreenContext","ScreenContainer","NativeScreenContainer","NativeScreenNavigationContainer","ScreenStack","FullWindowOverlay","ScreenStackHeaderBackButtonImage","fadeDuration","ScreenStackHeaderRightView","ScreenStackHeaderLeftView","ScreenStackHeaderCenterView","ScreenStackHeaderSearchBarView","ScreenStackHeaderConfig","SearchBar","ScreenStackHeaderSubview","shouldUseActivityState","_toConsumableArray2","_slicedToArray2","_reactDom","nodeInterop","_getRequireWildcardCache","hasPropertyDescriptor","_jsxFileName","cacheBabelInterop","cacheNodeInterop","RCTSliderWebComponent","_ref$minimumValue","_ref$maximumValue","_ref$step","_ref$minimumTrackTint","minimumTrackTintColor","_ref$maximumTrackTint","maximumTrackTintColor","_ref$thumbTintColor","_ref$thumbStyle","_ref$inverted","_ref$enabled","_ref$trackHeight","trackHeight","_ref$thumbSize","thumbSize","_ref$onRNCSliderSlidi","_ref$onRNCSliderSlidi2","_ref$onRNCSliderValue","fromUser","containerSize","containerPositionX","containerRef","hasBeenResized","percentageValue","minPercent","maxPercent","onResize","minimumTrackStyle","maximumTrackStyle","thumbViewStyle","decimalPrecision","calculatePrecision","updateContainerPositionX","_ReactDOM$findDOMNode","_ReactDOM$findDOMNode2","positionX","hardRounded","withinBounds","getValueFromNativeEvent","_containerSize$curren","containerX","tenth","actionName","updateValue","accessibleValue","handleAccessibilityKeys","decimals","updateClipboardData","ReactPropTypesSecret","emptyFunctionWithReset","resetWarningCache","shim","propFullName","secret","getShim","ReactPropTypes","bigint","any","instanceOf","objectOf","shape","checkPropTypes","cE","ucE","hasTouchableProperty","clean","remeasure","WebShape","Circle","Ellipse","Line","Polygon","Polyline","RadialGradient","TSpan","TextPath","Use","Mask","ForeignObject","Marker","Pattern","PRESS_RETENTION_OFFSET","SvgTouchableMixin","touchKeys","touchVals","numTouchKeys","cleanedProps","Utils","BitBuffer","BitMatrix","AlignmentPattern","FinderPattern","MaskPattern","ECCode","ReedSolomonEncoder","FormatInfo","Mode","Segments","setupFormatInfo","maskPattern","bits","getEncodedBits","createData","segments","put","getLength","dataTotalCodewordsBits","getLengthInBits","putBit","remainingByte","bitBuffer","totalCodewords","ecTotalCodewords","dataTotalCodewords","ecTotalBlocks","blocksInGroup1","totalCodewordsInGroup1","dataCodewordsInGroup1","dataCodewordsInGroup2","ecCount","rs","dcData","ecData","maxDataSize","dataSize","createCodewords","createSymbol","fromArray","estimatedVersion","rawSegments","rawSplit","getBestVersionForData","bestVersion","dataBits","moduleCount","getPositions","setupFinderPattern","setupTimingPattern","setupAlignmentPattern","setupVersionInfo","inc","bitIndex","byteIndex","isReserved","setupData","getBestMask","applyMask","toSJISFunc","bufIndex","reservedBit","reserved","xor","getRowColCoords","posCount","intervals","coords","posLength","Patterns","PATTERN000","PATTERN001","PATTERN010","PATTERN011","PATTERN100","PATTERN101","PATTERN110","PATTERN111","PenaltyScores","getMaskAt","getPenaltyN1","points","sameCountCol","sameCountRow","lastCol","lastRow","getPenaltyN2","getPenaltyN3","bitsCol","bitsRow","getPenaltyN4","darkCount","modulesCount","setupFormatFunc","numPatterns","bestPattern","lowerPenalty","penalty","Polynomial","genPoly","generateECPolynomial","paddedData","remainder","buff","GF","coeff","divident","EXP_TABLE","LOG_TABLE","G18_BCH","getReservedBitsCount","getTotalBitsFromDataArray","totalBits","reservedBits","getBitsLength","getCapacity","usableBits","seg","getBestVersionForMixedData","getBestVersionForDataLength","G15_BCH","NumericData","AlphanumericData","ByteData","KanjiData","dijkstra","getStringByteLength","getSegments","getSegmentsFromString","numSegs","alphaNumSegs","byteSegs","kanjiSegs","getSegmentBitsLength","buildSingleSegment","modesHint","bestMode","table","prevNodeIds","nodeGroup","currentNodeIds","lastCount","prevNodeId","segs","buildNodes","find_path","optimizedSegs","prevSeg","mergeSegments","remainingNum","ALPHA_NUM_CHARS","encodeUtf8","point","single_source_shortest_paths","predecessors","costs","closest","cost_of_s_to_u","adjacent_nodes","cost_of_s_to_u_plus_cost_of_e","cost_of_s_to_v","PriorityQueue","cost","extract_shortest_path_from_predecessor_list","sorter","default_sorter","qrData","canvasEl","getCanvasElement","ctx","createImageData","clearRect","clearCanvas","putImageData","getColorAttrib","attrib","svgCmd","cmd","qrcodesize","moveBy","newRow","lineLength","qrToPath","svgTag","interpolateDeprecated","Overlay","overlayStyle","WebkitTapHighlightColor","SPRING_CONFIG","ANIMATED_ZERO","ANIMATED_ONE","handleEndInteraction","handleStartInteraction","getDrawerWidth","DEFAULT_DRAWER_WIDTH","percentage","isDrawerTypeFront","isOpen","nextIsOpen","isSwiping","initialDrawerWidth","gestureX","drawerOpacity","touchDistanceFromDrawer","swipeDistanceThreshold","swipeVelocityThreshold","currentOpenValue","isStatusBarHidden","manuallyTriggerSpring","onOpen","pendingOpenValue","toggleStatusBar","handleGestureEvent","handleGestureStateChange","handleDrawerLayout","hideStatusBarOnOpen","renderDrawerContent","renderSceneContent","contentTranslateX","nonPermanent","minmax","getDrawerTranslationX","DrawerProgressContext","interactionHandleRef","onGestureFinish","touchStartX","isUserInitiated","SWIPE_DISTANCE_MINIMUM","hasCalledOnStart","nextOpen","touchDistance","drawerAnimatedStyle","distanceFromEdge","contentAnimatedStyle","getRootStateForNavigate","Link","setIsLoading","unsubscribe","TabView","initialLayout","onSwipeEnd","renderLazyPlaceholder","renderTabBar","pagerStyle","tabBarPosition","overScrollMode","prevLayout","pager","sceneRendererProps","restWithDeprecated","tabBarOptions","showLabel","warnOnce","deprecatedProps","propValue","DefaultTransitionSpec","PanResponderAdapter","panX","listenersRef","navigationStateRef","layoutRef","onIndexChangeRef","pendingIndexRef","jumpToIndex","transitionConfig","canMoveScreen","diffX","isMovingHorizontally","finishGesture","maxTranslate","edgeBitmaskMap","edges","edgeBitmask","accum","edge","appliedStyle","insetTop","insetRight","insetBottom","insetLeft","customDefaultStatus","openByDefault","drawerContentOptions","ResourceSavingScene","detached","isParentHeaderShown","customTitle","headerTitle","headerTitleAlign","headerLeftLabelVisible","headerTintColor","headerBackground","headerRight","titleAllowFontScaling","headerTitleAllowFontScaling","headerTitleStyle","leftContainerStyle","headerLeftContainerStyle","rightContainerStyle","headerRightContainerStyle","headerTitleContainerStyle","backgroundContainerStyle","headerBackgroundContainerStyle","customHeaderStyle","headerStyle","headerShadowVisible","headerPressColor","headerPressOpacity","defaultHeight","unsafeStyles","safeStyles","backgroundStyle","leftButton","labelVisible","rightButton","parentHeaderHeight","setHeaderHeight","REACT_NAVIGATION_DEVTOOLS","NavigationContainer","documentTitle","onReady","isLinkingEnabled","refContainer","isResolved","linkingContext","onReadyRef","Headline","Paragraph","Subheading","charMap","AxiosURLSearchParams","_pairs","toFormData","encoder","_encode","buildURL","serializeFn","serializedParams","hashmarkIndex","synchronous","runWhen","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","URLSearchParams","protocols","hasBrowserEnv","hasStandardBrowserEnv","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","buildPath","isNumericKey","arrayToObject","parsePropPath","transitional","transformRequest","headers","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","platform","toURLEncodedForm","formSerializer","_FormData","rawValue","stringifySafely","transformResponse","JSONRequested","responseType","strictJSONParsing","ERR_BAD_RESPONSE","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","ignoreDuplicateOf","$internals","normalizeHeader","normalizeValue","matchHeaderValue","isHeaderNameFilter","valueOrRewrite","rewrite","setHeader","_header","_rewrite","lHeader","setHeaders","rawHeaders","parseHeaders","tokensRE","parseTokens","deleted","deleteHeader","normalized","formatHeader","targets","asStrings","computed","accessors","defineAccessor","accessorName","arg1","arg2","arg3","buildAccessors","accessor","mapped","headerValue","transformData","fns","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","toGMTString","buildFullPath","baseURL","requestedURL","relativeURL","combineURLs","msie","urlParsingNode","originURL","resolveURL","requestURL","samplesCount","timestamps","firstSampleTS","chunkLength","startedAt","bytesCount","passed","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","lengthComputable","progressBytes","rate","estimated","XMLHttpRequest","requestData","requestHeaders","onCanceled","withXSRFToken","cancelToken","btoa","fullPath","onloadend","responseHeaders","getAllResponseHeaders","ERR_BAD_REQUEST","settle","responseText","statusText","paramsSerializer","responseURL","onabort","ECONNABORTED","ERR_NETWORK","ontimeout","timeoutErrorMessage","ETIMEDOUT","xsrfValue","setRequestHeader","withCredentials","onDownloadProgress","onUploadProgress","upload","aborted","parseProtocol","send","knownAdapters","http","xhr","renderReason","reason","isResolvedHandle","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","throwIfRequested","dispatchRequest","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","timeoutMessage","decompress","beforeRedirect","transport","httpAgent","httpsAgent","socketPath","responseEncoding","configValue","validators","deprecatedWarnings","formatMessage","ERR_DEPRECATED","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","instanceConfig","interceptors","configOrUrl","_request","dummy","boolean","function","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","chain","onFulfilled","onRejected","generateHTTPMethod","isForm","executor","resolvePromise","_resolve","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","axios","defaultConfig","Axios","CancelToken","Cancel","promises","isAxiosError","AxiosHeaders","formToJSON","getAdapter","assetMapOverride","resolveUri","baseUrl","getFilename","getFileExtension","filename","dotIndex","downloading","downloaded","_downloadCallbacks","moduleId","moduleIds","virtualAssetModule","fromURI","byHash","fromMetadata","metaHash","fileHashes","fileUris","assetUrlOverride","fileScale","fileExtension","manifest2","extra","expoGo","developer","debuggerHost","bundleUrl","selectAssetSource","byUri","extension","Regular","Light","Solid","Brand","solid","brand","pro","metadataKeys","createFontAwesomeStyle","brandIcons","lightIcons","regularIcons","solidIcons","createFA5iconSet"],"mappings":"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","file":"static/js/2.4cfc33a2.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","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\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 return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import react from 'react';\nimport reactDom from 'react-dom';\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 * @oncall recoil\n */\n\nfunction err(message) {\n const error = new Error(message); // In V8, Error objects keep the closure scope chain alive until the\n // err.stack property is accessed.\n\n if (error.stack === undefined) {\n // IE sets the stack only if error is thrown\n try {\n throw error;\n } catch (_) {} // eslint-disable-line fb-www/no-unused-catch-bindings, no-empty\n\n }\n\n return error;\n}\n\nvar err_1 = err;\n\n// @oss-only\n\n\nvar Recoil_err = err_1;\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 * @oncall recoil\n */\n\n// Split declaration and implementation to allow this function to pretend to\n// check for actual instance of Promise instead of something with a `then`\n// method.\n// eslint-disable-next-line no-redeclare\nfunction isPromise(p) {\n return !!p && typeof p.then === 'function';\n}\n\nvar Recoil_isPromise = isPromise;\n\nfunction nullthrows(x, message) {\n if (x != null) {\n return x;\n }\n\n throw Recoil_err(message !== null && message !== void 0 ? message : 'Got unexpected null or undefined');\n}\n\nvar Recoil_nullthrows = nullthrows;\n\nfunction _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\nclass BaseLoadable {\n getValue() {\n throw Recoil_err('BaseLoadable');\n }\n\n toPromise() {\n throw Recoil_err('BaseLoadable');\n }\n\n valueMaybe() {\n throw Recoil_err('BaseLoadable');\n }\n\n valueOrThrow() {\n // $FlowFixMe[prop-missing]\n throw Recoil_err(`Loadable expected value, but in \"${this.state}\" state`);\n }\n\n promiseMaybe() {\n throw Recoil_err('BaseLoadable');\n }\n\n promiseOrThrow() {\n // $FlowFixMe[prop-missing]\n throw Recoil_err(`Loadable expected promise, but in \"${this.state}\" state`);\n }\n\n errorMaybe() {\n throw Recoil_err('BaseLoadable');\n }\n\n errorOrThrow() {\n // $FlowFixMe[prop-missing]\n throw Recoil_err(`Loadable expected error, but in \"${this.state}\" state`);\n }\n\n is(other) {\n // $FlowFixMe[prop-missing]\n return other.state === this.state && other.contents === this.contents;\n }\n\n map(_map) {\n throw Recoil_err('BaseLoadable');\n }\n\n}\n\nclass ValueLoadable extends BaseLoadable {\n constructor(value) {\n super();\n\n _defineProperty(this, \"state\", 'hasValue');\n\n _defineProperty(this, \"contents\", void 0);\n\n this.contents = value;\n }\n\n getValue() {\n return this.contents;\n }\n\n toPromise() {\n return Promise.resolve(this.contents);\n }\n\n valueMaybe() {\n return this.contents;\n }\n\n valueOrThrow() {\n return this.contents;\n }\n\n promiseMaybe() {\n return undefined;\n }\n\n errorMaybe() {\n return undefined;\n }\n\n map(map) {\n try {\n const next = map(this.contents);\n return Recoil_isPromise(next) ? loadableWithPromise(next) : isLoadable(next) ? next : loadableWithValue(next);\n } catch (e) {\n return Recoil_isPromise(e) ? // If we \"suspended\", then try again.\n // errors and subsequent retries will be handled in 'loading' case\n // $FlowFixMe[prop-missing]\n loadableWithPromise(e.next(() => this.map(map))) : loadableWithError(e);\n }\n }\n\n}\n\nclass ErrorLoadable extends BaseLoadable {\n constructor(error) {\n super();\n\n _defineProperty(this, \"state\", 'hasError');\n\n _defineProperty(this, \"contents\", void 0);\n\n this.contents = error;\n }\n\n getValue() {\n throw this.contents;\n }\n\n toPromise() {\n return Promise.reject(this.contents);\n }\n\n valueMaybe() {\n return undefined;\n }\n\n promiseMaybe() {\n return undefined;\n }\n\n errorMaybe() {\n return this.contents;\n }\n\n errorOrThrow() {\n return this.contents;\n }\n\n map(_map) {\n // $FlowIssue[incompatible-return]\n return this;\n }\n\n}\n\nclass LoadingLoadable extends BaseLoadable {\n constructor(promise) {\n super();\n\n _defineProperty(this, \"state\", 'loading');\n\n _defineProperty(this, \"contents\", void 0);\n\n this.contents = promise;\n }\n\n getValue() {\n throw this.contents;\n }\n\n toPromise() {\n return this.contents;\n }\n\n valueMaybe() {\n return undefined;\n }\n\n promiseMaybe() {\n return this.contents;\n }\n\n promiseOrThrow() {\n return this.contents;\n }\n\n errorMaybe() {\n return undefined;\n }\n\n map(map) {\n return loadableWithPromise(this.contents.then(value => {\n const next = map(value);\n\n if (isLoadable(next)) {\n const nextLoadable = next;\n\n switch (nextLoadable.state) {\n case 'hasValue':\n return nextLoadable.contents;\n\n case 'hasError':\n throw nextLoadable.contents;\n\n case 'loading':\n return nextLoadable.contents;\n }\n } // $FlowIssue[incompatible-return]\n\n\n return next;\n }) // $FlowFixMe[incompatible-call]\n .catch(e => {\n if (Recoil_isPromise(e)) {\n // we were \"suspended,\" try again\n return e.then(() => this.map(map).contents);\n }\n\n throw e;\n }));\n }\n\n}\n\nfunction loadableWithValue(value) {\n return Object.freeze(new ValueLoadable(value));\n}\n\nfunction loadableWithError(error) {\n return Object.freeze(new ErrorLoadable(error));\n}\n\nfunction loadableWithPromise(promise) {\n return Object.freeze(new LoadingLoadable(promise));\n}\n\nfunction loadableLoading() {\n return Object.freeze(new LoadingLoadable(new Promise(() => {})));\n}\n\nfunction loadableAllArray(inputs) {\n return inputs.every(i => i.state === 'hasValue') ? loadableWithValue(inputs.map(i => i.contents)) : inputs.some(i => i.state === 'hasError') ? loadableWithError(Recoil_nullthrows(inputs.find(i => i.state === 'hasError'), 'Invalid loadable passed to loadableAll').contents) : loadableWithPromise(Promise.all(inputs.map(i => i.contents)));\n}\n\nfunction loadableAll(inputs) {\n const unwrapedInputs = Array.isArray(inputs) ? inputs : Object.getOwnPropertyNames(inputs).map(key => inputs[key]);\n const normalizedInputs = unwrapedInputs.map(x => isLoadable(x) ? x : Recoil_isPromise(x) ? loadableWithPromise(x) : loadableWithValue(x));\n const output = loadableAllArray(normalizedInputs);\n return Array.isArray(inputs) ? // $FlowIssue[incompatible-return]\n output : // Object.getOwnPropertyNames() has consistent key ordering with ES6\n // $FlowIssue[incompatible-call]\n output.map(outputs => Object.getOwnPropertyNames(inputs).reduce( // $FlowFixMe[invalid-computed-prop]\n (out, key, idx) => ({ ...out,\n [key]: outputs[idx]\n }), {}));\n}\n\nfunction isLoadable(x) {\n return x instanceof BaseLoadable;\n}\n\nconst LoadableStaticInterface = {\n of: value => Recoil_isPromise(value) ? loadableWithPromise(value) : isLoadable(value) ? value : loadableWithValue(value),\n error: error => loadableWithError(error),\n // $FlowIssue[incompatible-return]\n loading: () => loadableLoading(),\n // $FlowIssue[unclear-type]\n all: loadableAll,\n isLoadable\n};\nvar Recoil_Loadable = {\n loadableWithValue,\n loadableWithError,\n loadableWithPromise,\n loadableLoading,\n loadableAll,\n isLoadable,\n RecoilLoadable: LoadableStaticInterface\n};\n\nvar Recoil_Loadable_1 = Recoil_Loadable.loadableWithValue;\nvar Recoil_Loadable_2 = Recoil_Loadable.loadableWithError;\nvar Recoil_Loadable_3 = Recoil_Loadable.loadableWithPromise;\nvar Recoil_Loadable_4 = Recoil_Loadable.loadableLoading;\nvar Recoil_Loadable_5 = Recoil_Loadable.loadableAll;\nvar Recoil_Loadable_6 = Recoil_Loadable.isLoadable;\nvar Recoil_Loadable_7 = Recoil_Loadable.RecoilLoadable;\n\nvar Recoil_Loadable$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n loadableWithValue: Recoil_Loadable_1,\n loadableWithError: Recoil_Loadable_2,\n loadableWithPromise: Recoil_Loadable_3,\n loadableLoading: Recoil_Loadable_4,\n loadableAll: Recoil_Loadable_5,\n isLoadable: Recoil_Loadable_6,\n RecoilLoadable: Recoil_Loadable_7\n});\n\nconst env = {\n RECOIL_DUPLICATE_ATOM_KEY_CHECKING_ENABLED: true,\n // Note: RECOIL_GKS_ENABLED settings will only be honored in OSS builds of Recoil\n RECOIL_GKS_ENABLED: new Set(['recoil_hamt_2020', 'recoil_sync_external_store', 'recoil_suppress_rerender_in_callback', 'recoil_memory_managament_2020'])\n};\n\nfunction readProcessEnvBooleanFlag(name, set) {\n var _process$env$name, _process$env$name$toL;\n\n const sanitizedValue = (_process$env$name = process.env[name]) === null || _process$env$name === void 0 ? void 0 : (_process$env$name$toL = _process$env$name.toLowerCase()) === null || _process$env$name$toL === void 0 ? void 0 : _process$env$name$toL.trim();\n\n if (sanitizedValue == null || sanitizedValue === '') {\n return;\n }\n\n const allowedValues = ['true', 'false'];\n\n if (!allowedValues.includes(sanitizedValue)) {\n throw Recoil_err(`process.env.${name} value must be 'true', 'false', or empty: ${sanitizedValue}`);\n }\n\n set(sanitizedValue === 'true');\n}\n\nfunction readProcessEnvStringArrayFlag(name, set) {\n var _process$env$name2;\n\n const sanitizedValue = (_process$env$name2 = process.env[name]) === null || _process$env$name2 === void 0 ? void 0 : _process$env$name2.trim();\n\n if (sanitizedValue == null || sanitizedValue === '') {\n return;\n }\n\n set(sanitizedValue.split(/\\s*,\\s*|\\s+/));\n}\n/**\n * Allow NodeJS/NextJS/etc to set the initial state through process.env variable\n * Note: we don't assume 'process' is available in all runtime environments\n *\n * @see https://github.com/facebookexperimental/Recoil/issues/733\n */\n\n\nfunction applyProcessEnvFlagOverrides() {\n var _process;\n\n // note: this check is needed in addition to the check below, runtime error will occur without it!\n // eslint-disable-next-line fb-www/typeof-undefined\n if (typeof process === 'undefined') {\n return;\n }\n\n if (((_process = process) === null || _process === void 0 ? void 0 : _process.env) == null) {\n return;\n }\n\n readProcessEnvBooleanFlag('RECOIL_DUPLICATE_ATOM_KEY_CHECKING_ENABLED', value => {\n env.RECOIL_DUPLICATE_ATOM_KEY_CHECKING_ENABLED = value;\n });\n readProcessEnvStringArrayFlag('RECOIL_GKS_ENABLED', value => {\n value.forEach(gk => {\n env.RECOIL_GKS_ENABLED.add(gk);\n });\n });\n}\n\napplyProcessEnvFlagOverrides();\nvar Recoil_RecoilEnv = env;\n\nfunction Recoil_gkx_OSS(gk) {\n return Recoil_RecoilEnv.RECOIL_GKS_ENABLED.has(gk);\n}\n\nRecoil_gkx_OSS.setPass = gk => {\n Recoil_RecoilEnv.RECOIL_GKS_ENABLED.add(gk);\n};\n\nRecoil_gkx_OSS.setFail = gk => {\n Recoil_RecoilEnv.RECOIL_GKS_ENABLED.delete(gk);\n};\n\nRecoil_gkx_OSS.clear = () => {\n Recoil_RecoilEnv.RECOIL_GKS_ENABLED.clear();\n};\n\nvar Recoil_gkx = Recoil_gkx_OSS; // @oss-only\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 * @oncall recoil\n */\n\nfunction recoverableViolation(message, _projectName, {\n error\n} = {}) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(message, error);\n }\n\n return null;\n}\n\nvar recoverableViolation_1 = recoverableViolation;\n\n// @oss-only\n\n\nvar Recoil_recoverableViolation = recoverableViolation_1;\n\nvar _createMutableSource, _useMutableSource, _useSyncExternalStore;\n\n\n\n\n\n\n\nconst createMutableSource = // flowlint-next-line unclear-type:off\n(_createMutableSource = react.createMutableSource) !== null && _createMutableSource !== void 0 ? _createMutableSource : react.unstable_createMutableSource;\nconst useMutableSource = // flowlint-next-line unclear-type:off\n(_useMutableSource = react.useMutableSource) !== null && _useMutableSource !== void 0 ? _useMutableSource : react.unstable_useMutableSource; // https://github.com/reactwg/react-18/discussions/86\n\nconst useSyncExternalStore = // flowlint-next-line unclear-type:off\n(_useSyncExternalStore = react.useSyncExternalStore) !== null && _useSyncExternalStore !== void 0 ? _useSyncExternalStore : // flowlint-next-line unclear-type:off\nreact.unstable_useSyncExternalStore;\nlet ReactRendererVersionMismatchWarnOnce = false; // Check if the current renderer supports `useSyncExternalStore()`.\n// Since React goes through a proxy dispatcher and the current renderer can\n// change we can't simply check if `React.useSyncExternalStore()` is defined.\n\nfunction currentRendererSupportsUseSyncExternalStore() {\n var _ReactCurrentDispatch;\n\n // $FlowFixMe[incompatible-use]\n const {\n ReactCurrentDispatcher,\n ReactCurrentOwner\n } =\n /* $FlowFixMe[prop-missing] This workaround was approved as a safer mechanism\n * to detect if the current renderer supports useSyncExternalStore()\n * https://fb.workplace.com/groups/reactjs/posts/9558682330846963/ */\n react.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n const dispatcher = (_ReactCurrentDispatch = ReactCurrentDispatcher === null || ReactCurrentDispatcher === void 0 ? void 0 : ReactCurrentDispatcher.current) !== null && _ReactCurrentDispatch !== void 0 ? _ReactCurrentDispatch : ReactCurrentOwner.currentDispatcher;\n const isUseSyncExternalStoreSupported = dispatcher.useSyncExternalStore != null;\n\n if (useSyncExternalStore && !isUseSyncExternalStoreSupported && !ReactRendererVersionMismatchWarnOnce) {\n ReactRendererVersionMismatchWarnOnce = true;\n Recoil_recoverableViolation('A React renderer without React 18+ API support is being used with React 18+.');\n }\n\n return isUseSyncExternalStoreSupported;\n}\n\n/**\n * mode: The React API and approach to use for syncing state with React\n * early: Re-renders from Recoil updates occur:\n * 1) earlier\n * 2) in sync with React updates in the same batch\n * 3) before transaction observers instead of after.\n * concurrent: Is the current mode compatible with Concurrent Mode and useTransition()\n */\nfunction reactMode() {\n // NOTE: This mode is currently broken with some Suspense cases\n // see Recoil_selector-test.js\n if (Recoil_gkx('recoil_transition_support')) {\n return {\n mode: 'TRANSITION_SUPPORT',\n early: true,\n concurrent: true\n };\n }\n\n if (Recoil_gkx('recoil_sync_external_store') && useSyncExternalStore != null) {\n return {\n mode: 'SYNC_EXTERNAL_STORE',\n early: true,\n concurrent: false\n };\n }\n\n if (Recoil_gkx('recoil_mutable_source') && useMutableSource != null && typeof window !== 'undefined' && !window.$disableRecoilValueMutableSource_TEMP_HACK_DO_NOT_USE) {\n return Recoil_gkx('recoil_suppress_rerender_in_callback') ? {\n mode: 'MUTABLE_SOURCE',\n early: true,\n concurrent: true\n } : {\n mode: 'MUTABLE_SOURCE',\n early: false,\n concurrent: false\n };\n }\n\n return Recoil_gkx('recoil_suppress_rerender_in_callback') ? {\n mode: 'LEGACY',\n early: true,\n concurrent: false\n } : {\n mode: 'LEGACY',\n early: false,\n concurrent: false\n };\n} // TODO Need to figure out if there is a standard/open-source equivalent to see if hot module replacement is happening:\n\n\nfunction isFastRefreshEnabled() {\n // @fb-only: const {isAcceptingUpdate} = require('__debug');\n // @fb-only: return typeof isAcceptingUpdate === 'function' && isAcceptingUpdate();\n return false; // @oss-only\n}\n\nvar Recoil_ReactMode = {\n createMutableSource,\n useMutableSource,\n useSyncExternalStore,\n currentRendererSupportsUseSyncExternalStore,\n reactMode,\n isFastRefreshEnabled\n};\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 * @oncall recoil\n */\n\n// eslint-disable-next-line no-unused-vars\nclass AbstractRecoilValue {\n constructor(newKey) {\n _defineProperty(this, \"key\", void 0);\n\n this.key = newKey;\n }\n\n toJSON() {\n return {\n key: this.key\n };\n }\n\n}\n\nclass RecoilState extends AbstractRecoilValue {}\n\nclass RecoilValueReadOnly extends AbstractRecoilValue {}\n\nfunction isRecoilValue(x) {\n return x instanceof RecoilState || x instanceof RecoilValueReadOnly;\n}\n\nvar Recoil_RecoilValue = {\n AbstractRecoilValue,\n RecoilState,\n RecoilValueReadOnly,\n isRecoilValue\n};\n\nvar Recoil_RecoilValue_1 = Recoil_RecoilValue.AbstractRecoilValue;\nvar Recoil_RecoilValue_2 = Recoil_RecoilValue.RecoilState;\nvar Recoil_RecoilValue_3 = Recoil_RecoilValue.RecoilValueReadOnly;\nvar Recoil_RecoilValue_4 = Recoil_RecoilValue.isRecoilValue;\n\nvar Recoil_RecoilValue$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n AbstractRecoilValue: Recoil_RecoilValue_1,\n RecoilState: Recoil_RecoilValue_2,\n RecoilValueReadOnly: Recoil_RecoilValue_3,\n isRecoilValue: Recoil_RecoilValue_4\n});\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 * @oncall recoil\n */\n\nfunction sprintf(format, ...args) {\n let index = 0;\n return format.replace(/%s/g, () => String(args[index++]));\n}\n\nvar sprintf_1 = sprintf;\n\nfunction expectationViolation(format, ...args) {\n if (process.env.NODE_ENV !== \"production\") {\n const message = sprintf_1.call(null, format, ...args);\n const error = new Error(message);\n error.name = 'Expectation Violation';\n console.error(error);\n }\n}\n\nvar expectationViolation_1 = expectationViolation;\n\n// @oss-only\n\n\nvar Recoil_expectationViolation = expectationViolation_1;\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 * @oncall recoil\n */\n/**\n * Creates a new iterable whose output is generated by passing the input\n * iterable's values through the mapper function.\n */\n\nfunction mapIterable(iterable, callback) {\n // Use generator to create iterable/iterator\n return function* () {\n let index = 0;\n\n for (const value of iterable) {\n yield callback(value, index++);\n }\n }();\n}\n\nvar Recoil_mapIterable = mapIterable;\n\nconst {\n isFastRefreshEnabled: isFastRefreshEnabled$1\n} = Recoil_ReactMode;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nclass DefaultValue {}\n\nconst DEFAULT_VALUE = new DefaultValue();\n// flowlint-next-line unclear-type:off\nconst nodes = new Map(); // flowlint-next-line unclear-type:off\n\nconst recoilValues = new Map();\n/* eslint-disable no-redeclare */\n\nfunction recoilValuesForKeys(keys) {\n return Recoil_mapIterable(keys, key => Recoil_nullthrows(recoilValues.get(key)));\n}\n\nfunction checkForDuplicateAtomKey(key) {\n if (nodes.has(key)) {\n const message = `Duplicate atom key \"${key}\". This is a FATAL ERROR in\n production. But it is safe to ignore this warning if it occurred because of\n hot module replacement.`;\n\n if (process.env.NODE_ENV !== \"production\") {\n // TODO Figure this out for open-source\n if (!isFastRefreshEnabled$1()) {\n Recoil_expectationViolation(message, 'recoil');\n }\n } else {\n // @fb-only: recoverableViolation(message, 'recoil');\n console.warn(message); // @oss-only\n }\n }\n}\n\nfunction registerNode(node) {\n if (Recoil_RecoilEnv.RECOIL_DUPLICATE_ATOM_KEY_CHECKING_ENABLED) {\n checkForDuplicateAtomKey(node.key);\n }\n\n nodes.set(node.key, node);\n const recoilValue = node.set == null ? new Recoil_RecoilValue$1.RecoilValueReadOnly(node.key) : new Recoil_RecoilValue$1.RecoilState(node.key);\n recoilValues.set(node.key, recoilValue);\n return recoilValue;\n}\n/* eslint-enable no-redeclare */\n\n\nclass NodeMissingError extends Error {} // flowlint-next-line unclear-type:off\n\n\nfunction getNode(key) {\n const node = nodes.get(key);\n\n if (node == null) {\n throw new NodeMissingError(`Missing definition for RecoilValue: \"${key}\"\"`);\n }\n\n return node;\n} // flowlint-next-line unclear-type:off\n\n\nfunction getNodeMaybe(key) {\n return nodes.get(key);\n}\n\nconst configDeletionHandlers = new Map();\n\nfunction deleteNodeConfigIfPossible(key) {\n var _node$shouldDeleteCon;\n\n if (!Recoil_gkx('recoil_memory_managament_2020')) {\n return;\n }\n\n const node = nodes.get(key);\n\n if (node !== null && node !== void 0 && (_node$shouldDeleteCon = node.shouldDeleteConfigOnRelease) !== null && _node$shouldDeleteCon !== void 0 && _node$shouldDeleteCon.call(node)) {\n var _getConfigDeletionHan;\n\n nodes.delete(key);\n (_getConfigDeletionHan = getConfigDeletionHandler(key)) === null || _getConfigDeletionHan === void 0 ? void 0 : _getConfigDeletionHan();\n configDeletionHandlers.delete(key);\n }\n}\n\nfunction setConfigDeletionHandler(key, fn) {\n if (!Recoil_gkx('recoil_memory_managament_2020')) {\n return;\n }\n\n if (fn === undefined) {\n configDeletionHandlers.delete(key);\n } else {\n configDeletionHandlers.set(key, fn);\n }\n}\n\nfunction getConfigDeletionHandler(key) {\n return configDeletionHandlers.get(key);\n}\n\nvar Recoil_Node = {\n nodes,\n recoilValues,\n registerNode,\n getNode,\n getNodeMaybe,\n deleteNodeConfigIfPossible,\n setConfigDeletionHandler,\n getConfigDeletionHandler,\n recoilValuesForKeys,\n NodeMissingError,\n DefaultValue,\n DEFAULT_VALUE\n};\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 * @oncall recoil\n */\n\nfunction enqueueExecution(s, f) {\n f();\n}\n\nvar Recoil_Queue = {\n enqueueExecution\n};\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nvar hamt_1 = createCommonjsModule(function (module) {\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n/**\n @fileOverview Hash Array Mapped Trie.\n\n Code based on: https://github.com/exclipy/pdata\n*/\n\n\nvar hamt = {}; // export\n\n/* Configuration\n ******************************************************************************/\n\nvar SIZE = 5;\nvar BUCKET_SIZE = Math.pow(2, SIZE);\nvar MASK = BUCKET_SIZE - 1;\nvar MAX_INDEX_NODE = BUCKET_SIZE / 2;\nvar MIN_ARRAY_NODE = BUCKET_SIZE / 4;\n/*\n ******************************************************************************/\n\nvar nothing = {};\n\nvar constant = function constant(x) {\n return function () {\n return x;\n };\n};\n/**\n Get 32 bit hash of string.\n\n Based on:\n http://stackoverflow.com/questions/7616461/generate-a-hash-from-string-in-javascript-jquery\n*/\n\n\nvar hash = hamt.hash = function (str) {\n var type = typeof str === 'undefined' ? 'undefined' : _typeof(str);\n if (type === 'number') return str;\n if (type !== 'string') str += '';\n var hash = 0;\n\n for (var i = 0, len = str.length; i < len; ++i) {\n var c = str.charCodeAt(i);\n hash = (hash << 5) - hash + c | 0;\n }\n\n return hash;\n};\n/* Bit Ops\n ******************************************************************************/\n\n/**\n Hamming weight.\n\n Taken from: http://jsperf.com/hamming-weight\n*/\n\n\nvar popcount = function popcount(x) {\n x -= x >> 1 & 0x55555555;\n x = (x & 0x33333333) + (x >> 2 & 0x33333333);\n x = x + (x >> 4) & 0x0f0f0f0f;\n x += x >> 8;\n x += x >> 16;\n return x & 0x7f;\n};\n\nvar hashFragment = function hashFragment(shift, h) {\n return h >>> shift & MASK;\n};\n\nvar toBitmap = function toBitmap(x) {\n return 1 << x;\n};\n\nvar fromBitmap = function fromBitmap(bitmap, bit) {\n return popcount(bitmap & bit - 1);\n};\n/* Array Ops\n ******************************************************************************/\n\n/**\n Set a value in an array.\n\n @param mutate Should the input array be mutated?\n @param at Index to change.\n @param v New value\n @param arr Array.\n*/\n\n\nvar arrayUpdate = function arrayUpdate(mutate, at, v, arr) {\n var out = arr;\n\n if (!mutate) {\n var len = arr.length;\n out = new Array(len);\n\n for (var i = 0; i < len; ++i) {\n out[i] = arr[i];\n }\n }\n\n out[at] = v;\n return out;\n};\n/**\n Remove a value from an array.\n\n @param mutate Should the input array be mutated?\n @param at Index to remove.\n @param arr Array.\n*/\n\n\nvar arraySpliceOut = function arraySpliceOut(mutate, at, arr) {\n var newLen = arr.length - 1;\n var i = 0;\n var g = 0;\n var out = arr;\n\n if (mutate) {\n i = g = at;\n } else {\n out = new Array(newLen);\n\n while (i < at) {\n out[g++] = arr[i++];\n }\n }\n\n ++i;\n\n while (i <= newLen) {\n out[g++] = arr[i++];\n }\n\n if (mutate) {\n out.length = newLen;\n }\n\n return out;\n};\n/**\n Insert a value into an array.\n\n @param mutate Should the input array be mutated?\n @param at Index to insert at.\n @param v Value to insert,\n @param arr Array.\n*/\n\n\nvar arraySpliceIn = function arraySpliceIn(mutate, at, v, arr) {\n var len = arr.length;\n\n if (mutate) {\n var _i = len;\n\n while (_i >= at) {\n arr[_i--] = arr[_i];\n }\n\n arr[at] = v;\n return arr;\n }\n\n var i = 0,\n g = 0;\n var out = new Array(len + 1);\n\n while (i < at) {\n out[g++] = arr[i++];\n }\n\n out[at] = v;\n\n while (i < len) {\n out[++g] = arr[i++];\n }\n\n return out;\n};\n/* Node Structures\n ******************************************************************************/\n\n\nvar LEAF = 1;\nvar COLLISION = 2;\nvar INDEX = 3;\nvar ARRAY = 4;\n/**\n Empty node.\n*/\n\nvar empty = {\n __hamt_isEmpty: true\n};\n\nvar isEmptyNode = function isEmptyNode(x) {\n return x === empty || x && x.__hamt_isEmpty;\n};\n/**\n Leaf holding a value.\n\n @member edit Edit of the node.\n @member hash Hash of key.\n @member key Key.\n @member value Value stored.\n*/\n\n\nvar Leaf = function Leaf(edit, hash, key, value) {\n return {\n type: LEAF,\n edit: edit,\n hash: hash,\n key: key,\n value: value,\n _modify: Leaf__modify\n };\n};\n/**\n Leaf holding multiple values with the same hash but different keys.\n\n @member edit Edit of the node.\n @member hash Hash of key.\n @member children Array of collision children node.\n*/\n\n\nvar Collision = function Collision(edit, hash, children) {\n return {\n type: COLLISION,\n edit: edit,\n hash: hash,\n children: children,\n _modify: Collision__modify\n };\n};\n/**\n Internal node with a sparse set of children.\n\n Uses a bitmap and array to pack children.\n\n @member edit Edit of the node.\n @member mask Bitmap that encode the positions of children in the array.\n @member children Array of child nodes.\n*/\n\n\nvar IndexedNode = function IndexedNode(edit, mask, children) {\n return {\n type: INDEX,\n edit: edit,\n mask: mask,\n children: children,\n _modify: IndexedNode__modify\n };\n};\n/**\n Internal node with many children.\n\n @member edit Edit of the node.\n @member size Number of children.\n @member children Array of child nodes.\n*/\n\n\nvar ArrayNode = function ArrayNode(edit, size, children) {\n return {\n type: ARRAY,\n edit: edit,\n size: size,\n children: children,\n _modify: ArrayNode__modify\n };\n};\n/**\n Is `node` a leaf node?\n*/\n\n\nvar isLeaf = function isLeaf(node) {\n return node === empty || node.type === LEAF || node.type === COLLISION;\n};\n/* Internal node operations.\n ******************************************************************************/\n\n/**\n Expand an indexed node into an array node.\n\n @param edit Current edit.\n @param frag Index of added child.\n @param child Added child.\n @param mask Index node mask before child added.\n @param subNodes Index node children before child added.\n*/\n\n\nvar expand = function expand(edit, frag, child, bitmap, subNodes) {\n var arr = [];\n var bit = bitmap;\n var count = 0;\n\n for (var i = 0; bit; ++i) {\n if (bit & 1) arr[i] = subNodes[count++];\n bit >>>= 1;\n }\n\n arr[frag] = child;\n return ArrayNode(edit, count + 1, arr);\n};\n/**\n Collapse an array node into a indexed node.\n\n @param edit Current edit.\n @param count Number of elements in new array.\n @param removed Index of removed element.\n @param elements Array node children before remove.\n*/\n\n\nvar pack = function pack(edit, count, removed, elements) {\n var children = new Array(count - 1);\n var g = 0;\n var bitmap = 0;\n\n for (var i = 0, len = elements.length; i < len; ++i) {\n if (i !== removed) {\n var elem = elements[i];\n\n if (elem && !isEmptyNode(elem)) {\n children[g++] = elem;\n bitmap |= 1 << i;\n }\n }\n }\n\n return IndexedNode(edit, bitmap, children);\n};\n/**\n Merge two leaf nodes.\n\n @param shift Current shift.\n @param h1 Node 1 hash.\n @param n1 Node 1.\n @param h2 Node 2 hash.\n @param n2 Node 2.\n*/\n\n\nvar mergeLeaves = function mergeLeaves(edit, shift, h1, n1, h2, n2) {\n if (h1 === h2) return Collision(edit, h1, [n2, n1]);\n var subH1 = hashFragment(shift, h1);\n var subH2 = hashFragment(shift, h2);\n return IndexedNode(edit, toBitmap(subH1) | toBitmap(subH2), subH1 === subH2 ? [mergeLeaves(edit, shift + SIZE, h1, n1, h2, n2)] : subH1 < subH2 ? [n1, n2] : [n2, n1]);\n};\n/**\n Update an entry in a collision list.\n\n @param mutate Should mutation be used?\n @param edit Current edit.\n @param keyEq Key compare function.\n @param hash Hash of collision.\n @param list Collision list.\n @param f Update function.\n @param k Key to update.\n @param size Size ref.\n*/\n\n\nvar updateCollisionList = function updateCollisionList(mutate, edit, keyEq, h, list, f, k, size) {\n var len = list.length;\n\n for (var i = 0; i < len; ++i) {\n var child = list[i];\n\n if (keyEq(k, child.key)) {\n var value = child.value;\n\n var _newValue = f(value);\n\n if (_newValue === value) return list;\n\n if (_newValue === nothing) {\n --size.value;\n return arraySpliceOut(mutate, i, list);\n }\n\n return arrayUpdate(mutate, i, Leaf(edit, h, k, _newValue), list);\n }\n }\n\n var newValue = f();\n if (newValue === nothing) return list;\n ++size.value;\n return arrayUpdate(mutate, len, Leaf(edit, h, k, newValue), list);\n};\n\nvar canEditNode = function canEditNode(edit, node) {\n return edit === node.edit;\n};\n/* Editing\n ******************************************************************************/\n\n\nvar Leaf__modify = function Leaf__modify(edit, keyEq, shift, f, h, k, size) {\n if (keyEq(k, this.key)) {\n var _v = f(this.value);\n\n if (_v === this.value) return this;else if (_v === nothing) {\n --size.value;\n return empty;\n }\n\n if (canEditNode(edit, this)) {\n this.value = _v;\n return this;\n }\n\n return Leaf(edit, h, k, _v);\n }\n\n var v = f();\n if (v === nothing) return this;\n ++size.value;\n return mergeLeaves(edit, shift, this.hash, this, h, Leaf(edit, h, k, v));\n};\n\nvar Collision__modify = function Collision__modify(edit, keyEq, shift, f, h, k, size) {\n if (h === this.hash) {\n var canEdit = canEditNode(edit, this);\n var list = updateCollisionList(canEdit, edit, keyEq, this.hash, this.children, f, k, size);\n if (list === this.children) return this;\n return list.length > 1 ? Collision(edit, this.hash, list) : list[0]; // collapse single element collision list\n }\n\n var v = f();\n if (v === nothing) return this;\n ++size.value;\n return mergeLeaves(edit, shift, this.hash, this, h, Leaf(edit, h, k, v));\n};\n\nvar IndexedNode__modify = function IndexedNode__modify(edit, keyEq, shift, f, h, k, size) {\n var mask = this.mask;\n var children = this.children;\n var frag = hashFragment(shift, h);\n var bit = toBitmap(frag);\n var indx = fromBitmap(mask, bit);\n var exists = mask & bit;\n var current = exists ? children[indx] : empty;\n\n var child = current._modify(edit, keyEq, shift + SIZE, f, h, k, size);\n\n if (current === child) return this;\n var canEdit = canEditNode(edit, this);\n var bitmap = mask;\n var newChildren = void 0;\n\n if (exists && isEmptyNode(child)) {\n // remove\n bitmap &= ~bit;\n if (!bitmap) return empty;\n if (children.length <= 2 && isLeaf(children[indx ^ 1])) return children[indx ^ 1]; // collapse\n\n newChildren = arraySpliceOut(canEdit, indx, children);\n } else if (!exists && !isEmptyNode(child)) {\n // add\n if (children.length >= MAX_INDEX_NODE) return expand(edit, frag, child, mask, children);\n bitmap |= bit;\n newChildren = arraySpliceIn(canEdit, indx, child, children);\n } else {\n // modify\n newChildren = arrayUpdate(canEdit, indx, child, children);\n }\n\n if (canEdit) {\n this.mask = bitmap;\n this.children = newChildren;\n return this;\n }\n\n return IndexedNode(edit, bitmap, newChildren);\n};\n\nvar ArrayNode__modify = function ArrayNode__modify(edit, keyEq, shift, f, h, k, size) {\n var count = this.size;\n var children = this.children;\n var frag = hashFragment(shift, h);\n var child = children[frag];\n\n var newChild = (child || empty)._modify(edit, keyEq, shift + SIZE, f, h, k, size);\n\n if (child === newChild) return this;\n var canEdit = canEditNode(edit, this);\n var newChildren = void 0;\n\n if (isEmptyNode(child) && !isEmptyNode(newChild)) {\n // add\n ++count;\n newChildren = arrayUpdate(canEdit, frag, newChild, children);\n } else if (!isEmptyNode(child) && isEmptyNode(newChild)) {\n // remove\n --count;\n if (count <= MIN_ARRAY_NODE) return pack(edit, count, frag, children);\n newChildren = arrayUpdate(canEdit, frag, empty, children);\n } else {\n // modify\n newChildren = arrayUpdate(canEdit, frag, newChild, children);\n }\n\n if (canEdit) {\n this.size = count;\n this.children = newChildren;\n return this;\n }\n\n return ArrayNode(edit, count, newChildren);\n};\n\nempty._modify = function (edit, keyEq, shift, f, h, k, size) {\n var v = f();\n if (v === nothing) return empty;\n ++size.value;\n return Leaf(edit, h, k, v);\n};\n/*\n ******************************************************************************/\n\n\nfunction Map(editable, edit, config, root, size) {\n this._editable = editable;\n this._edit = edit;\n this._config = config;\n this._root = root;\n this._size = size;\n}\n\nMap.prototype.setTree = function (newRoot, newSize) {\n if (this._editable) {\n this._root = newRoot;\n this._size = newSize;\n return this;\n }\n\n return newRoot === this._root ? this : new Map(this._editable, this._edit, this._config, newRoot, newSize);\n};\n/* Queries\n ******************************************************************************/\n\n/**\n Lookup the value for `key` in `map` using a custom `hash`.\n\n Returns the value or `alt` if none.\n*/\n\n\nvar tryGetHash = hamt.tryGetHash = function (alt, hash, key, map) {\n var node = map._root;\n var shift = 0;\n var keyEq = map._config.keyEq;\n\n while (true) {\n switch (node.type) {\n case LEAF:\n {\n return keyEq(key, node.key) ? node.value : alt;\n }\n\n case COLLISION:\n {\n if (hash === node.hash) {\n var children = node.children;\n\n for (var i = 0, len = children.length; i < len; ++i) {\n var child = children[i];\n if (keyEq(key, child.key)) return child.value;\n }\n }\n\n return alt;\n }\n\n case INDEX:\n {\n var frag = hashFragment(shift, hash);\n var bit = toBitmap(frag);\n\n if (node.mask & bit) {\n node = node.children[fromBitmap(node.mask, bit)];\n shift += SIZE;\n break;\n }\n\n return alt;\n }\n\n case ARRAY:\n {\n node = node.children[hashFragment(shift, hash)];\n\n if (node) {\n shift += SIZE;\n break;\n }\n\n return alt;\n }\n\n default:\n return alt;\n }\n }\n};\n\nMap.prototype.tryGetHash = function (alt, hash, key) {\n return tryGetHash(alt, hash, key, this);\n};\n/**\n Lookup the value for `key` in `map` using internal hash function.\n\n @see `tryGetHash`\n*/\n\n\nvar tryGet = hamt.tryGet = function (alt, key, map) {\n return tryGetHash(alt, map._config.hash(key), key, map);\n};\n\nMap.prototype.tryGet = function (alt, key) {\n return tryGet(alt, key, this);\n};\n/**\n Lookup the value for `key` in `map` using a custom `hash`.\n\n Returns the value or `undefined` if none.\n*/\n\n\nvar getHash = hamt.getHash = function (hash, key, map) {\n return tryGetHash(undefined, hash, key, map);\n};\n\nMap.prototype.getHash = function (hash, key) {\n return getHash(hash, key, this);\n};\n/**\n Lookup the value for `key` in `map` using internal hash function.\n\n @see `get`\n*/\n\n\nvar get = hamt.get = function (key, map) {\n return tryGetHash(undefined, map._config.hash(key), key, map);\n};\n\nMap.prototype.get = function (key, alt) {\n return tryGet(alt, key, this);\n};\n/**\n Does an entry exist for `key` in `map`? Uses custom `hash`.\n*/\n\n\nvar hasHash = hamt.has = function (hash, key, map) {\n return tryGetHash(nothing, hash, key, map) !== nothing;\n};\n\nMap.prototype.hasHash = function (hash, key) {\n return hasHash(hash, key, this);\n};\n/**\n Does an entry exist for `key` in `map`? Uses internal hash function.\n*/\n\n\nvar has = hamt.has = function (key, map) {\n return hasHash(map._config.hash(key), key, map);\n};\n\nMap.prototype.has = function (key) {\n return has(key, this);\n};\n\nvar defKeyCompare = function defKeyCompare(x, y) {\n return x === y;\n};\n/**\n Create an empty map.\n\n @param config Configuration.\n*/\n\n\nhamt.make = function (config) {\n return new Map(0, 0, {\n keyEq: config && config.keyEq || defKeyCompare,\n hash: config && config.hash || hash\n }, empty, 0);\n};\n/**\n Empty map.\n*/\n\n\nhamt.empty = hamt.make();\n/**\n Does `map` contain any elements?\n*/\n\nvar isEmpty = hamt.isEmpty = function (map) {\n return map && !!isEmptyNode(map._root);\n};\n\nMap.prototype.isEmpty = function () {\n return isEmpty(this);\n};\n/* Updates\n ******************************************************************************/\n\n/**\n Alter the value stored for `key` in `map` using function `f` using\n custom hash.\n\n `f` is invoked with the current value for `k` if it exists,\n or no arguments if no such value exists. `modify` will always either\n update or insert a value into the map.\n\n Returns a map with the modified value. Does not alter `map`.\n*/\n\n\nvar modifyHash = hamt.modifyHash = function (f, hash, key, map) {\n var size = {\n value: map._size\n };\n\n var newRoot = map._root._modify(map._editable ? map._edit : NaN, map._config.keyEq, 0, f, hash, key, size);\n\n return map.setTree(newRoot, size.value);\n};\n\nMap.prototype.modifyHash = function (hash, key, f) {\n return modifyHash(f, hash, key, this);\n};\n/**\n Alter the value stored for `key` in `map` using function `f` using\n internal hash function.\n\n @see `modifyHash`\n*/\n\n\nvar modify = hamt.modify = function (f, key, map) {\n return modifyHash(f, map._config.hash(key), key, map);\n};\n\nMap.prototype.modify = function (key, f) {\n return modify(f, key, this);\n};\n/**\n Store `value` for `key` in `map` using custom `hash`.\n\n Returns a map with the modified value. Does not alter `map`.\n*/\n\n\nvar setHash = hamt.setHash = function (hash, key, value, map) {\n return modifyHash(constant(value), hash, key, map);\n};\n\nMap.prototype.setHash = function (hash, key, value) {\n return setHash(hash, key, value, this);\n};\n/**\n Store `value` for `key` in `map` using internal hash function.\n\n @see `setHash`\n*/\n\n\nvar set = hamt.set = function (key, value, map) {\n return setHash(map._config.hash(key), key, value, map);\n};\n\nMap.prototype.set = function (key, value) {\n return set(key, value, this);\n};\n/**\n Remove the entry for `key` in `map`.\n\n Returns a map with the value removed. Does not alter `map`.\n*/\n\n\nvar del = constant(nothing);\n\nvar removeHash = hamt.removeHash = function (hash, key, map) {\n return modifyHash(del, hash, key, map);\n};\n\nMap.prototype.removeHash = Map.prototype.deleteHash = function (hash, key) {\n return removeHash(hash, key, this);\n};\n/**\n Remove the entry for `key` in `map` using internal hash function.\n\n @see `removeHash`\n*/\n\n\nvar remove = hamt.remove = function (key, map) {\n return removeHash(map._config.hash(key), key, map);\n};\n\nMap.prototype.remove = Map.prototype.delete = function (key) {\n return remove(key, this);\n};\n/* Mutation\n ******************************************************************************/\n\n/**\n Mark `map` as mutable.\n */\n\n\nvar beginMutation = hamt.beginMutation = function (map) {\n return new Map(map._editable + 1, map._edit + 1, map._config, map._root, map._size);\n};\n\nMap.prototype.beginMutation = function () {\n return beginMutation(this);\n};\n/**\n Mark `map` as immutable.\n */\n\n\nvar endMutation = hamt.endMutation = function (map) {\n map._editable = map._editable && map._editable - 1;\n return map;\n};\n\nMap.prototype.endMutation = function () {\n return endMutation(this);\n};\n/**\n Mutate `map` within the context of `f`.\n @param f\n @param map HAMT\n*/\n\n\nvar mutate = hamt.mutate = function (f, map) {\n var transient = beginMutation(map);\n f(transient);\n return endMutation(transient);\n};\n\nMap.prototype.mutate = function (f) {\n return mutate(f, this);\n};\n/* Traversal\n ******************************************************************************/\n\n/**\n Apply a continuation.\n*/\n\n\nvar appk = function appk(k) {\n return k && lazyVisitChildren(k[0], k[1], k[2], k[3], k[4]);\n};\n/**\n Recursively visit all values stored in an array of nodes lazily.\n*/\n\n\nvar lazyVisitChildren = function lazyVisitChildren(len, children, i, f, k) {\n while (i < len) {\n var child = children[i++];\n if (child && !isEmptyNode(child)) return lazyVisit(child, f, [len, children, i, f, k]);\n }\n\n return appk(k);\n};\n/**\n Recursively visit all values stored in `node` lazily.\n*/\n\n\nvar lazyVisit = function lazyVisit(node, f, k) {\n switch (node.type) {\n case LEAF:\n return {\n value: f(node),\n rest: k\n };\n\n case COLLISION:\n case ARRAY:\n case INDEX:\n var children = node.children;\n return lazyVisitChildren(children.length, children, 0, f, k);\n\n default:\n return appk(k);\n }\n};\n\nvar DONE = {\n done: true\n};\n/**\n Javascript iterator over a map.\n*/\n\nfunction MapIterator(v) {\n this.v = v;\n}\n\nMapIterator.prototype.next = function () {\n if (!this.v) return DONE;\n var v0 = this.v;\n this.v = appk(v0.rest);\n return v0;\n};\n\nMapIterator.prototype[Symbol.iterator] = function () {\n return this;\n};\n/**\n Lazily visit each value in map with function `f`.\n*/\n\n\nvar visit = function visit(map, f) {\n return new MapIterator(lazyVisit(map._root, f));\n};\n/**\n Get a Javascsript iterator of `map`.\n\n Iterates over `[key, value]` arrays.\n*/\n\n\nvar buildPairs = function buildPairs(x) {\n return [x.key, x.value];\n};\n\nvar entries = hamt.entries = function (map) {\n return visit(map, buildPairs);\n};\n\nMap.prototype.entries = Map.prototype[Symbol.iterator] = function () {\n return entries(this);\n};\n/**\n Get array of all keys in `map`.\n\n Order is not guaranteed.\n*/\n\n\nvar buildKeys = function buildKeys(x) {\n return x.key;\n};\n\nvar keys = hamt.keys = function (map) {\n return visit(map, buildKeys);\n};\n\nMap.prototype.keys = function () {\n return keys(this);\n};\n/**\n Get array of all values in `map`.\n\n Order is not guaranteed, duplicates are preserved.\n*/\n\n\nvar buildValues = function buildValues(x) {\n return x.value;\n};\n\nvar values = hamt.values = Map.prototype.values = function (map) {\n return visit(map, buildValues);\n};\n\nMap.prototype.values = function () {\n return values(this);\n};\n/* Fold\n ******************************************************************************/\n\n/**\n Visit every entry in the map, aggregating data.\n\n Order of nodes is not guaranteed.\n\n @param f Function mapping accumulated value, value, and key to new value.\n @param z Starting value.\n @param m HAMT\n*/\n\n\nvar fold = hamt.fold = function (f, z, m) {\n var root = m._root;\n if (root.type === LEAF) return f(z, root.value, root.key);\n var toVisit = [root.children];\n var children = void 0;\n\n while (children = toVisit.pop()) {\n for (var i = 0, len = children.length; i < len;) {\n var child = children[i++];\n\n if (child && child.type) {\n if (child.type === LEAF) z = f(z, child.value, child.key);else toVisit.push(child.children);\n }\n }\n }\n\n return z;\n};\n\nMap.prototype.fold = function (f, z) {\n return fold(f, z, this);\n};\n/**\n Visit every entry in the map, aggregating data.\n\n Order of nodes is not guaranteed.\n\n @param f Function invoked with value and key\n @param map HAMT\n*/\n\n\nvar forEach = hamt.forEach = function (f, map) {\n return fold(function (_, value, key) {\n return f(value, key, map);\n }, null, map);\n};\n\nMap.prototype.forEach = function (f) {\n return forEach(f, this);\n};\n/* Aggregate\n ******************************************************************************/\n\n/**\n Get the number of entries in `map`.\n*/\n\n\nvar count = hamt.count = function (map) {\n return map._size;\n};\n\nMap.prototype.count = function () {\n return count(this);\n};\n\nObject.defineProperty(Map.prototype, 'size', {\n get: Map.prototype.count\n});\n/* Export\n ******************************************************************************/\n\nif ( module.exports) {\n module.exports = hamt;\n} else {\n undefined.hamt = hamt;\n}\n});\n\nclass BuiltInMap {\n constructor(existing) {\n _defineProperty(this, \"_map\", void 0);\n\n this._map = new Map(existing === null || existing === void 0 ? void 0 : existing.entries());\n }\n\n keys() {\n return this._map.keys();\n }\n\n entries() {\n return this._map.entries();\n }\n\n get(k) {\n return this._map.get(k);\n }\n\n has(k) {\n return this._map.has(k);\n }\n\n set(k, v) {\n this._map.set(k, v);\n\n return this;\n }\n\n delete(k) {\n this._map.delete(k);\n\n return this;\n }\n\n clone() {\n return persistentMap(this);\n }\n\n toMap() {\n return new Map(this._map);\n }\n\n}\n\nclass HashArrayMappedTrieMap {\n // Because hamt.empty is not a function there is no way to introduce type\n // parameters on it, so empty is typed as HAMTPlusMap.\n // $FlowIssue\n constructor(existing) {\n _defineProperty(this, \"_hamt\", hamt_1.empty.beginMutation());\n\n if (existing instanceof HashArrayMappedTrieMap) {\n const h = existing._hamt.endMutation();\n\n existing._hamt = h.beginMutation();\n this._hamt = h.beginMutation();\n } else if (existing) {\n for (const [k, v] of existing.entries()) {\n this._hamt.set(k, v);\n }\n }\n }\n\n keys() {\n return this._hamt.keys();\n }\n\n entries() {\n return this._hamt.entries();\n }\n\n get(k) {\n return this._hamt.get(k);\n }\n\n has(k) {\n return this._hamt.has(k);\n }\n\n set(k, v) {\n this._hamt.set(k, v);\n\n return this;\n }\n\n delete(k) {\n this._hamt.delete(k);\n\n return this;\n }\n\n clone() {\n return persistentMap(this);\n }\n\n toMap() {\n return new Map(this._hamt);\n }\n\n}\n\nfunction persistentMap(existing) {\n if (Recoil_gkx('recoil_hamt_2020')) {\n return new HashArrayMappedTrieMap(existing);\n } else {\n return new BuiltInMap(existing);\n }\n}\n\nvar Recoil_PersistentMap = {\n persistentMap\n};\n\nvar Recoil_PersistentMap_1 = Recoil_PersistentMap.persistentMap;\n\nvar Recoil_PersistentMap$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n persistentMap: Recoil_PersistentMap_1\n});\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 * @oncall recoil\n */\n/**\n * Returns a set containing all of the values from the first set that are not\n * present in any of the subsequent sets.\n *\n * Note: this is written procedurally (i.e., without filterSet) for performant\n * use in tight loops.\n */\n\nfunction differenceSets(set, ...setsWithValuesToRemove) {\n const ret = new Set();\n\n FIRST: for (const value of set) {\n for (const otherSet of setsWithValuesToRemove) {\n if (otherSet.has(value)) {\n continue FIRST;\n }\n }\n\n ret.add(value);\n }\n\n return ret;\n}\n\nvar Recoil_differenceSets = differenceSets;\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 * @oncall recoil\n */\n/**\n * Returns a new Map object with the same keys as the original, but with the\n * values replaced with the output of the given callback function.\n */\n\nfunction mapMap(map, callback) {\n const result = new Map();\n map.forEach((value, key) => {\n result.set(key, callback(value, key));\n });\n return result;\n}\n\nvar Recoil_mapMap = mapMap;\n\nfunction makeGraph() {\n return {\n nodeDeps: new Map(),\n nodeToNodeSubscriptions: new Map()\n };\n}\n\nfunction cloneGraph(graph) {\n return {\n nodeDeps: Recoil_mapMap(graph.nodeDeps, s => new Set(s)),\n nodeToNodeSubscriptions: Recoil_mapMap(graph.nodeToNodeSubscriptions, s => new Set(s))\n };\n} // Note that this overwrites the deps of existing nodes, rather than unioning\n// the new deps with the old deps.\n\n\nfunction mergeDepsIntoGraph(key, newDeps, graph, // If olderGraph is given then we will not overwrite changes made to the given\n// graph compared with olderGraph:\nolderGraph) {\n const {\n nodeDeps,\n nodeToNodeSubscriptions\n } = graph;\n const oldDeps = nodeDeps.get(key);\n\n if (oldDeps && olderGraph && oldDeps !== olderGraph.nodeDeps.get(key)) {\n return;\n } // Update nodeDeps:\n\n\n nodeDeps.set(key, newDeps); // Add new deps to nodeToNodeSubscriptions:\n\n const addedDeps = oldDeps == null ? newDeps : Recoil_differenceSets(newDeps, oldDeps);\n\n for (const dep of addedDeps) {\n if (!nodeToNodeSubscriptions.has(dep)) {\n nodeToNodeSubscriptions.set(dep, new Set());\n }\n\n const existing = Recoil_nullthrows(nodeToNodeSubscriptions.get(dep));\n existing.add(key);\n } // Remove removed deps from nodeToNodeSubscriptions:\n\n\n if (oldDeps) {\n const removedDeps = Recoil_differenceSets(oldDeps, newDeps);\n\n for (const dep of removedDeps) {\n if (!nodeToNodeSubscriptions.has(dep)) {\n return;\n }\n\n const existing = Recoil_nullthrows(nodeToNodeSubscriptions.get(dep));\n existing.delete(key);\n\n if (existing.size === 0) {\n nodeToNodeSubscriptions.delete(dep);\n }\n }\n }\n}\n\nfunction saveDepsToStore(key, deps, store, version) {\n var _storeState$nextTree, _storeState$previousT, _storeState$previousT2, _storeState$previousT3;\n\n const storeState = store.getState();\n\n if (!(version === storeState.currentTree.version || version === ((_storeState$nextTree = storeState.nextTree) === null || _storeState$nextTree === void 0 ? void 0 : _storeState$nextTree.version) || version === ((_storeState$previousT = storeState.previousTree) === null || _storeState$previousT === void 0 ? void 0 : _storeState$previousT.version))) {\n Recoil_recoverableViolation('Tried to save dependencies to a discarded tree');\n } // Merge the dependencies discovered into the store's dependency map\n // for the version that was read:\n\n\n const graph = store.getGraph(version);\n mergeDepsIntoGraph(key, deps, graph); // If this version is not the latest version, also write these dependencies\n // into later versions if they don't already have their own:\n\n if (version === ((_storeState$previousT2 = storeState.previousTree) === null || _storeState$previousT2 === void 0 ? void 0 : _storeState$previousT2.version)) {\n const currentGraph = store.getGraph(storeState.currentTree.version);\n mergeDepsIntoGraph(key, deps, currentGraph, graph);\n }\n\n if (version === ((_storeState$previousT3 = storeState.previousTree) === null || _storeState$previousT3 === void 0 ? void 0 : _storeState$previousT3.version) || version === storeState.currentTree.version) {\n var _storeState$nextTree2;\n\n const nextVersion = (_storeState$nextTree2 = storeState.nextTree) === null || _storeState$nextTree2 === void 0 ? void 0 : _storeState$nextTree2.version;\n\n if (nextVersion !== undefined) {\n const nextGraph = store.getGraph(nextVersion);\n mergeDepsIntoGraph(key, deps, nextGraph, graph);\n }\n }\n}\n\nvar Recoil_Graph = {\n cloneGraph,\n graph: makeGraph,\n saveDepsToStore\n};\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 * @oncall recoil\n */\n\nlet nextTreeStateVersion = 0;\n\nconst getNextTreeStateVersion = () => nextTreeStateVersion++;\n\nlet nextStoreID = 0;\n\nconst getNextStoreID = () => nextStoreID++;\n\nlet nextComponentID = 0;\n\nconst getNextComponentID = () => nextComponentID++;\n\nvar Recoil_Keys = {\n getNextTreeStateVersion,\n getNextStoreID,\n getNextComponentID\n};\n\nconst {\n persistentMap: persistentMap$1\n} = Recoil_PersistentMap$1;\n\nconst {\n graph\n} = Recoil_Graph;\n\nconst {\n getNextTreeStateVersion: getNextTreeStateVersion$1\n} = Recoil_Keys;\n\nfunction makeEmptyTreeState() {\n const version = getNextTreeStateVersion$1();\n return {\n version,\n stateID: version,\n transactionMetadata: {},\n dirtyAtoms: new Set(),\n atomValues: persistentMap$1(),\n nonvalidatedAtoms: persistentMap$1()\n };\n}\n\nfunction makeEmptyStoreState() {\n const currentTree = makeEmptyTreeState();\n return {\n currentTree,\n nextTree: null,\n previousTree: null,\n commitDepth: 0,\n knownAtoms: new Set(),\n knownSelectors: new Set(),\n transactionSubscriptions: new Map(),\n nodeTransactionSubscriptions: new Map(),\n nodeToComponentSubscriptions: new Map(),\n queuedComponentCallbacks_DEPRECATED: [],\n suspendedComponentResolvers: new Set(),\n graphsByVersion: new Map().set(currentTree.version, graph()),\n retention: {\n referenceCounts: new Map(),\n nodesRetainedByZone: new Map(),\n retainablesToCheckForRelease: new Set()\n },\n nodeCleanupFunctions: new Map()\n };\n}\n\nvar Recoil_State = {\n makeEmptyTreeState,\n makeEmptyStoreState,\n getNextTreeStateVersion: getNextTreeStateVersion$1\n};\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 * @oncall recoil\n */\n\nclass RetentionZone {}\n\nfunction retentionZone() {\n return new RetentionZone();\n}\n\nvar Recoil_RetentionZone = {\n RetentionZone,\n retentionZone\n};\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * Utilities for working with built-in Maps and Sets without mutating them.\n *\n * \n * @format\n * @oncall recoil\n */\n\nfunction setByAddingToSet(set, v) {\n const next = new Set(set);\n next.add(v);\n return next;\n}\n\nfunction setByDeletingFromSet(set, v) {\n const next = new Set(set);\n next.delete(v);\n return next;\n}\n\nfunction mapBySettingInMap(map, k, v) {\n const next = new Map(map);\n next.set(k, v);\n return next;\n}\n\nfunction mapByUpdatingInMap(map, k, updater) {\n const next = new Map(map);\n next.set(k, updater(next.get(k)));\n return next;\n}\n\nfunction mapByDeletingFromMap(map, k) {\n const next = new Map(map);\n next.delete(k);\n return next;\n}\n\nfunction mapByDeletingMultipleFromMap(map, ks) {\n const next = new Map(map);\n ks.forEach(k => next.delete(k));\n return next;\n}\n\nvar Recoil_CopyOnWrite = {\n setByAddingToSet,\n setByDeletingFromSet,\n mapBySettingInMap,\n mapByUpdatingInMap,\n mapByDeletingFromMap,\n mapByDeletingMultipleFromMap\n};\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 * @oncall recoil\n */\n/**\n * Creates a new iterable whose output is generated by passing the input\n * iterable's values through the filter function.\n */\n\nfunction* filterIterable(iterable, predicate) {\n // Use generator to create iterable/iterator\n let index = 0;\n\n for (const value of iterable) {\n if (predicate(value, index++)) {\n yield value;\n }\n }\n}\n\nvar Recoil_filterIterable = filterIterable;\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 * @oncall recoil\n */\n/**\n * Return a proxy object based on the provided base and factories objects.\n * The proxy will include all properties of the base object as-is.\n * The factories object contains callbacks to obtain the values of the properies\n * for its keys.\n *\n * This is useful for providing users an object where some properties may be\n * lazily computed only on first access.\n */\n// $FlowIssue[unclear-type]\n\nfunction lazyProxy(base, factories) {\n const proxy = new Proxy(base, {\n // Compute and cache lazy property if not already done.\n get: (target, prop) => {\n if (!(prop in target) && prop in factories) {\n target[prop] = factories[prop]();\n }\n\n return target[prop];\n },\n // This method allows user to iterate keys as normal\n ownKeys: target => {\n\n return Object.keys(target);\n }\n }); // $FlowIssue[incompatible-return]\n\n return proxy;\n}\n\nvar Recoil_lazyProxy = lazyProxy;\n\nconst {\n getNode: getNode$1,\n getNodeMaybe: getNodeMaybe$1,\n recoilValuesForKeys: recoilValuesForKeys$1\n} = Recoil_Node;\n\nconst {\n RetentionZone: RetentionZone$1\n} = Recoil_RetentionZone;\n\nconst {\n setByAddingToSet: setByAddingToSet$1\n} = Recoil_CopyOnWrite;\n\n\n\n\n\n\n\n // flowlint-next-line unclear-type:off\n\n\nconst emptySet = Object.freeze(new Set());\n\nclass ReadOnlyRecoilValueError extends Error {}\n\nfunction initializeRetentionForNode(store, nodeKey, retainedBy) {\n if (!Recoil_gkx('recoil_memory_managament_2020')) {\n return () => undefined;\n }\n\n const {\n nodesRetainedByZone\n } = store.getState().retention;\n\n function addToZone(zone) {\n let set = nodesRetainedByZone.get(zone);\n\n if (!set) {\n nodesRetainedByZone.set(zone, set = new Set());\n }\n\n set.add(nodeKey);\n }\n\n if (retainedBy instanceof RetentionZone$1) {\n addToZone(retainedBy);\n } else if (Array.isArray(retainedBy)) {\n for (const zone of retainedBy) {\n addToZone(zone);\n }\n }\n\n return () => {\n if (!Recoil_gkx('recoil_memory_managament_2020')) {\n return;\n }\n\n const {\n retention\n } = store.getState();\n\n function deleteFromZone(zone) {\n const set = retention.nodesRetainedByZone.get(zone);\n set === null || set === void 0 ? void 0 : set.delete(nodeKey);\n\n if (set && set.size === 0) {\n retention.nodesRetainedByZone.delete(zone);\n }\n }\n\n if (retainedBy instanceof RetentionZone$1) {\n deleteFromZone(retainedBy);\n } else if (Array.isArray(retainedBy)) {\n for (const zone of retainedBy) {\n deleteFromZone(zone);\n }\n }\n };\n}\n\nfunction initializeNodeIfNewToStore(store, treeState, key, trigger) {\n const storeState = store.getState();\n\n if (storeState.nodeCleanupFunctions.has(key)) {\n return;\n }\n\n const node = getNode$1(key);\n const retentionCleanup = initializeRetentionForNode(store, key, node.retainedBy);\n const nodeCleanup = node.init(store, treeState, trigger);\n storeState.nodeCleanupFunctions.set(key, () => {\n nodeCleanup();\n retentionCleanup();\n });\n}\n\nfunction initializeNode(store, key, trigger) {\n initializeNodeIfNewToStore(store, store.getState().currentTree, key, trigger);\n}\n\nfunction cleanUpNode(store, key) {\n var _state$nodeCleanupFun;\n\n const state = store.getState();\n (_state$nodeCleanupFun = state.nodeCleanupFunctions.get(key)) === null || _state$nodeCleanupFun === void 0 ? void 0 : _state$nodeCleanupFun();\n state.nodeCleanupFunctions.delete(key);\n} // Get the current value loadable of a node and update the state.\n// Update dependencies and subscriptions for selectors.\n// Update saved value validation for atoms.\n\n\nfunction getNodeLoadable(store, state, key) {\n initializeNodeIfNewToStore(store, state, key, 'get');\n return getNode$1(key).get(store, state);\n} // Peek at the current value loadable for a node without any evaluation or state change\n\n\nfunction peekNodeLoadable(store, state, key) {\n return getNode$1(key).peek(store, state);\n} // Write value directly to state bypassing the Node interface as the node\n// definitions may not have been loaded yet when processing the initial snapshot.\n\n\nfunction setUnvalidatedAtomValue_DEPRECATED(state, key, newValue) {\n var _node$invalidate;\n\n const node = getNodeMaybe$1(key);\n node === null || node === void 0 ? void 0 : (_node$invalidate = node.invalidate) === null || _node$invalidate === void 0 ? void 0 : _node$invalidate.call(node, state);\n return { ...state,\n atomValues: state.atomValues.clone().delete(key),\n nonvalidatedAtoms: state.nonvalidatedAtoms.clone().set(key, newValue),\n dirtyAtoms: setByAddingToSet$1(state.dirtyAtoms, key)\n };\n} // Return the discovered dependencies and values to be written by setting\n// a node value. (Multiple values may be written due to selectors getting to\n// set upstreams; deps may be discovered because of reads in updater functions.)\n\n\nfunction setNodeValue(store, state, key, newValue) {\n const node = getNode$1(key);\n\n if (node.set == null) {\n throw new ReadOnlyRecoilValueError(`Attempt to set read-only RecoilValue: ${key}`);\n }\n\n const set = node.set; // so flow doesn't lose the above refinement.\n\n initializeNodeIfNewToStore(store, state, key, 'set');\n return set(store, state, newValue);\n}\n\nfunction peekNodeInfo(store, state, key) {\n const storeState = store.getState();\n const graph = store.getGraph(state.version);\n const type = getNode$1(key).nodeType;\n return Recoil_lazyProxy({\n type\n }, {\n // $FlowFixMe[underconstrained-implicit-instantiation]\n loadable: () => peekNodeLoadable(store, state, key),\n isActive: () => storeState.knownAtoms.has(key) || storeState.knownSelectors.has(key),\n isSet: () => type === 'selector' ? false : state.atomValues.has(key),\n isModified: () => state.dirtyAtoms.has(key),\n // Report current dependencies. If the node hasn't been evaluated, then\n // dependencies may be missing based on the current state.\n deps: () => {\n var _graph$nodeDeps$get;\n\n return recoilValuesForKeys$1((_graph$nodeDeps$get = graph.nodeDeps.get(key)) !== null && _graph$nodeDeps$get !== void 0 ? _graph$nodeDeps$get : []);\n },\n // Reports all \"current\" subscribers. Evaluating other nodes or\n // previous in-progress async evaluations may introduce new subscribers.\n subscribers: () => {\n var _storeState$nodeToCom, _storeState$nodeToCom2;\n\n return {\n nodes: recoilValuesForKeys$1(Recoil_filterIterable(getDownstreamNodes(store, state, new Set([key])), nodeKey => nodeKey !== key)),\n components: Recoil_mapIterable((_storeState$nodeToCom = (_storeState$nodeToCom2 = storeState.nodeToComponentSubscriptions.get(key)) === null || _storeState$nodeToCom2 === void 0 ? void 0 : _storeState$nodeToCom2.values()) !== null && _storeState$nodeToCom !== void 0 ? _storeState$nodeToCom : [], ([name]) => ({\n name\n }))\n };\n }\n });\n} // Find all of the recursively dependent nodes\n\n\nfunction getDownstreamNodes(store, state, keys) {\n const visitedNodes = new Set();\n const visitingNodes = Array.from(keys);\n const graph = store.getGraph(state.version);\n\n for (let key = visitingNodes.pop(); key; key = visitingNodes.pop()) {\n var _graph$nodeToNodeSubs;\n\n visitedNodes.add(key);\n const subscribedNodes = (_graph$nodeToNodeSubs = graph.nodeToNodeSubscriptions.get(key)) !== null && _graph$nodeToNodeSubs !== void 0 ? _graph$nodeToNodeSubs : emptySet;\n\n for (const downstreamNode of subscribedNodes) {\n if (!visitedNodes.has(downstreamNode)) {\n visitingNodes.push(downstreamNode);\n }\n }\n }\n\n return visitedNodes;\n}\n\nvar Recoil_FunctionalCore = {\n getNodeLoadable,\n peekNodeLoadable,\n setNodeValue,\n initializeNode,\n cleanUpNode,\n setUnvalidatedAtomValue_DEPRECATED,\n peekNodeInfo,\n getDownstreamNodes\n};\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 * @oncall recoil\n */\n\nlet _invalidateMemoizedSnapshot = null;\n\nfunction setInvalidateMemoizedSnapshot(invalidate) {\n _invalidateMemoizedSnapshot = invalidate;\n}\n\nfunction invalidateMemoizedSnapshot() {\n var _invalidateMemoizedSn;\n\n (_invalidateMemoizedSn = _invalidateMemoizedSnapshot) === null || _invalidateMemoizedSn === void 0 ? void 0 : _invalidateMemoizedSn();\n}\n\nvar Recoil_SnapshotCache = {\n setInvalidateMemoizedSnapshot,\n invalidateMemoizedSnapshot\n};\n\nconst {\n getDownstreamNodes: getDownstreamNodes$1,\n getNodeLoadable: getNodeLoadable$1,\n setNodeValue: setNodeValue$1\n} = Recoil_FunctionalCore;\n\nconst {\n getNextComponentID: getNextComponentID$1\n} = Recoil_Keys;\n\nconst {\n getNode: getNode$2,\n getNodeMaybe: getNodeMaybe$2\n} = Recoil_Node;\n\nconst {\n DefaultValue: DefaultValue$1\n} = Recoil_Node;\n\nconst {\n reactMode: reactMode$1\n} = Recoil_ReactMode;\n\nconst {\n AbstractRecoilValue: AbstractRecoilValue$1,\n RecoilState: RecoilState$1,\n RecoilValueReadOnly: RecoilValueReadOnly$1,\n isRecoilValue: isRecoilValue$1\n} = Recoil_RecoilValue$1;\n\nconst {\n invalidateMemoizedSnapshot: invalidateMemoizedSnapshot$1\n} = Recoil_SnapshotCache;\n\n\n\n\n\n\n\nfunction getRecoilValueAsLoadable(store, {\n key\n}, treeState = store.getState().currentTree) {\n var _storeState$nextTree, _storeState$previousT;\n\n // Reading from an older tree can cause bugs because the dependencies that we\n // discover during the read are lost.\n const storeState = store.getState();\n\n if (!(treeState.version === storeState.currentTree.version || treeState.version === ((_storeState$nextTree = storeState.nextTree) === null || _storeState$nextTree === void 0 ? void 0 : _storeState$nextTree.version) || treeState.version === ((_storeState$previousT = storeState.previousTree) === null || _storeState$previousT === void 0 ? void 0 : _storeState$previousT.version))) {\n Recoil_recoverableViolation('Tried to read from a discarded tree');\n }\n\n const loadable = getNodeLoadable$1(store, treeState, key);\n\n if (loadable.state === 'loading') {\n loadable.contents.catch(() => {\n /**\n * HACK: intercept thrown error here to prevent an uncaught promise exception. Ideally this would happen closer to selector\n * execution (perhaps introducing a new ERROR class to be resolved by async selectors that are in an error state)\n */\n return;\n });\n }\n\n return loadable;\n}\n\nfunction applyAtomValueWrites(atomValues, writes) {\n const result = atomValues.clone();\n writes.forEach((v, k) => {\n if (v.state === 'hasValue' && v.contents instanceof DefaultValue$1) {\n result.delete(k);\n } else {\n result.set(k, v);\n }\n });\n return result;\n}\n\nfunction valueFromValueOrUpdater(store, state, {\n key\n}, valueOrUpdater) {\n if (typeof valueOrUpdater === 'function') {\n // Updater form: pass in the current value. Throw if the current value\n // is unavailable (namely when updating an async selector that's\n // pending or errored):\n const current = getNodeLoadable$1(store, state, key);\n\n if (current.state === 'loading') {\n const msg = `Tried to set atom or selector \"${key}\" using an updater function while the current state is pending, this is not currently supported.`;\n Recoil_recoverableViolation(msg);\n throw Recoil_err(msg);\n } else if (current.state === 'hasError') {\n throw current.contents;\n } // T itself may be a function, so our refinement is not sufficient:\n\n\n return valueOrUpdater(current.contents); // flowlint-line unclear-type:off\n } else {\n return valueOrUpdater;\n }\n}\n\nfunction applyAction(store, state, action) {\n if (action.type === 'set') {\n const {\n recoilValue,\n valueOrUpdater\n } = action;\n const newValue = valueFromValueOrUpdater(store, state, recoilValue, valueOrUpdater);\n const writes = setNodeValue$1(store, state, recoilValue.key, newValue);\n\n for (const [key, loadable] of writes.entries()) {\n writeLoadableToTreeState(state, key, loadable);\n }\n } else if (action.type === 'setLoadable') {\n const {\n recoilValue: {\n key\n },\n loadable\n } = action;\n writeLoadableToTreeState(state, key, loadable);\n } else if (action.type === 'markModified') {\n const {\n recoilValue: {\n key\n }\n } = action;\n state.dirtyAtoms.add(key);\n } else if (action.type === 'setUnvalidated') {\n var _node$invalidate;\n\n // Write value directly to state bypassing the Node interface as the node\n // definitions may not have been loaded yet when processing the initial snapshot.\n const {\n recoilValue: {\n key\n },\n unvalidatedValue\n } = action;\n const node = getNodeMaybe$2(key);\n node === null || node === void 0 ? void 0 : (_node$invalidate = node.invalidate) === null || _node$invalidate === void 0 ? void 0 : _node$invalidate.call(node, state);\n state.atomValues.delete(key);\n state.nonvalidatedAtoms.set(key, unvalidatedValue);\n state.dirtyAtoms.add(key);\n } else {\n Recoil_recoverableViolation(`Unknown action ${action.type}`);\n }\n}\n\nfunction writeLoadableToTreeState(state, key, loadable) {\n if (loadable.state === 'hasValue' && loadable.contents instanceof DefaultValue$1) {\n state.atomValues.delete(key);\n } else {\n state.atomValues.set(key, loadable);\n }\n\n state.dirtyAtoms.add(key);\n state.nonvalidatedAtoms.delete(key);\n}\n\nfunction applyActionsToStore(store, actions) {\n store.replaceState(state => {\n const newState = copyTreeState(state);\n\n for (const action of actions) {\n applyAction(store, newState, action);\n }\n\n invalidateDownstreams(store, newState);\n invalidateMemoizedSnapshot$1();\n return newState;\n });\n}\n\nfunction queueOrPerformStateUpdate(store, action) {\n if (batchStack.length) {\n const actionsByStore = batchStack[batchStack.length - 1];\n let actions = actionsByStore.get(store);\n\n if (!actions) {\n actionsByStore.set(store, actions = []);\n }\n\n actions.push(action);\n } else {\n applyActionsToStore(store, [action]);\n }\n}\n\nconst batchStack = [];\n\nfunction batchStart() {\n const actionsByStore = new Map();\n batchStack.push(actionsByStore);\n return () => {\n for (const [store, actions] of actionsByStore) {\n applyActionsToStore(store, actions);\n }\n\n const popped = batchStack.pop();\n\n if (popped !== actionsByStore) {\n Recoil_recoverableViolation('Incorrect order of batch popping');\n }\n };\n}\n\nfunction copyTreeState(state) {\n return { ...state,\n atomValues: state.atomValues.clone(),\n nonvalidatedAtoms: state.nonvalidatedAtoms.clone(),\n dirtyAtoms: new Set(state.dirtyAtoms)\n };\n}\n\nfunction invalidateDownstreams(store, state) {\n // Inform any nodes that were changed or downstream of changes so that they\n // can clear out any caches as needed due to the update:\n const downstreams = getDownstreamNodes$1(store, state, state.dirtyAtoms);\n\n for (const key of downstreams) {\n var _getNodeMaybe, _getNodeMaybe$invalid;\n\n (_getNodeMaybe = getNodeMaybe$2(key)) === null || _getNodeMaybe === void 0 ? void 0 : (_getNodeMaybe$invalid = _getNodeMaybe.invalidate) === null || _getNodeMaybe$invalid === void 0 ? void 0 : _getNodeMaybe$invalid.call(_getNodeMaybe, state);\n }\n}\n\nfunction setRecoilValue(store, recoilValue, valueOrUpdater) {\n queueOrPerformStateUpdate(store, {\n type: 'set',\n recoilValue,\n valueOrUpdater\n });\n}\n\nfunction setRecoilValueLoadable(store, recoilValue, loadable) {\n if (loadable instanceof DefaultValue$1) {\n return setRecoilValue(store, recoilValue, loadable);\n }\n\n queueOrPerformStateUpdate(store, {\n type: 'setLoadable',\n recoilValue,\n loadable: loadable\n });\n}\n\nfunction markRecoilValueModified(store, recoilValue) {\n queueOrPerformStateUpdate(store, {\n type: 'markModified',\n recoilValue\n });\n}\n\nfunction setUnvalidatedRecoilValue(store, recoilValue, unvalidatedValue) {\n queueOrPerformStateUpdate(store, {\n type: 'setUnvalidated',\n recoilValue,\n unvalidatedValue\n });\n}\n\nfunction subscribeToRecoilValue(store, {\n key\n}, callback, componentDebugName = null) {\n const subID = getNextComponentID$1();\n const storeState = store.getState();\n\n if (!storeState.nodeToComponentSubscriptions.has(key)) {\n storeState.nodeToComponentSubscriptions.set(key, new Map());\n }\n\n Recoil_nullthrows(storeState.nodeToComponentSubscriptions.get(key)).set(subID, [componentDebugName !== null && componentDebugName !== void 0 ? componentDebugName : '', callback]); // Handle the case that, during the same tick that we are subscribing, an atom\n // has been updated by some effect handler. Otherwise we will miss the update.\n\n const mode = reactMode$1();\n\n if (mode.early && (mode.mode === 'LEGACY' || mode.mode === 'MUTABLE_SOURCE')) {\n const nextTree = store.getState().nextTree;\n\n if (nextTree && nextTree.dirtyAtoms.has(key)) {\n callback(nextTree);\n }\n }\n\n return {\n release: () => {\n const releaseStoreState = store.getState();\n const subs = releaseStoreState.nodeToComponentSubscriptions.get(key);\n\n if (subs === undefined || !subs.has(subID)) {\n Recoil_recoverableViolation(`Subscription missing at release time for atom ${key}. This is a bug in Recoil.`);\n return;\n }\n\n subs.delete(subID);\n\n if (subs.size === 0) {\n releaseStoreState.nodeToComponentSubscriptions.delete(key);\n }\n }\n };\n}\n\nfunction refreshRecoilValue(store, recoilValue) {\n var _node$clearCache;\n\n const {\n currentTree\n } = store.getState();\n const node = getNode$2(recoilValue.key);\n (_node$clearCache = node.clearCache) === null || _node$clearCache === void 0 ? void 0 : _node$clearCache.call(node, store, currentTree);\n}\n\nvar Recoil_RecoilValueInterface = {\n RecoilValueReadOnly: RecoilValueReadOnly$1,\n AbstractRecoilValue: AbstractRecoilValue$1,\n RecoilState: RecoilState$1,\n getRecoilValueAsLoadable,\n setRecoilValue,\n setRecoilValueLoadable,\n markRecoilValueModified,\n setUnvalidatedRecoilValue,\n subscribeToRecoilValue,\n isRecoilValue: isRecoilValue$1,\n applyAtomValueWrites,\n // TODO Remove export when deprecating initialStoreState_DEPRECATED in RecoilRoot\n batchStart,\n writeLoadableToTreeState,\n invalidateDownstreams,\n copyTreeState,\n refreshRecoilValue\n};\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 * @oncall recoil\n */\n/**\n * The someSet() method tests whether some elements in the given Set pass the\n * test implemented by the provided function.\n */\n\nfunction someSet(set, callback, context) {\n const iterator = set.entries();\n let current = iterator.next();\n\n while (!current.done) {\n const entry = current.value;\n\n if (callback.call(context, entry[1], entry[0], set)) {\n return true;\n }\n\n current = iterator.next();\n }\n\n return false;\n}\n\nvar Recoil_someSet = someSet;\n\nconst {\n cleanUpNode: cleanUpNode$1\n} = Recoil_FunctionalCore;\n\nconst {\n deleteNodeConfigIfPossible: deleteNodeConfigIfPossible$1,\n getNode: getNode$3\n} = Recoil_Node;\n\nconst {\n RetentionZone: RetentionZone$2\n} = Recoil_RetentionZone;\n\n\n\n\n\n\n\n // Components that aren't mounted after suspending for this long will be assumed\n// to be discarded and their resources released.\n\n\nconst SUSPENSE_TIMEOUT_MS = 120000;\nconst emptySet$1 = new Set();\n\nfunction releaseRetainablesNowOnCurrentTree(store, retainables) {\n const storeState = store.getState();\n const treeState = storeState.currentTree;\n\n if (storeState.nextTree) {\n Recoil_recoverableViolation('releaseNodesNowOnCurrentTree should only be called at the end of a batch');\n return; // leak memory rather than erase something that's about to be used.\n }\n\n const nodes = new Set();\n\n for (const r of retainables) {\n if (r instanceof RetentionZone$2) {\n for (const n of nodesRetainedByZone(storeState, r)) {\n nodes.add(n);\n }\n } else {\n nodes.add(r);\n }\n }\n\n const releasableNodes = findReleasableNodes(store, nodes);\n\n for (const node of releasableNodes) {\n releaseNode(store, treeState, node);\n }\n}\n\nfunction findReleasableNodes(store, searchFromNodes) {\n const storeState = store.getState();\n const treeState = storeState.currentTree;\n const graph = store.getGraph(treeState.version);\n const releasableNodes = new Set(); // mutated to collect answer\n\n const nonReleasableNodes = new Set();\n findReleasableNodesInner(searchFromNodes);\n return releasableNodes;\n\n function findReleasableNodesInner(searchFromNodes) {\n const releasableNodesFoundThisIteration = new Set();\n const downstreams = getDownstreamNodesInTopologicalOrder(store, treeState, searchFromNodes, releasableNodes, // don't descend into these\n nonReleasableNodes // don't descend into these\n ); // Find which of the downstream nodes are releasable and which are not:\n\n for (const node of downstreams) {\n var _storeState$retention;\n\n // Not releasable if configured to be retained forever:\n if (getNode$3(node).retainedBy === 'recoilRoot') {\n nonReleasableNodes.add(node);\n continue;\n } // Not releasable if retained directly by a component:\n\n\n if (((_storeState$retention = storeState.retention.referenceCounts.get(node)) !== null && _storeState$retention !== void 0 ? _storeState$retention : 0) > 0) {\n nonReleasableNodes.add(node);\n continue;\n } // Not releasable if retained by a zone:\n\n\n if (zonesThatCouldRetainNode(node).some(z => storeState.retention.referenceCounts.get(z))) {\n nonReleasableNodes.add(node);\n continue;\n } // Not releasable if it has a non-releasable child (which will already be in\n // nonReleasableNodes because we are going in topological order):\n\n\n const nodeChildren = graph.nodeToNodeSubscriptions.get(node);\n\n if (nodeChildren && Recoil_someSet(nodeChildren, child => nonReleasableNodes.has(child))) {\n nonReleasableNodes.add(node);\n continue;\n }\n\n releasableNodes.add(node);\n releasableNodesFoundThisIteration.add(node);\n } // If we found any releasable nodes, we need to walk UP from those nodes to\n // find whether their parents can now be released as well:\n\n\n const parents = new Set();\n\n for (const node of releasableNodesFoundThisIteration) {\n for (const parent of (_graph$nodeDeps$get = graph.nodeDeps.get(node)) !== null && _graph$nodeDeps$get !== void 0 ? _graph$nodeDeps$get : emptySet$1) {\n var _graph$nodeDeps$get;\n\n if (!releasableNodes.has(parent)) {\n parents.add(parent);\n }\n }\n }\n\n if (parents.size) {\n findReleasableNodesInner(parents);\n }\n }\n} // Children before parents\n\n\nfunction getDownstreamNodesInTopologicalOrder(store, treeState, nodes, // Mutable set is destroyed in place\ndoNotDescendInto1, doNotDescendInto2) {\n const graph = store.getGraph(treeState.version);\n const answer = [];\n const visited = new Set();\n\n while (nodes.size > 0) {\n visit(Recoil_nullthrows(nodes.values().next().value));\n }\n\n return answer;\n\n function visit(node) {\n if (doNotDescendInto1.has(node) || doNotDescendInto2.has(node)) {\n nodes.delete(node);\n return;\n }\n\n if (visited.has(node)) {\n return;\n }\n\n const children = graph.nodeToNodeSubscriptions.get(node);\n\n if (children) {\n for (const child of children) {\n visit(child);\n }\n }\n\n visited.add(node);\n nodes.delete(node);\n answer.push(node);\n }\n}\n\nfunction releaseNode(store, treeState, node) {\n if (!Recoil_gkx('recoil_memory_managament_2020')) {\n return;\n } // Atom effects, in-closure caches, etc.:\n\n\n cleanUpNode$1(store, node); // Delete from store state:\n\n const storeState = store.getState();\n storeState.knownAtoms.delete(node);\n storeState.knownSelectors.delete(node);\n storeState.nodeTransactionSubscriptions.delete(node);\n storeState.retention.referenceCounts.delete(node);\n const zones = zonesThatCouldRetainNode(node);\n\n for (const zone of zones) {\n var _storeState$retention2;\n\n (_storeState$retention2 = storeState.retention.nodesRetainedByZone.get(zone)) === null || _storeState$retention2 === void 0 ? void 0 : _storeState$retention2.delete(node);\n } // Note that we DO NOT delete from nodeToComponentSubscriptions because this\n // already happens when the last component that was retaining the node unmounts,\n // and this could happen either before or after that.\n // Delete from TreeState and dep graph:\n\n\n treeState.atomValues.delete(node);\n treeState.dirtyAtoms.delete(node);\n treeState.nonvalidatedAtoms.delete(node);\n const graph = storeState.graphsByVersion.get(treeState.version);\n\n if (graph) {\n const deps = graph.nodeDeps.get(node);\n\n if (deps !== undefined) {\n graph.nodeDeps.delete(node);\n\n for (const dep of deps) {\n var _graph$nodeToNodeSubs;\n\n (_graph$nodeToNodeSubs = graph.nodeToNodeSubscriptions.get(dep)) === null || _graph$nodeToNodeSubs === void 0 ? void 0 : _graph$nodeToNodeSubs.delete(node);\n }\n } // No need to delete sub's deps as there should be no subs at this point.\n // But an invariant would require deleting nodes in topological order.\n\n\n graph.nodeToNodeSubscriptions.delete(node);\n } // Node config (for family members only as their configs can be recreated, and\n // only if they are not retained within any other Stores):\n\n\n deleteNodeConfigIfPossible$1(node);\n}\n\nfunction nodesRetainedByZone(storeState, zone) {\n var _storeState$retention3;\n\n return (_storeState$retention3 = storeState.retention.nodesRetainedByZone.get(zone)) !== null && _storeState$retention3 !== void 0 ? _storeState$retention3 : emptySet$1;\n}\n\nfunction zonesThatCouldRetainNode(node) {\n const retainedBy = getNode$3(node).retainedBy;\n\n if (retainedBy === undefined || retainedBy === 'components' || retainedBy === 'recoilRoot') {\n return [];\n } else if (retainedBy instanceof RetentionZone$2) {\n return [retainedBy];\n } else {\n return retainedBy; // it's an array of zones\n }\n}\n\nfunction scheduleOrPerformPossibleReleaseOfRetainable(store, retainable) {\n const state = store.getState();\n\n if (state.nextTree) {\n state.retention.retainablesToCheckForRelease.add(retainable);\n } else {\n releaseRetainablesNowOnCurrentTree(store, new Set([retainable]));\n }\n}\n\nfunction updateRetainCount(store, retainable, delta) {\n var _map$get;\n\n if (!Recoil_gkx('recoil_memory_managament_2020')) {\n return;\n }\n\n const map = store.getState().retention.referenceCounts;\n const newCount = ((_map$get = map.get(retainable)) !== null && _map$get !== void 0 ? _map$get : 0) + delta;\n\n if (newCount === 0) {\n updateRetainCountToZero(store, retainable);\n } else {\n map.set(retainable, newCount);\n }\n}\n\nfunction updateRetainCountToZero(store, retainable) {\n if (!Recoil_gkx('recoil_memory_managament_2020')) {\n return;\n }\n\n const map = store.getState().retention.referenceCounts;\n map.delete(retainable);\n scheduleOrPerformPossibleReleaseOfRetainable(store, retainable);\n}\n\nfunction releaseScheduledRetainablesNow(store) {\n if (!Recoil_gkx('recoil_memory_managament_2020')) {\n return;\n }\n\n const state = store.getState();\n releaseRetainablesNowOnCurrentTree(store, state.retention.retainablesToCheckForRelease);\n state.retention.retainablesToCheckForRelease.clear();\n}\n\nfunction retainedByOptionWithDefault(r) {\n // The default will change from 'recoilRoot' to 'components' in the future.\n return r === undefined ? 'recoilRoot' : r;\n}\n\nvar Recoil_Retention = {\n SUSPENSE_TIMEOUT_MS,\n updateRetainCount,\n updateRetainCountToZero,\n releaseScheduledRetainablesNow,\n retainedByOptionWithDefault\n};\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * This is to export esstiential functions from react-dom\n * for our web build\n *\n * \n * @format\n * @oncall recoil\n */\nconst {\n unstable_batchedUpdates\n} = reactDom;\n\nvar ReactBatchedUpdates = {\n unstable_batchedUpdates\n};\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * This is to export esstiential functions from react-dom\n * for our web build\n *\n * \n * @format\n * @oncall recoil\n */\n// @fb-only: const {unstable_batchedUpdates} = require('ReactDOMComet');\n// prettier-ignore\nconst {\n unstable_batchedUpdates: unstable_batchedUpdates$1\n} = ReactBatchedUpdates; // @oss-only\n\n\nvar Recoil_ReactBatchedUpdates = {\n unstable_batchedUpdates: unstable_batchedUpdates$1\n};\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 * @oncall recoil\n */\nconst {\n batchStart: batchStart$1\n} = Recoil_RecoilValueInterface;\n\nconst {\n unstable_batchedUpdates: unstable_batchedUpdates$2\n} = Recoil_ReactBatchedUpdates; // flowlint-next-line unclear-type:off\n\n\n/*\n * During SSR, unstable_batchedUpdates may be undefined so this\n * falls back to a basic function that executes the batch\n */\nlet batcher = unstable_batchedUpdates$2 || (batchFn => batchFn());\n/**\n * Sets the provided batcher function as the batcher function used by Recoil.\n *\n * Set the batcher to a custom batcher for your renderer,\n * if you use a renderer other than React DOM or React Native.\n */\n\n\nconst setBatcher = newBatcher => {\n batcher = newBatcher;\n};\n/**\n * Returns the current batcher function.\n */\n\n\nconst getBatcher = () => batcher;\n/**\n * Calls the current batcher function and passes the\n * provided callback function.\n */\n\n\nconst batchUpdates = callback => {\n batcher(() => {\n let batchEnd = () => undefined;\n\n try {\n batchEnd = batchStart$1();\n callback();\n } finally {\n batchEnd();\n }\n });\n};\n\nvar Recoil_Batching = {\n getBatcher,\n setBatcher,\n batchUpdates\n};\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 * @oncall recoil\n */\n/**\n * Combines multiple Iterables into a single Iterable.\n * Traverses the input Iterables in the order provided and maintains the order\n * of their elements.\n *\n * Example:\n * ```\n * const r = Array.from(concatIterables(['a', 'b'], ['c'], ['d', 'e', 'f']));\n * r == ['a', 'b', 'c', 'd', 'e', 'f'];\n * ```\n */\n\nfunction* concatIterables(iters) {\n for (const iter of iters) {\n for (const val of iter) {\n yield val;\n }\n }\n}\n\nvar Recoil_concatIterables = concatIterables;\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 * @oncall recoil\n */\n/* eslint-disable fb-www/typeof-undefined */\n\nconst isSSR = // $FlowFixMe(site=recoil) Window does not have a FlowType definition https://github.com/facebook/flow/issues/6709\ntypeof Window === 'undefined' || typeof window === 'undefined';\n/* eslint-enable fb-www/typeof-undefined */\n\nconst isWindow = value => !isSSR && ( // $FlowFixMe(site=recoil) Window does not have a FlowType definition https://github.com/facebook/flow/issues/6709\nvalue === window || value instanceof Window);\n\nconst isReactNative = typeof navigator !== 'undefined' && navigator.product === 'ReactNative'; // eslint-disable-line fb-www/typeof-undefined\n\nvar Recoil_Environment = {\n isSSR,\n isReactNative,\n isWindow\n};\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 * @oncall recoil\n */\n/**\n * Caches a function's results based on the key returned by the passed\n * hashFunction.\n */\n\nfunction memoizeWithArgsHash(fn, hashFunction) {\n let cache;\n return (...args) => {\n if (!cache) {\n cache = {};\n }\n\n const key = hashFunction(...args);\n\n if (!Object.hasOwnProperty.call(cache, key)) {\n cache[key] = fn(...args);\n }\n\n return cache[key];\n };\n}\n/**\n * Caches a function's results based on a comparison of the arguments.\n * Only caches the last return of the function.\n * Defaults to reference equality\n */\n\n\nfunction memoizeOneWithArgsHash(fn, hashFunction) {\n let lastKey;\n let lastResult; // breaking cache when arguments change\n\n return (...args) => {\n const key = hashFunction(...args);\n\n if (lastKey === key) {\n return lastResult;\n }\n\n lastKey = key;\n lastResult = fn(...args);\n return lastResult;\n };\n}\n/**\n * Caches a function's results based on a comparison of the arguments.\n * Only caches the last return of the function.\n * Defaults to reference equality\n */\n\n\nfunction memoizeOneWithArgsHashAndInvalidation(fn, hashFunction) {\n let lastKey;\n let lastResult; // breaking cache when arguments change\n\n const memoizedFn = (...args) => {\n const key = hashFunction(...args);\n\n if (lastKey === key) {\n return lastResult;\n }\n\n lastKey = key;\n lastResult = fn(...args);\n return lastResult;\n };\n\n const invalidate = () => {\n lastKey = null;\n };\n\n return [memoizedFn, invalidate];\n}\n\nvar Recoil_Memoize = {\n memoizeWithArgsHash,\n memoizeOneWithArgsHash,\n memoizeOneWithArgsHashAndInvalidation\n};\n\nconst {\n batchUpdates: batchUpdates$1\n} = Recoil_Batching;\n\nconst {\n initializeNode: initializeNode$1,\n peekNodeInfo: peekNodeInfo$1\n} = Recoil_FunctionalCore;\n\nconst {\n graph: graph$1\n} = Recoil_Graph;\n\nconst {\n getNextStoreID: getNextStoreID$1\n} = Recoil_Keys;\n\nconst {\n DEFAULT_VALUE: DEFAULT_VALUE$1,\n recoilValues: recoilValues$1,\n recoilValuesForKeys: recoilValuesForKeys$2\n} = Recoil_Node;\n\nconst {\n AbstractRecoilValue: AbstractRecoilValue$2,\n getRecoilValueAsLoadable: getRecoilValueAsLoadable$1,\n setRecoilValue: setRecoilValue$1,\n setUnvalidatedRecoilValue: setUnvalidatedRecoilValue$1\n} = Recoil_RecoilValueInterface;\n\nconst {\n updateRetainCount: updateRetainCount$1\n} = Recoil_Retention;\n\nconst {\n setInvalidateMemoizedSnapshot: setInvalidateMemoizedSnapshot$1\n} = Recoil_SnapshotCache;\n\nconst {\n getNextTreeStateVersion: getNextTreeStateVersion$2,\n makeEmptyStoreState: makeEmptyStoreState$1\n} = Recoil_State;\n\n\n\nconst {\n isSSR: isSSR$1\n} = Recoil_Environment;\n\n\n\n\n\n\n\n\n\nconst {\n memoizeOneWithArgsHashAndInvalidation: memoizeOneWithArgsHashAndInvalidation$1\n} = Recoil_Memoize;\n\n\n\n // Opaque at this surface because it's part of the public API from here.\n\n\nconst retainWarning = `\nRecoil Snapshots only last for the duration of the callback they are provided to. To keep a Snapshot longer, do this:\n\n const release = snapshot.retain();\n try {\n await doSomethingWithSnapshot(snapshot);\n } finally {\n release();\n }\n\nThis is currently a DEV-only warning but will become a thrown exception in the next release of Recoil.\n`; // A \"Snapshot\" is \"read-only\" and captures a specific set of values of atoms.\n// However, the data-flow-graph and selector values may evolve as selector\n// evaluation functions are executed and async selectors resolve.\n\nclass Snapshot {\n // eslint-disable-next-line fb-www/no-uninitialized-properties\n constructor(storeState, parentStoreID) {\n _defineProperty(this, \"_store\", void 0);\n\n _defineProperty(this, \"_refCount\", 1);\n\n _defineProperty(this, \"getLoadable\", recoilValue => {\n this.checkRefCount_INTERNAL();\n return getRecoilValueAsLoadable$1(this._store, recoilValue);\n });\n\n _defineProperty(this, \"getPromise\", recoilValue => {\n this.checkRefCount_INTERNAL();\n return this.getLoadable(recoilValue).toPromise();\n });\n\n _defineProperty(this, \"getNodes_UNSTABLE\", opt => {\n this.checkRefCount_INTERNAL(); // TODO Deal with modified selectors\n\n if ((opt === null || opt === void 0 ? void 0 : opt.isModified) === true) {\n if ((opt === null || opt === void 0 ? void 0 : opt.isInitialized) === false) {\n return [];\n }\n\n const state = this._store.getState().currentTree;\n\n return recoilValuesForKeys$2(state.dirtyAtoms);\n }\n\n const knownAtoms = this._store.getState().knownAtoms;\n\n const knownSelectors = this._store.getState().knownSelectors;\n\n return (opt === null || opt === void 0 ? void 0 : opt.isInitialized) == null ? recoilValues$1.values() : opt.isInitialized === true ? recoilValuesForKeys$2(Recoil_concatIterables([knownAtoms, knownSelectors])) : Recoil_filterIterable(recoilValues$1.values(), ({\n key\n }) => !knownAtoms.has(key) && !knownSelectors.has(key));\n });\n\n _defineProperty(this, \"getInfo_UNSTABLE\", ({\n key\n }) => {\n this.checkRefCount_INTERNAL();\n return peekNodeInfo$1(this._store, this._store.getState().currentTree, key);\n });\n\n _defineProperty(this, \"map\", mapper => {\n this.checkRefCount_INTERNAL();\n const mutableSnapshot = new MutableSnapshot(this, batchUpdates$1);\n mapper(mutableSnapshot); // if removing batchUpdates from `set` add it here\n\n return mutableSnapshot;\n });\n\n _defineProperty(this, \"asyncMap\", async mapper => {\n this.checkRefCount_INTERNAL();\n const mutableSnapshot = new MutableSnapshot(this, batchUpdates$1);\n mutableSnapshot.retain(); // Retain new snapshot during async mapper\n\n await mapper(mutableSnapshot); // Continue to retain the new snapshot for the user, but auto-release it\n // after the next tick, the same as a new synchronous snapshot.\n\n mutableSnapshot.autoRelease_INTERNAL();\n return mutableSnapshot;\n });\n\n this._store = {\n storeID: getNextStoreID$1(),\n parentStoreID,\n getState: () => storeState,\n replaceState: replacer => {\n // no batching, so nextTree is never active\n storeState.currentTree = replacer(storeState.currentTree);\n },\n getGraph: version => {\n const graphs = storeState.graphsByVersion;\n\n if (graphs.has(version)) {\n return Recoil_nullthrows(graphs.get(version));\n }\n\n const newGraph = graph$1();\n graphs.set(version, newGraph);\n return newGraph;\n },\n subscribeToTransactions: () => ({\n release: () => {}\n }),\n addTransactionMetadata: () => {\n throw Recoil_err('Cannot subscribe to Snapshots');\n }\n }; // Initialize any nodes that are live in the parent store (primarily so that\n // this snapshot gets counted towards the node's live stores count).\n // TODO Optimize this when cloning snapshots for callbacks\n\n for (const nodeKey of this._store.getState().knownAtoms) {\n initializeNode$1(this._store, nodeKey, 'get');\n updateRetainCount$1(this._store, nodeKey, 1);\n }\n\n this.autoRelease_INTERNAL();\n }\n\n retain() {\n if (this._refCount <= 0) {\n if (process.env.NODE_ENV !== \"production\") {\n throw Recoil_err('Snapshot has already been released.');\n } else {\n Recoil_recoverableViolation('Attempt to retain() Snapshot that was already released.');\n }\n }\n\n this._refCount++;\n let released = false;\n return () => {\n if (!released) {\n released = true;\n\n this._release();\n }\n };\n }\n /**\n * Release the snapshot on the next tick. This means the snapshot is retained\n * during the execution of the current function using it.\n */\n\n\n autoRelease_INTERNAL() {\n if (!isSSR$1) {\n // Use timeout of 10 to workaround Firefox issue: https://github.com/facebookexperimental/Recoil/issues/1936\n window.setTimeout(() => this._release(), 10);\n }\n }\n\n _release() {\n this._refCount--;\n\n if (this._refCount === 0) {\n this._store.getState().nodeCleanupFunctions.forEach(cleanup => cleanup());\n\n this._store.getState().nodeCleanupFunctions.clear();\n\n if (!Recoil_gkx('recoil_memory_managament_2020')) {\n return;\n } // Temporarily nerfing this to allow us to find broken call sites without\n // actually breaking anybody yet.\n // for (const k of this._store.getState().knownAtoms) {\n // updateRetainCountToZero(this._store, k);\n // }\n\n } else if (this._refCount < 0) {\n if (process.env.NODE_ENV !== \"production\") {\n Recoil_recoverableViolation('Snapshot released an extra time.');\n }\n }\n }\n\n isRetained() {\n return this._refCount > 0;\n }\n\n checkRefCount_INTERNAL() {\n if (Recoil_gkx('recoil_memory_managament_2020') && this._refCount <= 0) {\n if (process.env.NODE_ENV !== \"production\") {\n Recoil_recoverableViolation(retainWarning);\n } // What we will ship later:\n // throw err(retainWarning);\n\n }\n }\n\n getStore_INTERNAL() {\n this.checkRefCount_INTERNAL();\n return this._store;\n }\n\n getID() {\n this.checkRefCount_INTERNAL();\n return this._store.getState().currentTree.stateID;\n }\n\n getStoreID() {\n this.checkRefCount_INTERNAL();\n return this._store.storeID;\n } // We want to allow the methods to be destructured and used as accessors\n\n /* eslint-disable fb-www/extra-arrow-initializer */\n\n /* eslint-enable fb-www/extra-arrow-initializer */\n\n\n}\n\nfunction cloneStoreState(store, treeState, bumpVersion = false) {\n const storeState = store.getState();\n const version = bumpVersion ? getNextTreeStateVersion$2() : treeState.version;\n return {\n // Always clone the TreeState to isolate stores from accidental mutations.\n // For example, reading a selector from a cloned snapshot shouldn't cache\n // in the original treestate which may cause the original to skip\n // initialization of upstream atoms.\n currentTree: {\n // TODO snapshots shouldn't really have versions because a new version number\n // is always assigned when the snapshot is gone to.\n version: bumpVersion ? version : treeState.version,\n stateID: bumpVersion ? version : treeState.stateID,\n transactionMetadata: { ...treeState.transactionMetadata\n },\n dirtyAtoms: new Set(treeState.dirtyAtoms),\n atomValues: treeState.atomValues.clone(),\n nonvalidatedAtoms: treeState.nonvalidatedAtoms.clone()\n },\n commitDepth: 0,\n nextTree: null,\n previousTree: null,\n knownAtoms: new Set(storeState.knownAtoms),\n // FIXME here's a copy\n knownSelectors: new Set(storeState.knownSelectors),\n // FIXME here's a copy\n transactionSubscriptions: new Map(),\n nodeTransactionSubscriptions: new Map(),\n nodeToComponentSubscriptions: new Map(),\n queuedComponentCallbacks_DEPRECATED: [],\n suspendedComponentResolvers: new Set(),\n graphsByVersion: new Map().set(version, store.getGraph(treeState.version)),\n retention: {\n referenceCounts: new Map(),\n nodesRetainedByZone: new Map(),\n retainablesToCheckForRelease: new Set()\n },\n // FIXME here's a copy\n // Create blank cleanup handlers for atoms so snapshots don't re-run\n // atom effects.\n nodeCleanupFunctions: new Map(Recoil_mapIterable(storeState.nodeCleanupFunctions.entries(), ([key]) => [key, () => {}]))\n };\n} // Factory to build a fresh snapshot\n\n\nfunction freshSnapshot(initializeState) {\n const snapshot = new Snapshot(makeEmptyStoreState$1());\n return initializeState != null ? snapshot.map(initializeState) : snapshot;\n} // Factory to clone a snapshot state\n\n\nconst [memoizedCloneSnapshot, invalidateMemoizedSnapshot$2] = memoizeOneWithArgsHashAndInvalidation$1( // $FlowFixMe[missing-local-annot]\n(store, version) => {\n var _storeState$nextTree;\n\n const storeState = store.getState();\n const treeState = version === 'latest' ? (_storeState$nextTree = storeState.nextTree) !== null && _storeState$nextTree !== void 0 ? _storeState$nextTree : storeState.currentTree : Recoil_nullthrows(storeState.previousTree);\n return new Snapshot(cloneStoreState(store, treeState), store.storeID);\n}, (store, version) => {\n var _store$getState$nextT, _store$getState$previ;\n\n return String(version) + String(store.storeID) + String((_store$getState$nextT = store.getState().nextTree) === null || _store$getState$nextT === void 0 ? void 0 : _store$getState$nextT.version) + String(store.getState().currentTree.version) + String((_store$getState$previ = store.getState().previousTree) === null || _store$getState$previ === void 0 ? void 0 : _store$getState$previ.version);\n}); // Avoid circular dependencies\n\nsetInvalidateMemoizedSnapshot$1(invalidateMemoizedSnapshot$2);\n\nfunction cloneSnapshot(store, version = 'latest') {\n const snapshot = memoizedCloneSnapshot(store, version);\n\n if (!snapshot.isRetained()) {\n invalidateMemoizedSnapshot$2();\n return memoizedCloneSnapshot(store, version);\n }\n\n return snapshot;\n}\n\nclass MutableSnapshot extends Snapshot {\n constructor(snapshot, batch) {\n super(cloneStoreState(snapshot.getStore_INTERNAL(), snapshot.getStore_INTERNAL().getState().currentTree, true), snapshot.getStoreID());\n\n _defineProperty(this, \"_batch\", void 0);\n\n _defineProperty(this, \"set\", (recoilState, newValueOrUpdater) => {\n this.checkRefCount_INTERNAL();\n const store = this.getStore_INTERNAL(); // This batchUpdates ensures this `set` is applied immediately and you can\n // read the written value after calling `set`. I would like to remove this\n // behavior and only batch in `Snapshot.map`, but this would be a breaking\n // change potentially.\n\n this._batch(() => {\n updateRetainCount$1(store, recoilState.key, 1);\n setRecoilValue$1(this.getStore_INTERNAL(), recoilState, newValueOrUpdater);\n });\n });\n\n _defineProperty(this, \"reset\", recoilState => {\n this.checkRefCount_INTERNAL();\n const store = this.getStore_INTERNAL(); // See note at `set` about batched updates.\n\n this._batch(() => {\n updateRetainCount$1(store, recoilState.key, 1);\n setRecoilValue$1(this.getStore_INTERNAL(), recoilState, DEFAULT_VALUE$1);\n });\n });\n\n _defineProperty(this, \"setUnvalidatedAtomValues_DEPRECATED\", values => {\n this.checkRefCount_INTERNAL();\n const store = this.getStore_INTERNAL(); // See note at `set` about batched updates.\n\n batchUpdates$1(() => {\n for (const [k, v] of values.entries()) {\n updateRetainCount$1(store, k, 1);\n setUnvalidatedRecoilValue$1(store, new AbstractRecoilValue$2(k), v);\n }\n });\n });\n\n this._batch = batch;\n }\n\n}\n\nvar Recoil_Snapshot = {\n Snapshot,\n MutableSnapshot,\n freshSnapshot,\n cloneSnapshot\n};\n\nvar Recoil_Snapshot_1 = Recoil_Snapshot.Snapshot;\nvar Recoil_Snapshot_2 = Recoil_Snapshot.MutableSnapshot;\nvar Recoil_Snapshot_3 = Recoil_Snapshot.freshSnapshot;\nvar Recoil_Snapshot_4 = Recoil_Snapshot.cloneSnapshot;\n\nvar Recoil_Snapshot$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n Snapshot: Recoil_Snapshot_1,\n MutableSnapshot: Recoil_Snapshot_2,\n freshSnapshot: Recoil_Snapshot_3,\n cloneSnapshot: Recoil_Snapshot_4\n});\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 * @oncall recoil\n */\n\nfunction unionSets(...sets) {\n const result = new Set();\n\n for (const set of sets) {\n for (const value of set) {\n result.add(value);\n }\n }\n\n return result;\n}\n\nvar Recoil_unionSets = unionSets;\n\nconst {\n useRef\n} = react;\n/**\n * The same as `useRef()` except that if a function is specified then it will\n * call that function to get the value to initialize the reference with.\n * This is similar to how `useState()` behaves when given a function. It allows\n * the user to avoid generating the initial value for subsequent renders.\n * The tradeoff is that to set the reference to a function itself you need to\n * nest it: useRefInitOnce(() => () => {...});\n */\n\n\nfunction useRefInitOnce(initialValue) {\n // $FlowExpectedError[incompatible-call]\n const ref = useRef(initialValue);\n\n if (ref.current === initialValue && typeof initialValue === 'function') {\n // $FlowExpectedError[incompatible-use]\n ref.current = initialValue();\n }\n\n return ref;\n}\n\nvar Recoil_useRefInitOnce = useRefInitOnce;\n\n// @fb-only: const RecoilusagelogEvent = require('RecoilusagelogEvent');\n// @fb-only: const RecoilUsageLogFalcoEvent = require('RecoilUsageLogFalcoEvent');\n// @fb-only: const URI = require('URI');\n\n\nconst {\n getNextTreeStateVersion: getNextTreeStateVersion$3,\n makeEmptyStoreState: makeEmptyStoreState$2\n} = Recoil_State;\n\nconst {\n cleanUpNode: cleanUpNode$2,\n getDownstreamNodes: getDownstreamNodes$2,\n initializeNode: initializeNode$2,\n setNodeValue: setNodeValue$2,\n setUnvalidatedAtomValue_DEPRECATED: setUnvalidatedAtomValue_DEPRECATED$1\n} = Recoil_FunctionalCore;\n\nconst {\n graph: graph$2\n} = Recoil_Graph;\n\nconst {\n cloneGraph: cloneGraph$1\n} = Recoil_Graph;\n\nconst {\n getNextStoreID: getNextStoreID$2\n} = Recoil_Keys;\n\nconst {\n createMutableSource: createMutableSource$1,\n reactMode: reactMode$2\n} = Recoil_ReactMode;\n\nconst {\n applyAtomValueWrites: applyAtomValueWrites$1\n} = Recoil_RecoilValueInterface;\n\nconst {\n releaseScheduledRetainablesNow: releaseScheduledRetainablesNow$1\n} = Recoil_Retention;\n\nconst {\n freshSnapshot: freshSnapshot$1\n} = Recoil_Snapshot$1;\n\n\n\nconst {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef: useRef$1,\n useState\n} = react;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction notInAContext() {\n throw Recoil_err('This component must be used inside a component.');\n}\n\nconst defaultStore = Object.freeze({\n storeID: getNextStoreID$2(),\n getState: notInAContext,\n replaceState: notInAContext,\n getGraph: notInAContext,\n subscribeToTransactions: notInAContext,\n addTransactionMetadata: notInAContext\n});\nlet stateReplacerIsBeingExecuted = false;\n\nfunction startNextTreeIfNeeded(store) {\n if (stateReplacerIsBeingExecuted) {\n throw Recoil_err('An atom update was triggered within the execution of a state updater function. State updater functions provided to Recoil must be pure functions.');\n }\n\n const storeState = store.getState();\n\n if (storeState.nextTree === null) {\n if (Recoil_gkx('recoil_memory_managament_2020') && Recoil_gkx('recoil_release_on_cascading_update_killswitch_2021')) {\n // If this is a cascading update (that is, rendering due to one state change\n // invokes a second state change), we won't have cleaned up retainables yet\n // because this normally happens after notifying components. Do it before\n // proceeding with the cascading update so that it remains predictable:\n if (storeState.commitDepth > 0) {\n releaseScheduledRetainablesNow$1(store);\n }\n }\n\n const version = storeState.currentTree.version;\n const nextVersion = getNextTreeStateVersion$3();\n storeState.nextTree = { ...storeState.currentTree,\n version: nextVersion,\n stateID: nextVersion,\n dirtyAtoms: new Set(),\n transactionMetadata: {}\n };\n storeState.graphsByVersion.set(nextVersion, cloneGraph$1(Recoil_nullthrows(storeState.graphsByVersion.get(version))));\n }\n}\n\nconst AppContext = react.createContext({\n current: defaultStore\n});\n\nconst useStoreRef = () => useContext(AppContext); // $FlowExpectedError[incompatible-call]\n\n\nconst MutableSourceContext = react.createContext(null);\n\nfunction useRecoilMutableSource() {\n const mutableSource = useContext(MutableSourceContext);\n\n if (mutableSource == null) {\n Recoil_expectationViolation('Attempted to use a Recoil hook outside of a . ' + ' must be an ancestor of any component that uses ' + 'Recoil hooks.');\n }\n\n return mutableSource;\n}\n\nfunction notifyComponents(store, storeState, treeState) {\n const dependentNodes = getDownstreamNodes$2(store, treeState, treeState.dirtyAtoms);\n\n for (const key of dependentNodes) {\n const comps = storeState.nodeToComponentSubscriptions.get(key);\n\n if (comps) {\n for (const [_subID, [_debugName, callback]] of comps) {\n callback(treeState);\n }\n }\n }\n}\n\nfunction sendEndOfBatchNotifications(store) {\n const storeState = store.getState();\n const treeState = storeState.currentTree; // Inform transaction subscribers of the transaction:\n\n const dirtyAtoms = treeState.dirtyAtoms;\n\n if (dirtyAtoms.size) {\n // Execute Node-specific subscribers before global subscribers\n for (const [key, subscriptions] of storeState.nodeTransactionSubscriptions) {\n if (dirtyAtoms.has(key)) {\n for (const [_, subscription] of subscriptions) {\n subscription(store);\n }\n }\n }\n\n for (const [_, subscription] of storeState.transactionSubscriptions) {\n subscription(store);\n }\n\n if (!reactMode$2().early || storeState.suspendedComponentResolvers.size > 0) {\n // Notifying components is needed to wake from suspense, even when using\n // early rendering.\n notifyComponents(store, storeState, treeState); // Wake all suspended components so the right one(s) can try to re-render.\n // We need to wake up components not just when some asynchronous selector\n // resolved, but also when changing synchronous values because this may cause\n // a selector to change from asynchronous to synchronous, in which case there\n // would be no follow-up asynchronous resolution to wake us up.\n // TODO OPTIMIZATION Only wake up related downstream components\n\n storeState.suspendedComponentResolvers.forEach(cb => cb());\n storeState.suspendedComponentResolvers.clear();\n }\n } // Special behavior ONLY invoked by useInterface.\n // FIXME delete queuedComponentCallbacks_DEPRECATED when deleting useInterface.\n\n\n storeState.queuedComponentCallbacks_DEPRECATED.forEach(cb => cb(treeState));\n storeState.queuedComponentCallbacks_DEPRECATED.splice(0, storeState.queuedComponentCallbacks_DEPRECATED.length);\n}\n\nfunction endBatch(store) {\n const storeState = store.getState();\n storeState.commitDepth++;\n\n try {\n const {\n nextTree\n } = storeState; // Ignore commits that are not because of Recoil transactions -- namely,\n // because something above RecoilRoot re-rendered:\n\n if (nextTree == null) {\n return;\n } // nextTree is now committed -- note that copying and reset occurs when\n // a transaction begins, in startNextTreeIfNeeded:\n\n\n storeState.previousTree = storeState.currentTree;\n storeState.currentTree = nextTree;\n storeState.nextTree = null;\n sendEndOfBatchNotifications(store);\n\n if (storeState.previousTree != null) {\n storeState.graphsByVersion.delete(storeState.previousTree.version);\n } else {\n Recoil_recoverableViolation('Ended batch with no previous state, which is unexpected', 'recoil');\n }\n\n storeState.previousTree = null;\n\n if (Recoil_gkx('recoil_memory_managament_2020')) {\n // Only release retainables if there were no writes during the end of the\n // batch. This avoids releasing something we might be about to use.\n if (nextTree == null) {\n releaseScheduledRetainablesNow$1(store);\n }\n }\n } finally {\n storeState.commitDepth--;\n }\n}\n/*\n * The purpose of the Batcher is to observe when React batches end so that\n * Recoil state changes can be batched. Whenever Recoil state changes, we call\n * setState on the batcher. Then we wait for that change to be committed, which\n * signifies the end of the batch. That's when we respond to the Recoil change.\n */\n\n\nfunction Batcher({\n setNotifyBatcherOfChange\n}) {\n const storeRef = useStoreRef();\n const [, setState] = useState([]); // $FlowFixMe[incompatible-call]\n\n setNotifyBatcherOfChange(() => setState({}));\n useEffect(() => {\n // $FlowFixMe[incompatible-call]\n setNotifyBatcherOfChange(() => setState({})); // If an asynchronous selector resolves after the Batcher is unmounted,\n // notifyBatcherOfChange will still be called. An error gets thrown whenever\n // setState is called after a component is already unmounted, so this sets\n // notifyBatcherOfChange to be a no-op.\n\n return () => {\n setNotifyBatcherOfChange(() => {});\n };\n }, [setNotifyBatcherOfChange]);\n useEffect(() => {\n // enqueueExecution runs this function immediately; it is only used to\n // manipulate the order of useEffects during tests, since React seems to\n // call useEffect in an unpredictable order sometimes.\n Recoil_Queue.enqueueExecution('Batcher', () => {\n endBatch(storeRef.current);\n });\n });\n return null;\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n if (typeof window !== 'undefined' && !window.$recoilDebugStates) {\n window.$recoilDebugStates = [];\n }\n} // When removing this deprecated function, remove stateBySettingRecoilValue\n// which will no longer be needed.\n\n\nfunction initialStoreState_DEPRECATED(store, initializeState) {\n const initial = makeEmptyStoreState$2();\n initializeState({\n set: (atom, value) => {\n const state = initial.currentTree;\n const writes = setNodeValue$2(store, state, atom.key, value);\n const writtenNodes = new Set(writes.keys());\n const nonvalidatedAtoms = state.nonvalidatedAtoms.clone();\n\n for (const n of writtenNodes) {\n nonvalidatedAtoms.delete(n);\n }\n\n initial.currentTree = { ...state,\n dirtyAtoms: Recoil_unionSets(state.dirtyAtoms, writtenNodes),\n atomValues: applyAtomValueWrites$1(state.atomValues, writes),\n // NB: PLEASE un-export applyAtomValueWrites when deleting this code\n nonvalidatedAtoms\n };\n },\n setUnvalidatedAtomValues: atomValues => {\n // FIXME replace this with a mutative loop\n atomValues.forEach((v, k) => {\n initial.currentTree = setUnvalidatedAtomValue_DEPRECATED$1(initial.currentTree, k, v);\n });\n }\n });\n return initial;\n} // Initialize state snapshot for for the initializeState prop.\n// Atom effect initialization takes precedence over this prop.\n// Any atom effects will be run before initialization, but then cleaned up,\n// they are then re-run when used as part of rendering. These semantics are\n// compatible with React StrictMode where effects may be re-run multiple times\n// but state initialization only happens once the first time.\n\n\nfunction initialStoreState(initializeState) {\n // Initialize a snapshot and get its store\n const snapshot = freshSnapshot$1(initializeState);\n const storeState = snapshot.getStore_INTERNAL().getState(); // Counteract the snapshot auto-release\n\n snapshot.retain(); // Cleanup any effects run during initialization and clear the handlers so\n // they will re-initialize if used during rendering. This allows atom effect\n // initialization to take precedence over initializeState and be compatible\n // with StrictMode semantics.\n\n storeState.nodeCleanupFunctions.forEach(cleanup => cleanup());\n storeState.nodeCleanupFunctions.clear();\n return storeState;\n}\n\nlet nextID = 0;\n\nfunction RecoilRoot_INTERNAL({\n initializeState_DEPRECATED,\n initializeState,\n store_INTERNAL: storeProp,\n // For use with React \"context bridging\"\n children\n}) {\n // prettier-ignore\n // @fb-only: useEffect(() => {\n // @fb-only: if (gkx('recoil_usage_logging')) {\n // @fb-only: try {\n // @fb-only: RecoilUsageLogFalcoEvent.log(() => ({\n // @fb-only: type: RecoilusagelogEvent.RECOIL_ROOT_MOUNTED,\n // @fb-only: path: URI.getRequestURI().getPath(),\n // @fb-only: }));\n // @fb-only: } catch {\n // @fb-only: recoverableViolation(\n // @fb-only: 'Error when logging Recoil Usage event',\n // @fb-only: 'recoil',\n // @fb-only: );\n // @fb-only: }\n // @fb-only: }\n // @fb-only: }, []);\n let storeStateRef; // eslint-disable-line prefer-const\n\n const getGraph = version => {\n const graphs = storeStateRef.current.graphsByVersion;\n\n if (graphs.has(version)) {\n return Recoil_nullthrows(graphs.get(version));\n }\n\n const newGraph = graph$2();\n graphs.set(version, newGraph);\n return newGraph;\n };\n\n const subscribeToTransactions = (callback, key) => {\n if (key == null) {\n // Global transaction subscriptions\n const {\n transactionSubscriptions\n } = storeRef.current.getState();\n const id = nextID++;\n transactionSubscriptions.set(id, callback);\n return {\n release: () => {\n transactionSubscriptions.delete(id);\n }\n };\n } else {\n // Node-specific transaction subscriptions:\n const {\n nodeTransactionSubscriptions\n } = storeRef.current.getState();\n\n if (!nodeTransactionSubscriptions.has(key)) {\n nodeTransactionSubscriptions.set(key, new Map());\n }\n\n const id = nextID++;\n Recoil_nullthrows(nodeTransactionSubscriptions.get(key)).set(id, callback);\n return {\n release: () => {\n const subs = nodeTransactionSubscriptions.get(key);\n\n if (subs) {\n subs.delete(id);\n\n if (subs.size === 0) {\n nodeTransactionSubscriptions.delete(key);\n }\n }\n }\n };\n }\n };\n\n const addTransactionMetadata = metadata => {\n startNextTreeIfNeeded(storeRef.current);\n\n for (const k of Object.keys(metadata)) {\n Recoil_nullthrows(storeRef.current.getState().nextTree).transactionMetadata[k] = metadata[k];\n }\n };\n\n const replaceState = replacer => {\n startNextTreeIfNeeded(storeRef.current); // Use replacer to get the next state:\n\n const nextTree = Recoil_nullthrows(storeStateRef.current.nextTree);\n let replaced;\n\n try {\n stateReplacerIsBeingExecuted = true;\n replaced = replacer(nextTree);\n } finally {\n stateReplacerIsBeingExecuted = false;\n }\n\n if (replaced === nextTree) {\n return;\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof window !== 'undefined') {\n window.$recoilDebugStates.push(replaced); // TODO this shouldn't happen here because it's not batched\n }\n } // Save changes to nextTree and schedule a React update:\n\n\n storeStateRef.current.nextTree = replaced;\n\n if (reactMode$2().early) {\n notifyComponents(storeRef.current, storeStateRef.current, replaced);\n }\n\n Recoil_nullthrows(notifyBatcherOfChange.current)();\n };\n\n const notifyBatcherOfChange = useRef$1(null);\n const setNotifyBatcherOfChange = useCallback(x => {\n notifyBatcherOfChange.current = x;\n }, [notifyBatcherOfChange]);\n const storeRef = Recoil_useRefInitOnce(() => storeProp !== null && storeProp !== void 0 ? storeProp : {\n storeID: getNextStoreID$2(),\n getState: () => storeStateRef.current,\n replaceState,\n getGraph,\n subscribeToTransactions,\n addTransactionMetadata\n });\n\n if (storeProp != null) {\n storeRef.current = storeProp;\n }\n\n storeStateRef = Recoil_useRefInitOnce(() => initializeState_DEPRECATED != null ? initialStoreState_DEPRECATED(storeRef.current, initializeState_DEPRECATED) : initializeState != null ? initialStoreState(initializeState) : makeEmptyStoreState$2());\n const mutableSource = useMemo(() => createMutableSource$1 === null || createMutableSource$1 === void 0 ? void 0 : createMutableSource$1(storeStateRef, () => storeStateRef.current.currentTree.version), [storeStateRef]); // Cleanup when the is unmounted\n\n useEffect(() => {\n // React is free to call effect cleanup handlers and effects at will, the\n // deps array is only an optimization. For example, React strict mode\n // will execute each effect twice for testing. Therefore, we need symmetry\n // to re-initialize all known atoms after they were cleaned up.\n const store = storeRef.current;\n\n for (const atomKey of new Set(store.getState().knownAtoms)) {\n initializeNode$2(store, atomKey, 'get');\n }\n\n return () => {\n for (const atomKey of store.getState().knownAtoms) {\n cleanUpNode$2(store, atomKey);\n }\n };\n }, [storeRef]);\n return /*#__PURE__*/react.createElement(AppContext.Provider, {\n value: storeRef\n }, /*#__PURE__*/react.createElement(MutableSourceContext.Provider, {\n value: mutableSource\n }, /*#__PURE__*/react.createElement(Batcher, {\n setNotifyBatcherOfChange: setNotifyBatcherOfChange\n }), children));\n}\n\nfunction RecoilRoot(props) {\n const {\n override,\n ...propsExceptOverride\n } = props;\n const ancestorStoreRef = useStoreRef();\n\n if (override === false && ancestorStoreRef.current !== defaultStore) {\n // If ancestorStoreRef.current !== defaultStore, it means that this\n // RecoilRoot is not nested within another.\n return props.children;\n }\n\n return /*#__PURE__*/react.createElement(RecoilRoot_INTERNAL, propsExceptOverride);\n}\n\nfunction useRecoilStoreID() {\n return useStoreRef().current.storeID;\n}\n\nvar Recoil_RecoilRoot = {\n RecoilRoot,\n useStoreRef,\n useRecoilMutableSource,\n useRecoilStoreID,\n notifyComponents_FOR_TESTING: notifyComponents,\n sendEndOfBatchNotifications_FOR_TESTING: sendEndOfBatchNotifications\n};\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 * @oncall recoil\n */\n\nfunction shallowArrayEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (a.length !== b.length) {\n return false;\n }\n\n for (let i = 0, l = a.length; i < l; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nvar Recoil_shallowArrayEqual = shallowArrayEqual;\n\nconst {\n useEffect: useEffect$1,\n useRef: useRef$2\n} = react;\n\nfunction usePrevious(value) {\n const ref = useRef$2();\n useEffect$1(() => {\n // $FlowFixMe[incompatible-type]\n ref.current = value;\n });\n return ref.current;\n}\n\nvar Recoil_usePrevious = usePrevious;\n\nconst {\n useStoreRef: useStoreRef$1\n} = Recoil_RecoilRoot;\n\nconst {\n SUSPENSE_TIMEOUT_MS: SUSPENSE_TIMEOUT_MS$1\n} = Recoil_Retention;\n\nconst {\n updateRetainCount: updateRetainCount$2\n} = Recoil_Retention;\n\nconst {\n RetentionZone: RetentionZone$3\n} = Recoil_RetentionZone;\n\nconst {\n useEffect: useEffect$2,\n useRef: useRef$3\n} = react;\n\nconst {\n isSSR: isSSR$2\n} = Recoil_Environment;\n\n\n\n\n\n // I don't see a way to avoid the any type here because we want to accept readable\n// and writable values with any type parameter, but normally with writable ones\n// RecoilState is not a subtype of RecoilState.\n\n\n// flowlint-line unclear-type:off\nfunction useRetain(toRetain) {\n if (!Recoil_gkx('recoil_memory_managament_2020')) {\n return;\n } // eslint-disable-next-line fb-www/react-hooks\n\n\n return useRetain_ACTUAL(toRetain);\n}\n\nfunction useRetain_ACTUAL(toRetain) {\n const array = Array.isArray(toRetain) ? toRetain : [toRetain];\n const retainables = array.map(a => a instanceof RetentionZone$3 ? a : a.key);\n const storeRef = useStoreRef$1();\n useEffect$2(() => {\n if (!Recoil_gkx('recoil_memory_managament_2020')) {\n return;\n }\n\n const store = storeRef.current;\n\n if (timeoutID.current && !isSSR$2) {\n // Already performed a temporary retain on render, simply cancel the release\n // of that temporary retain.\n window.clearTimeout(timeoutID.current);\n timeoutID.current = null;\n } else {\n for (const r of retainables) {\n updateRetainCount$2(store, r, 1);\n }\n }\n\n return () => {\n for (const r of retainables) {\n updateRetainCount$2(store, r, -1);\n }\n }; // eslint-disable-next-line fb-www/react-hooks-deps\n }, [storeRef, ...retainables]); // We want to retain if the component suspends. This is terrible but the Suspense\n // API affords us no better option. If we suspend and never commit after some\n // seconds, then release. The 'actual' retain/release in the effect above\n // cancels this.\n\n const timeoutID = useRef$3();\n const previousRetainables = Recoil_usePrevious(retainables);\n\n if (!isSSR$2 && (previousRetainables === undefined || !Recoil_shallowArrayEqual(previousRetainables, retainables))) {\n const store = storeRef.current;\n\n for (const r of retainables) {\n updateRetainCount$2(store, r, 1);\n }\n\n if (previousRetainables) {\n for (const r of previousRetainables) {\n updateRetainCount$2(store, r, -1);\n }\n }\n\n if (timeoutID.current) {\n window.clearTimeout(timeoutID.current);\n }\n\n timeoutID.current = window.setTimeout(() => {\n timeoutID.current = null;\n\n for (const r of retainables) {\n updateRetainCount$2(store, r, -1);\n }\n }, SUSPENSE_TIMEOUT_MS$1);\n }\n}\n\nvar Recoil_useRetain = useRetain;\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 * @oncall recoil\n */\n/**\n * THIS CODE HAS BEEN COMMENTED OUT INTENTIONALLY\n *\n * This technique of getting the component name is imperfect, since it both only\n * works in a non-minified code base, and more importantly introduces performance\n * problems since it relies in throwing errors which is an expensive operation.\n *\n * At some point we may want to reevaluate this technique hence why we have commented\n * this code out, rather than delete it all together.\n */\n// const {useRef} = require('react');\n// const gkx = require('recoil-shared/util/Recoil_gkx');\n// const stackTraceParser = require('recoil-shared/util/Recoil_stackTraceParser');\n\nfunction useComponentName() {\n // const nameRef = useRef();\n // if (__DEV__) {\n // if (gkx('recoil_infer_component_names')) {\n // if (nameRef.current === undefined) {\n // // There is no blessed way to determine the calling React component from\n // // within a hook. This hack uses the fact that hooks must start with 'use'\n // // and that hooks are either called by React Components or other hooks. It\n // // follows therefore, that to find the calling component, you simply need\n // // to look down the stack and find the first function which doesn't start\n // // with 'use'. We are only enabling this in dev for now, since once the\n // // codebase is minified, the naming assumptions no longer hold true.\n // // eslint-disable-next-line fb-www/no-new-error\n // const frames = stackTraceParser(new Error().stack);\n // for (const {methodName} of frames) {\n // // I observed cases where the frame was of the form 'Object.useXXX'\n // // hence why I'm searching for hooks following a word boundary\n // if (!methodName.match(/\\buse[^\\b]+$/)) {\n // return (nameRef.current = methodName);\n // }\n // }\n // nameRef.current = null;\n // }\n // return nameRef.current ?? '';\n // }\n // }\n // @fb-only: return \"\";\n return ''; // @oss-only\n}\n\nvar Recoil_useComponentName = useComponentName;\n\nconst {\n batchUpdates: batchUpdates$2\n} = Recoil_Batching;\n\nconst {\n DEFAULT_VALUE: DEFAULT_VALUE$2\n} = Recoil_Node;\n\nconst {\n currentRendererSupportsUseSyncExternalStore: currentRendererSupportsUseSyncExternalStore$1,\n reactMode: reactMode$3,\n useMutableSource: useMutableSource$1,\n useSyncExternalStore: useSyncExternalStore$1\n} = Recoil_ReactMode;\n\nconst {\n useRecoilMutableSource: useRecoilMutableSource$1,\n useStoreRef: useStoreRef$2\n} = Recoil_RecoilRoot;\n\nconst {\n isRecoilValue: isRecoilValue$2\n} = Recoil_RecoilValue$1;\n\nconst {\n AbstractRecoilValue: AbstractRecoilValue$3,\n getRecoilValueAsLoadable: getRecoilValueAsLoadable$2,\n setRecoilValue: setRecoilValue$2,\n setUnvalidatedRecoilValue: setUnvalidatedRecoilValue$2,\n subscribeToRecoilValue: subscribeToRecoilValue$1\n} = Recoil_RecoilValueInterface;\n\n\n\nconst {\n useCallback: useCallback$1,\n useEffect: useEffect$3,\n useMemo: useMemo$1,\n useRef: useRef$4,\n useState: useState$1\n} = react;\n\nconst {\n setByAddingToSet: setByAddingToSet$2\n} = Recoil_CopyOnWrite;\n\n\n\nconst {\n isSSR: isSSR$3\n} = Recoil_Environment;\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction handleLoadable(loadable, recoilValue, storeRef) {\n // We can't just throw the promise we are waiting on to Suspense. If the\n // upstream dependencies change it may produce a state in which the component\n // can render, but it would still be suspended on a Promise that may never resolve.\n if (loadable.state === 'hasValue') {\n return loadable.contents;\n } else if (loadable.state === 'loading') {\n const promise = new Promise(resolve => {\n const suspendedComponentResolvers = storeRef.current.getState().suspendedComponentResolvers;\n suspendedComponentResolvers.add(resolve); // SSR should clear out the wake-up resolver if the Promise is resolved\n // to avoid infinite loops. (See https://github.com/facebookexperimental/Recoil/pull/2073)\n\n if (isSSR$3 && Recoil_isPromise(loadable.contents)) {\n loadable.contents.finally(() => {\n suspendedComponentResolvers.delete(resolve);\n });\n }\n }); // $FlowExpectedError Flow(prop-missing) for integrating with tools that inspect thrown promises @fb-only\n // @fb-only: promise.displayName = `Recoil State: ${recoilValue.key}`;\n\n throw promise;\n } else if (loadable.state === 'hasError') {\n throw loadable.contents;\n } else {\n throw Recoil_err(`Invalid value of loadable atom \"${recoilValue.key}\"`);\n }\n}\n\nfunction validateRecoilValue(recoilValue, hookName // $FlowFixMe[missing-local-annot]\n) {\n if (!isRecoilValue$2(recoilValue)) {\n throw Recoil_err(`Invalid argument to ${hookName}: expected an atom or selector but got ${String(recoilValue)}`);\n }\n}\n\n/**\n * Various things are broken with useRecoilInterface, particularly concurrent\n * mode, React strict mode, and memory management. They will not be fixed.\n * */\nfunction useRecoilInterface_DEPRECATED() {\n const componentName = Recoil_useComponentName();\n const storeRef = useStoreRef$2(); // eslint-disable-next-line fb-www/react-no-unused-state-hook\n\n const [, forceUpdate] = useState$1([]);\n const recoilValuesUsed = useRef$4(new Set());\n recoilValuesUsed.current = new Set(); // Track the RecoilValues used just during this render\n\n const previousSubscriptions = useRef$4(new Set());\n const subscriptions = useRef$4(new Map());\n const unsubscribeFrom = useCallback$1(key => {\n const sub = subscriptions.current.get(key);\n\n if (sub) {\n sub.release();\n subscriptions.current.delete(key);\n }\n }, [subscriptions]);\n const updateState = useCallback$1((_state, key) => {\n if (subscriptions.current.has(key)) {\n forceUpdate([]);\n }\n }, []); // Effect to add/remove subscriptions as nodes are used\n\n useEffect$3(() => {\n const store = storeRef.current;\n Recoil_differenceSets(recoilValuesUsed.current, previousSubscriptions.current).forEach(key => {\n if (subscriptions.current.has(key)) {\n Recoil_expectationViolation(`Double subscription to RecoilValue \"${key}\"`);\n return;\n }\n\n const sub = subscribeToRecoilValue$1(store, new AbstractRecoilValue$3(key), state => updateState(state, key), componentName);\n subscriptions.current.set(key, sub);\n /**\n * Since we're subscribing in an effect we need to update to the latest\n * value of the atom since it may have changed since we rendered. We can\n * go ahead and do that now, unless we're in the middle of a batch --\n * in which case we should do it at the end of the batch, due to the\n * following edge case: Suppose an atom is updated in another useEffect\n * of this same component. Then the following sequence of events occur:\n * 1. Atom is updated and subs fired (but we may not be subscribed\n * yet depending on order of effects, so we miss this) Updated value\n * is now in nextTree, but not currentTree.\n * 2. This effect happens. We subscribe and update.\n * 3. From the update we re-render and read currentTree, with old value.\n * 4. Batcher's effect sets currentTree to nextTree.\n * In this sequence we miss the update. To avoid that, add the update\n * to queuedComponentCallback if a batch is in progress.\n */\n // FIXME delete queuedComponentCallbacks_DEPRECATED when deleting useInterface.\n\n const state = store.getState();\n\n if (state.nextTree) {\n store.getState().queuedComponentCallbacks_DEPRECATED.push(() => {\n updateState(store.getState(), key);\n });\n } else {\n updateState(store.getState(), key);\n }\n });\n Recoil_differenceSets(previousSubscriptions.current, recoilValuesUsed.current).forEach(key => {\n unsubscribeFrom(key);\n });\n previousSubscriptions.current = recoilValuesUsed.current;\n }); // Effect to unsubscribe from all when unmounting\n\n useEffect$3(() => {\n const currentSubscriptions = subscriptions.current; // Restore subscriptions that were cleared due to StrictMode running this effect twice\n\n Recoil_differenceSets(recoilValuesUsed.current, new Set(currentSubscriptions.keys())).forEach(key => {\n const sub = subscribeToRecoilValue$1(storeRef.current, new AbstractRecoilValue$3(key), state => updateState(state, key), componentName);\n currentSubscriptions.set(key, sub);\n });\n return () => currentSubscriptions.forEach((_, key) => unsubscribeFrom(key));\n }, [componentName, storeRef, unsubscribeFrom, updateState]);\n return useMemo$1(() => {\n // eslint-disable-next-line no-shadow\n function useSetRecoilState(recoilState) {\n if (process.env.NODE_ENV !== \"production\") {\n validateRecoilValue(recoilState, 'useSetRecoilState');\n }\n\n return newValueOrUpdater => {\n setRecoilValue$2(storeRef.current, recoilState, newValueOrUpdater);\n };\n } // eslint-disable-next-line no-shadow\n\n\n function useResetRecoilState(recoilState) {\n if (process.env.NODE_ENV !== \"production\") {\n validateRecoilValue(recoilState, 'useResetRecoilState');\n }\n\n return () => setRecoilValue$2(storeRef.current, recoilState, DEFAULT_VALUE$2);\n } // eslint-disable-next-line no-shadow\n\n\n function useRecoilValueLoadable(recoilValue) {\n var _storeState$nextTree;\n\n if (process.env.NODE_ENV !== \"production\") {\n validateRecoilValue(recoilValue, 'useRecoilValueLoadable');\n }\n\n if (!recoilValuesUsed.current.has(recoilValue.key)) {\n recoilValuesUsed.current = setByAddingToSet$2(recoilValuesUsed.current, recoilValue.key);\n } // TODO Restore optimization to memoize lookup\n\n\n const storeState = storeRef.current.getState();\n return getRecoilValueAsLoadable$2(storeRef.current, recoilValue, reactMode$3().early ? (_storeState$nextTree = storeState.nextTree) !== null && _storeState$nextTree !== void 0 ? _storeState$nextTree : storeState.currentTree : storeState.currentTree);\n } // eslint-disable-next-line no-shadow\n\n\n function useRecoilValue(recoilValue) {\n if (process.env.NODE_ENV !== \"production\") {\n validateRecoilValue(recoilValue, 'useRecoilValue');\n }\n\n const loadable = useRecoilValueLoadable(recoilValue);\n return handleLoadable(loadable, recoilValue, storeRef);\n } // eslint-disable-next-line no-shadow\n\n\n function useRecoilState(recoilState) {\n if (process.env.NODE_ENV !== \"production\") {\n validateRecoilValue(recoilState, 'useRecoilState');\n }\n\n return [useRecoilValue(recoilState), useSetRecoilState(recoilState)];\n } // eslint-disable-next-line no-shadow\n\n\n function useRecoilStateLoadable(recoilState) {\n if (process.env.NODE_ENV !== \"production\") {\n validateRecoilValue(recoilState, 'useRecoilStateLoadable');\n }\n\n return [useRecoilValueLoadable(recoilState), useSetRecoilState(recoilState)];\n }\n\n return {\n getRecoilValue: useRecoilValue,\n getRecoilValueLoadable: useRecoilValueLoadable,\n getRecoilState: useRecoilState,\n getRecoilStateLoadable: useRecoilStateLoadable,\n getSetRecoilState: useSetRecoilState,\n getResetRecoilState: useResetRecoilState\n };\n }, [recoilValuesUsed, storeRef]);\n}\n\nconst recoilComponentGetRecoilValueCount_FOR_TESTING = {\n current: 0\n};\n\nfunction useRecoilValueLoadable_SYNC_EXTERNAL_STORE(recoilValue) {\n const storeRef = useStoreRef$2();\n const componentName = Recoil_useComponentName();\n const getSnapshot = useCallback$1(() => {\n var _storeState$nextTree2;\n\n if (process.env.NODE_ENV !== \"production\") {\n recoilComponentGetRecoilValueCount_FOR_TESTING.current++;\n }\n\n const store = storeRef.current;\n const storeState = store.getState();\n const treeState = reactMode$3().early ? (_storeState$nextTree2 = storeState.nextTree) !== null && _storeState$nextTree2 !== void 0 ? _storeState$nextTree2 : storeState.currentTree : storeState.currentTree;\n const loadable = getRecoilValueAsLoadable$2(store, recoilValue, treeState);\n return {\n loadable,\n key: recoilValue.key\n };\n }, [storeRef, recoilValue]); // Memoize the state to avoid unnecessary rerenders\n\n const memoizePreviousSnapshot = useCallback$1(getState => {\n let prevState;\n return () => {\n var _prevState, _prevState2;\n\n const nextState = getState();\n\n if ((_prevState = prevState) !== null && _prevState !== void 0 && _prevState.loadable.is(nextState.loadable) && ((_prevState2 = prevState) === null || _prevState2 === void 0 ? void 0 : _prevState2.key) === nextState.key) {\n return prevState;\n }\n\n prevState = nextState;\n return nextState;\n };\n }, []);\n const getMemoizedSnapshot = useMemo$1(() => memoizePreviousSnapshot(getSnapshot), [getSnapshot, memoizePreviousSnapshot]);\n const subscribe = useCallback$1(notify => {\n const store = storeRef.current;\n const subscription = subscribeToRecoilValue$1(store, recoilValue, notify, componentName);\n return subscription.release;\n }, [storeRef, recoilValue, componentName]);\n return useSyncExternalStore$1(subscribe, getMemoizedSnapshot, // getSnapshot()\n getMemoizedSnapshot // getServerSnapshot() for SSR support\n ).loadable;\n}\n\nfunction useRecoilValueLoadable_MUTABLE_SOURCE(recoilValue) {\n const storeRef = useStoreRef$2();\n const getLoadable = useCallback$1(() => {\n var _storeState$nextTree3;\n\n const store = storeRef.current;\n const storeState = store.getState();\n const treeState = reactMode$3().early ? (_storeState$nextTree3 = storeState.nextTree) !== null && _storeState$nextTree3 !== void 0 ? _storeState$nextTree3 : storeState.currentTree : storeState.currentTree;\n return getRecoilValueAsLoadable$2(store, recoilValue, treeState);\n }, [storeRef, recoilValue]);\n const getLoadableWithTesting = useCallback$1(() => {\n if (process.env.NODE_ENV !== \"production\") {\n recoilComponentGetRecoilValueCount_FOR_TESTING.current++;\n }\n\n return getLoadable();\n }, [getLoadable]);\n const componentName = Recoil_useComponentName();\n const subscribe = useCallback$1((_storeState, notify) => {\n const store = storeRef.current;\n const subscription = subscribeToRecoilValue$1(store, recoilValue, () => {\n if (!Recoil_gkx('recoil_suppress_rerender_in_callback')) {\n return notify();\n } // Only re-render if the value has changed.\n // This will evaluate the atom/selector now as well as when the\n // component renders, but that may help with prefetching.\n\n\n const newLoadable = getLoadable();\n\n if (!prevLoadableRef.current.is(newLoadable)) {\n notify();\n } // If the component is suspended then the effect setting prevLoadableRef\n // will not run. So, set the previous value here when its subscription\n // is fired to wake it up. We can't just rely on this, though, because\n // this only executes when an atom/selector is dirty and the atom/selector\n // passed to the hook can dynamically change.\n\n\n prevLoadableRef.current = newLoadable;\n }, componentName);\n return subscription.release;\n }, [storeRef, recoilValue, componentName, getLoadable]);\n const source = useRecoilMutableSource$1();\n\n if (source == null) {\n throw Recoil_err('Recoil hooks must be used in components contained within a component.');\n }\n\n const loadable = useMutableSource$1(source, getLoadableWithTesting, subscribe);\n const prevLoadableRef = useRef$4(loadable);\n useEffect$3(() => {\n prevLoadableRef.current = loadable;\n });\n return loadable;\n}\n\nfunction useRecoilValueLoadable_TRANSITION_SUPPORT(recoilValue) {\n const storeRef = useStoreRef$2();\n const componentName = Recoil_useComponentName(); // Accessors to get the current state\n\n const getLoadable = useCallback$1(() => {\n var _storeState$nextTree4;\n\n if (process.env.NODE_ENV !== \"production\") {\n recoilComponentGetRecoilValueCount_FOR_TESTING.current++;\n }\n\n const store = storeRef.current;\n const storeState = store.getState();\n const treeState = reactMode$3().early ? (_storeState$nextTree4 = storeState.nextTree) !== null && _storeState$nextTree4 !== void 0 ? _storeState$nextTree4 : storeState.currentTree : storeState.currentTree;\n return getRecoilValueAsLoadable$2(store, recoilValue, treeState);\n }, [storeRef, recoilValue]);\n const getState = useCallback$1(() => ({\n loadable: getLoadable(),\n key: recoilValue.key\n }), [getLoadable, recoilValue.key]); // Memoize state snapshots\n\n const updateState = useCallback$1(prevState => {\n const nextState = getState();\n return prevState.loadable.is(nextState.loadable) && prevState.key === nextState.key ? prevState : nextState;\n }, [getState]); // Subscribe to Recoil state changes\n\n useEffect$3(() => {\n const subscription = subscribeToRecoilValue$1(storeRef.current, recoilValue, _state => {\n setState(updateState);\n }, componentName); // Update state in case we are using a different key\n\n setState(updateState);\n return subscription.release;\n }, [componentName, recoilValue, storeRef, updateState]); // Get the current state\n\n const [state, setState] = useState$1(getState); // If we changed keys, then return the state for the new key.\n // This is important in case the old key would cause the component to suspend.\n // We don't have to set the new state here since the subscribing effect above\n // will do that.\n\n return state.key !== recoilValue.key ? getState().loadable : state.loadable;\n}\n\nfunction useRecoilValueLoadable_LEGACY(recoilValue) {\n const storeRef = useStoreRef$2(); // eslint-disable-next-line fb-www/react-no-unused-state-hook\n\n const [, forceUpdate] = useState$1([]);\n const componentName = Recoil_useComponentName();\n const getLoadable = useCallback$1(() => {\n var _storeState$nextTree5;\n\n if (process.env.NODE_ENV !== \"production\") {\n recoilComponentGetRecoilValueCount_FOR_TESTING.current++;\n }\n\n const store = storeRef.current;\n const storeState = store.getState();\n const treeState = reactMode$3().early ? (_storeState$nextTree5 = storeState.nextTree) !== null && _storeState$nextTree5 !== void 0 ? _storeState$nextTree5 : storeState.currentTree : storeState.currentTree;\n return getRecoilValueAsLoadable$2(store, recoilValue, treeState);\n }, [storeRef, recoilValue]);\n const loadable = getLoadable();\n const prevLoadableRef = useRef$4(loadable);\n useEffect$3(() => {\n prevLoadableRef.current = loadable;\n });\n useEffect$3(() => {\n const store = storeRef.current;\n const storeState = store.getState();\n const subscription = subscribeToRecoilValue$1(store, recoilValue, _state => {\n var _prevLoadableRef$curr;\n\n if (!Recoil_gkx('recoil_suppress_rerender_in_callback')) {\n return forceUpdate([]);\n }\n\n const newLoadable = getLoadable();\n\n if (!((_prevLoadableRef$curr = prevLoadableRef.current) !== null && _prevLoadableRef$curr !== void 0 && _prevLoadableRef$curr.is(newLoadable))) {\n // $FlowFixMe[incompatible-call]\n forceUpdate(newLoadable);\n }\n\n prevLoadableRef.current = newLoadable;\n }, componentName);\n /**\n * Since we're subscribing in an effect we need to update to the latest\n * value of the atom since it may have changed since we rendered. We can\n * go ahead and do that now, unless we're in the middle of a batch --\n * in which case we should do it at the end of the batch, due to the\n * following edge case: Suppose an atom is updated in another useEffect\n * of this same component. Then the following sequence of events occur:\n * 1. Atom is updated and subs fired (but we may not be subscribed\n * yet depending on order of effects, so we miss this) Updated value\n * is now in nextTree, but not currentTree.\n * 2. This effect happens. We subscribe and update.\n * 3. From the update we re-render and read currentTree, with old value.\n * 4. Batcher's effect sets currentTree to nextTree.\n * In this sequence we miss the update. To avoid that, add the update\n * to queuedComponentCallback if a batch is in progress.\n */\n\n if (storeState.nextTree) {\n store.getState().queuedComponentCallbacks_DEPRECATED.push(() => {\n // $FlowFixMe[incompatible-type]\n prevLoadableRef.current = null;\n forceUpdate([]);\n });\n } else {\n var _prevLoadableRef$curr2;\n\n if (!Recoil_gkx('recoil_suppress_rerender_in_callback')) {\n return forceUpdate([]);\n }\n\n const newLoadable = getLoadable();\n\n if (!((_prevLoadableRef$curr2 = prevLoadableRef.current) !== null && _prevLoadableRef$curr2 !== void 0 && _prevLoadableRef$curr2.is(newLoadable))) {\n // $FlowFixMe[incompatible-call]\n forceUpdate(newLoadable);\n }\n\n prevLoadableRef.current = newLoadable;\n }\n\n return subscription.release;\n }, [componentName, getLoadable, recoilValue, storeRef]);\n return loadable;\n}\n/**\n Like useRecoilValue(), but either returns the value if available or\n just undefined if not available for any reason, such as pending or error.\n*/\n\n\nfunction useRecoilValueLoadable(recoilValue) {\n if (process.env.NODE_ENV !== \"production\") {\n validateRecoilValue(recoilValue, 'useRecoilValueLoadable');\n }\n\n if (Recoil_gkx('recoil_memory_managament_2020')) {\n // eslint-disable-next-line fb-www/react-hooks\n Recoil_useRetain(recoilValue);\n }\n\n return {\n TRANSITION_SUPPORT: useRecoilValueLoadable_TRANSITION_SUPPORT,\n // Recoil will attemp to detect if `useSyncExternalStore()` is supported with\n // `reactMode()` before calling it. However, sometimes the host React\n // environment supports it but uses additional React renderers (such as with\n // `react-three-fiber`) which do not. While this is technically a user issue\n // by using a renderer with React 18+ that doesn't fully support React 18 we\n // don't want to break users if it can be avoided. As the current renderer can\n // change at runtime, we need to dynamically check and fallback if necessary.\n SYNC_EXTERNAL_STORE: currentRendererSupportsUseSyncExternalStore$1() ? useRecoilValueLoadable_SYNC_EXTERNAL_STORE : useRecoilValueLoadable_TRANSITION_SUPPORT,\n MUTABLE_SOURCE: useRecoilValueLoadable_MUTABLE_SOURCE,\n LEGACY: useRecoilValueLoadable_LEGACY\n }[reactMode$3().mode](recoilValue);\n}\n/**\n Returns the value represented by the RecoilValue.\n If the value is pending, it will throw a Promise to suspend the component,\n if the value is an error it will throw it for the nearest React error boundary.\n This will also subscribe the component for any updates in the value.\n */\n\n\nfunction useRecoilValue(recoilValue) {\n if (process.env.NODE_ENV !== \"production\") {\n validateRecoilValue(recoilValue, 'useRecoilValue');\n }\n\n const storeRef = useStoreRef$2();\n const loadable = useRecoilValueLoadable(recoilValue);\n return handleLoadable(loadable, recoilValue, storeRef);\n}\n/**\n Returns a function that allows the value of a RecoilState to be updated, but does\n not subscribe the component to changes to that RecoilState.\n*/\n\n\nfunction useSetRecoilState(recoilState) {\n if (process.env.NODE_ENV !== \"production\") {\n validateRecoilValue(recoilState, 'useSetRecoilState');\n }\n\n const storeRef = useStoreRef$2();\n return useCallback$1(newValueOrUpdater => {\n setRecoilValue$2(storeRef.current, recoilState, newValueOrUpdater);\n }, [storeRef, recoilState]);\n}\n/**\n Returns a function that will reset the value of a RecoilState to its default\n*/\n\n\nfunction useResetRecoilState(recoilState) {\n if (process.env.NODE_ENV !== \"production\") {\n validateRecoilValue(recoilState, 'useResetRecoilState');\n }\n\n const storeRef = useStoreRef$2();\n return useCallback$1(() => {\n setRecoilValue$2(storeRef.current, recoilState, DEFAULT_VALUE$2);\n }, [storeRef, recoilState]);\n}\n/**\n Equivalent to useState(). Allows the value of the RecoilState to be read and written.\n Subsequent updates to the RecoilState will cause the component to re-render. If the\n RecoilState is pending, this will suspend the component and initiate the\n retrieval of the value. If evaluating the RecoilState resulted in an error, this will\n throw the error so that the nearest React error boundary can catch it.\n*/\n\n\nfunction useRecoilState(recoilState) {\n if (process.env.NODE_ENV !== \"production\") {\n validateRecoilValue(recoilState, 'useRecoilState');\n }\n\n return [useRecoilValue(recoilState), useSetRecoilState(recoilState)];\n}\n/**\n Like useRecoilState(), but does not cause Suspense or React error handling. Returns\n an object that indicates whether the RecoilState is available, pending, or\n unavailable due to an error.\n*/\n\n\nfunction useRecoilStateLoadable(recoilState) {\n if (process.env.NODE_ENV !== \"production\") {\n validateRecoilValue(recoilState, 'useRecoilStateLoadable');\n }\n\n return [useRecoilValueLoadable(recoilState), useSetRecoilState(recoilState)];\n}\n\nfunction useSetUnvalidatedAtomValues() {\n const storeRef = useStoreRef$2();\n return (values, transactionMetadata = {}) => {\n batchUpdates$2(() => {\n storeRef.current.addTransactionMetadata(transactionMetadata);\n values.forEach((value, key) => setUnvalidatedRecoilValue$2(storeRef.current, new AbstractRecoilValue$3(key), value));\n });\n };\n}\n/**\n * Experimental variants of hooks with support for useTransition()\n */\n\n\nfunction useRecoilValueLoadable_TRANSITION_SUPPORT_UNSTABLE(recoilValue) {\n if (process.env.NODE_ENV !== \"production\") {\n validateRecoilValue(recoilValue, 'useRecoilValueLoadable_TRANSITION_SUPPORT_UNSTABLE');\n\n if (!reactMode$3().early) {\n Recoil_recoverableViolation('Attepmt to use a hook with UNSTABLE_TRANSITION_SUPPORT in a rendering mode incompatible with concurrent rendering. Try enabling the recoil_sync_external_store or recoil_transition_support GKs.');\n }\n }\n\n if (Recoil_gkx('recoil_memory_managament_2020')) {\n // eslint-disable-next-line fb-www/react-hooks\n Recoil_useRetain(recoilValue);\n }\n\n return useRecoilValueLoadable_TRANSITION_SUPPORT(recoilValue);\n}\n\nfunction useRecoilValue_TRANSITION_SUPPORT_UNSTABLE(recoilValue) {\n if (process.env.NODE_ENV !== \"production\") {\n validateRecoilValue(recoilValue, 'useRecoilValue_TRANSITION_SUPPORT_UNSTABLE');\n }\n\n const storeRef = useStoreRef$2();\n const loadable = useRecoilValueLoadable_TRANSITION_SUPPORT_UNSTABLE(recoilValue);\n return handleLoadable(loadable, recoilValue, storeRef);\n}\n\nfunction useRecoilState_TRANSITION_SUPPORT_UNSTABLE(recoilState) {\n if (process.env.NODE_ENV !== \"production\") {\n validateRecoilValue(recoilState, 'useRecoilState_TRANSITION_SUPPORT_UNSTABLE');\n }\n\n return [useRecoilValue_TRANSITION_SUPPORT_UNSTABLE(recoilState), useSetRecoilState(recoilState)];\n}\n\nvar Recoil_Hooks = {\n recoilComponentGetRecoilValueCount_FOR_TESTING,\n useRecoilInterface: useRecoilInterface_DEPRECATED,\n useRecoilState,\n useRecoilStateLoadable,\n useRecoilValue,\n useRecoilValueLoadable,\n useResetRecoilState,\n useSetRecoilState,\n useSetUnvalidatedAtomValues,\n useRecoilValueLoadable_TRANSITION_SUPPORT_UNSTABLE,\n useRecoilValue_TRANSITION_SUPPORT_UNSTABLE,\n useRecoilState_TRANSITION_SUPPORT_UNSTABLE\n};\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 * @oncall recoil\n */\n/**\n * Returns a map containing all of the keys + values from the original map where\n * the given callback returned true.\n */\n\nfunction filterMap(map, callback) {\n const result = new Map();\n\n for (const [key, value] of map) {\n if (callback(value, key)) {\n result.set(key, value);\n }\n }\n\n return result;\n}\n\nvar Recoil_filterMap = filterMap;\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 * @oncall recoil\n */\n/**\n * Returns a set containing all of the values from the original set where\n * the given callback returned true.\n */\n\nfunction filterSet(set, callback) {\n const result = new Set();\n\n for (const value of set) {\n if (callback(value)) {\n result.add(value);\n }\n }\n\n return result;\n}\n\nvar Recoil_filterSet = filterSet;\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 * @oncall recoil\n */\n\nfunction mergeMaps(...maps) {\n const result = new Map();\n\n for (let i = 0; i < maps.length; i++) {\n const iterator = maps[i].keys();\n let nextKey;\n\n while (!(nextKey = iterator.next()).done) {\n // $FlowIssue[incompatible-call] - map/iterator knows nothing about flow types\n result.set(nextKey.value, maps[i].get(nextKey.value));\n }\n }\n\n return result;\n}\n\nvar Recoil_mergeMaps = mergeMaps;\n\nconst {\n batchUpdates: batchUpdates$3\n} = Recoil_Batching;\n\nconst {\n DEFAULT_VALUE: DEFAULT_VALUE$3,\n getNode: getNode$4,\n nodes: nodes$1\n} = Recoil_Node;\n\nconst {\n useStoreRef: useStoreRef$3\n} = Recoil_RecoilRoot;\n\nconst {\n AbstractRecoilValue: AbstractRecoilValue$4,\n setRecoilValueLoadable: setRecoilValueLoadable$1\n} = Recoil_RecoilValueInterface;\n\nconst {\n SUSPENSE_TIMEOUT_MS: SUSPENSE_TIMEOUT_MS$2\n} = Recoil_Retention;\n\nconst {\n cloneSnapshot: cloneSnapshot$1\n} = Recoil_Snapshot$1;\n\nconst {\n useCallback: useCallback$2,\n useEffect: useEffect$4,\n useRef: useRef$5,\n useState: useState$2\n} = react;\n\nconst {\n isSSR: isSSR$4\n} = Recoil_Environment;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction useTransactionSubscription(callback) {\n const storeRef = useStoreRef$3();\n useEffect$4(() => {\n const sub = storeRef.current.subscribeToTransactions(callback);\n return sub.release;\n }, [callback, storeRef]);\n}\n\nfunction externallyVisibleAtomValuesInState(state) {\n const atomValues = state.atomValues.toMap();\n const persistedAtomContentsValues = Recoil_mapMap(Recoil_filterMap(atomValues, (v, k) => {\n const node = getNode$4(k);\n const persistence = node.persistence_UNSTABLE;\n return persistence != null && persistence.type !== 'none' && v.state === 'hasValue';\n }), v => v.contents); // Merge in nonvalidated atoms; we may not have defs for them but they will\n // all have persistence on or they wouldn't be there in the first place.\n\n return Recoil_mergeMaps(state.nonvalidatedAtoms.toMap(), persistedAtomContentsValues);\n}\n\n/**\n Calls the given callback after any atoms have been modified and the consequent\n component re-renders have been committed. This is intended for persisting\n the values of the atoms to storage. The stored values can then be restored\n using the useSetUnvalidatedAtomValues hook.\n\n The callback receives the following info:\n\n atomValues: The current value of every atom that is both persistable (persistence\n type not set to 'none') and whose value is available (not in an\n error or loading state).\n\n previousAtomValues: The value of every persistable and available atom before\n the transaction began.\n\n atomInfo: A map containing the persistence settings for each atom. Every key\n that exists in atomValues will also exist in atomInfo.\n\n modifiedAtoms: The set of atoms that were written to during the transaction.\n\n transactionMetadata: Arbitrary information that was added via the\n useSetUnvalidatedAtomValues hook. Useful for ignoring the useSetUnvalidatedAtomValues\n transaction, to avoid loops.\n*/\nfunction useTransactionObservation_DEPRECATED(callback) {\n useTransactionSubscription(useCallback$2(store => {\n let previousTree = store.getState().previousTree;\n const currentTree = store.getState().currentTree;\n\n if (!previousTree) {\n Recoil_recoverableViolation('Transaction subscribers notified without a previous tree being present -- this is a bug in Recoil');\n previousTree = store.getState().currentTree; // attempt to trundle on\n }\n\n const atomValues = externallyVisibleAtomValuesInState(currentTree);\n const previousAtomValues = externallyVisibleAtomValuesInState(previousTree);\n const atomInfo = Recoil_mapMap(nodes$1, node => {\n var _node$persistence_UNS, _node$persistence_UNS2, _node$persistence_UNS3, _node$persistence_UNS4;\n\n return {\n persistence_UNSTABLE: {\n type: (_node$persistence_UNS = (_node$persistence_UNS2 = node.persistence_UNSTABLE) === null || _node$persistence_UNS2 === void 0 ? void 0 : _node$persistence_UNS2.type) !== null && _node$persistence_UNS !== void 0 ? _node$persistence_UNS : 'none',\n backButton: (_node$persistence_UNS3 = (_node$persistence_UNS4 = node.persistence_UNSTABLE) === null || _node$persistence_UNS4 === void 0 ? void 0 : _node$persistence_UNS4.backButton) !== null && _node$persistence_UNS3 !== void 0 ? _node$persistence_UNS3 : false\n }\n };\n }); // Filter on existance in atomValues so that externally-visible rules\n // are also applied to modified atoms (specifically exclude selectors):\n\n const modifiedAtoms = Recoil_filterSet(currentTree.dirtyAtoms, k => atomValues.has(k) || previousAtomValues.has(k));\n callback({\n atomValues,\n previousAtomValues,\n atomInfo,\n modifiedAtoms,\n transactionMetadata: { ...currentTree.transactionMetadata\n }\n });\n }, [callback]));\n}\n\nfunction useRecoilTransactionObserver(callback) {\n useTransactionSubscription(useCallback$2(store => {\n const snapshot = cloneSnapshot$1(store, 'latest');\n const previousSnapshot = cloneSnapshot$1(store, 'previous');\n callback({\n snapshot,\n previousSnapshot\n });\n }, [callback]));\n} // Return a snapshot of the current state and subscribe to all state changes\n\n\nfunction useRecoilSnapshot() {\n const storeRef = useStoreRef$3();\n const [snapshot, setSnapshot] = useState$2(() => cloneSnapshot$1(storeRef.current));\n const previousSnapshot = Recoil_usePrevious(snapshot);\n const timeoutID = useRef$5();\n const releaseRef = useRef$5();\n useTransactionSubscription(useCallback$2(store => setSnapshot(cloneSnapshot$1(store)), [])); // Retain snapshot for duration component is mounted\n\n useEffect$4(() => {\n const release = snapshot.retain(); // Release the retain from the rendering call\n\n if (timeoutID.current && !isSSR$4) {\n var _releaseRef$current;\n\n window.clearTimeout(timeoutID.current);\n timeoutID.current = null;\n (_releaseRef$current = releaseRef.current) === null || _releaseRef$current === void 0 ? void 0 : _releaseRef$current.call(releaseRef);\n releaseRef.current = null;\n }\n\n return () => {\n // Defer the release. If \"Fast Refresh\"\" is used then the component may\n // re-render with the same state. The previous cleanup will then run and\n // then the new effect will run. We don't want the snapshot to be released\n // by that cleanup before the new effect has a chance to retain it again.\n // Use timeout of 10 to workaround Firefox issue: https://github.com/facebookexperimental/Recoil/issues/1936\n window.setTimeout(release, 10);\n };\n }, [snapshot]); // Retain snapshot until above effect is run.\n // Release after a threshold in case component is suspended.\n\n if (previousSnapshot !== snapshot && !isSSR$4) {\n // Release the previous snapshot\n if (timeoutID.current) {\n var _releaseRef$current2;\n\n window.clearTimeout(timeoutID.current);\n timeoutID.current = null;\n (_releaseRef$current2 = releaseRef.current) === null || _releaseRef$current2 === void 0 ? void 0 : _releaseRef$current2.call(releaseRef);\n releaseRef.current = null;\n }\n\n releaseRef.current = snapshot.retain();\n timeoutID.current = window.setTimeout(() => {\n var _releaseRef$current3;\n\n timeoutID.current = null;\n (_releaseRef$current3 = releaseRef.current) === null || _releaseRef$current3 === void 0 ? void 0 : _releaseRef$current3.call(releaseRef);\n releaseRef.current = null;\n }, SUSPENSE_TIMEOUT_MS$2);\n }\n\n return snapshot;\n}\n\nfunction gotoSnapshot(store, snapshot) {\n var _storeState$nextTree;\n\n const storeState = store.getState();\n const prev = (_storeState$nextTree = storeState.nextTree) !== null && _storeState$nextTree !== void 0 ? _storeState$nextTree : storeState.currentTree;\n const next = snapshot.getStore_INTERNAL().getState().currentTree;\n batchUpdates$3(() => {\n const keysToUpdate = new Set();\n\n for (const keys of [prev.atomValues.keys(), next.atomValues.keys()]) {\n for (const key of keys) {\n var _prev$atomValues$get, _next$atomValues$get;\n\n if (((_prev$atomValues$get = prev.atomValues.get(key)) === null || _prev$atomValues$get === void 0 ? void 0 : _prev$atomValues$get.contents) !== ((_next$atomValues$get = next.atomValues.get(key)) === null || _next$atomValues$get === void 0 ? void 0 : _next$atomValues$get.contents) && getNode$4(key).shouldRestoreFromSnapshots) {\n keysToUpdate.add(key);\n }\n }\n }\n\n keysToUpdate.forEach(key => {\n setRecoilValueLoadable$1(store, new AbstractRecoilValue$4(key), next.atomValues.has(key) ? Recoil_nullthrows(next.atomValues.get(key)) : DEFAULT_VALUE$3);\n });\n store.replaceState(state => ({ ...state,\n stateID: snapshot.getID()\n }));\n });\n}\n\nfunction useGotoRecoilSnapshot() {\n const storeRef = useStoreRef$3();\n return useCallback$2(snapshot => gotoSnapshot(storeRef.current, snapshot), [storeRef]);\n}\n\nvar Recoil_SnapshotHooks = {\n useRecoilSnapshot,\n gotoSnapshot,\n useGotoRecoilSnapshot,\n useRecoilTransactionObserver,\n useTransactionObservation_DEPRECATED,\n useTransactionSubscription_DEPRECATED: useTransactionSubscription\n};\n\nconst {\n peekNodeInfo: peekNodeInfo$2\n} = Recoil_FunctionalCore;\n\nconst {\n useStoreRef: useStoreRef$4\n} = Recoil_RecoilRoot;\n\nfunction useGetRecoilValueInfo() {\n const storeRef = useStoreRef$4(); // $FlowFixMe[incompatible-return]\n\n return ({\n key\n }) => peekNodeInfo$2(storeRef.current, storeRef.current.getState().currentTree, key);\n}\n\nvar Recoil_useGetRecoilValueInfo = useGetRecoilValueInfo;\n\nconst {\n reactMode: reactMode$4\n} = Recoil_ReactMode;\n\nconst {\n RecoilRoot: RecoilRoot$1,\n useStoreRef: useStoreRef$5\n} = Recoil_RecoilRoot;\n\n\n\nconst {\n useMemo: useMemo$2\n} = react;\n\nfunction useRecoilBridgeAcrossReactRoots() {\n // The test fails when using useMutableSource(), but only if act() is used\n // for the nested root. So, this may only be a testing environment issue.\n if (reactMode$4().mode === 'MUTABLE_SOURCE') {\n // eslint-disable-next-line fb-www/no-console\n console.warn('Warning: There are known issues using useRecoilBridgeAcrossReactRoots() in recoil_mutable_source rendering mode. Please consider upgrading to recoil_sync_external_store mode.');\n }\n\n const store = useStoreRef$5().current;\n return useMemo$2(() => {\n // eslint-disable-next-line no-shadow\n function RecoilBridge({\n children\n }) {\n return /*#__PURE__*/react.createElement(RecoilRoot$1, {\n store_INTERNAL: store\n }, children);\n }\n\n return RecoilBridge;\n }, [store]);\n}\n\nvar Recoil_useRecoilBridgeAcrossReactRoots = useRecoilBridgeAcrossReactRoots;\n\nconst {\n loadableWithValue: loadableWithValue$1\n} = Recoil_Loadable$1;\n\nconst {\n initializeNode: initializeNode$3\n} = Recoil_FunctionalCore;\n\nconst {\n DEFAULT_VALUE: DEFAULT_VALUE$4,\n getNode: getNode$5\n} = Recoil_Node;\n\nconst {\n copyTreeState: copyTreeState$1,\n getRecoilValueAsLoadable: getRecoilValueAsLoadable$3,\n invalidateDownstreams: invalidateDownstreams$1,\n writeLoadableToTreeState: writeLoadableToTreeState$1\n} = Recoil_RecoilValueInterface;\n\n\n\nfunction isAtom(recoilValue) {\n return getNode$5(recoilValue.key).nodeType === 'atom';\n}\n\nclass TransactionInterfaceImpl {\n constructor(store, treeState) {\n _defineProperty(this, \"_store\", void 0);\n\n _defineProperty(this, \"_treeState\", void 0);\n\n _defineProperty(this, \"_changes\", void 0);\n\n _defineProperty(this, \"get\", recoilValue => {\n if (this._changes.has(recoilValue.key)) {\n // $FlowIssue[incompatible-return]\n return this._changes.get(recoilValue.key);\n }\n\n if (!isAtom(recoilValue)) {\n throw Recoil_err('Reading selectors within atomicUpdate is not supported');\n }\n\n const loadable = getRecoilValueAsLoadable$3(this._store, recoilValue, this._treeState);\n\n if (loadable.state === 'hasValue') {\n return loadable.contents;\n } else if (loadable.state === 'hasError') {\n throw loadable.contents;\n } else {\n throw Recoil_err(`Expected Recoil atom ${recoilValue.key} to have a value, but it is in a loading state.`);\n }\n });\n\n _defineProperty(this, \"set\", (recoilState, valueOrUpdater) => {\n if (!isAtom(recoilState)) {\n throw Recoil_err('Setting selectors within atomicUpdate is not supported');\n }\n\n if (typeof valueOrUpdater === 'function') {\n const current = this.get(recoilState);\n\n this._changes.set(recoilState.key, valueOrUpdater(current)); // flowlint-line unclear-type:off\n\n } else {\n // Initialize atom and run effects if not initialized yet\n initializeNode$3(this._store, recoilState.key, 'set');\n\n this._changes.set(recoilState.key, valueOrUpdater);\n }\n });\n\n _defineProperty(this, \"reset\", recoilState => {\n this.set(recoilState, DEFAULT_VALUE$4);\n });\n\n this._store = store;\n this._treeState = treeState;\n this._changes = new Map();\n } // Allow destructing\n // eslint-disable-next-line fb-www/extra-arrow-initializer\n\n\n newTreeState_INTERNAL() {\n if (this._changes.size === 0) {\n return this._treeState;\n }\n\n const newState = copyTreeState$1(this._treeState);\n\n for (const [k, v] of this._changes) {\n writeLoadableToTreeState$1(newState, k, loadableWithValue$1(v));\n }\n\n invalidateDownstreams$1(this._store, newState);\n return newState;\n }\n\n}\n\nfunction atomicUpdater(store) {\n return fn => {\n store.replaceState(treeState => {\n const changeset = new TransactionInterfaceImpl(store, treeState);\n fn(changeset);\n return changeset.newTreeState_INTERNAL();\n });\n };\n}\n\nvar Recoil_AtomicUpdates = {\n atomicUpdater\n};\n\nvar Recoil_AtomicUpdates_1 = Recoil_AtomicUpdates.atomicUpdater;\n\nvar Recoil_AtomicUpdates$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n atomicUpdater: Recoil_AtomicUpdates_1\n});\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 * @oncall recoil\n */\n\nfunction invariant(condition, message) {\n if (!condition) {\n throw new Error(message);\n }\n}\n\nvar invariant_1 = invariant;\n\n// @oss-only\n\n\nvar Recoil_invariant = invariant_1;\n\nconst {\n atomicUpdater: atomicUpdater$1\n} = Recoil_AtomicUpdates$1;\n\nconst {\n batchUpdates: batchUpdates$4\n} = Recoil_Batching;\n\nconst {\n DEFAULT_VALUE: DEFAULT_VALUE$5\n} = Recoil_Node;\n\nconst {\n useStoreRef: useStoreRef$6\n} = Recoil_RecoilRoot;\n\nconst {\n refreshRecoilValue: refreshRecoilValue$1,\n setRecoilValue: setRecoilValue$3\n} = Recoil_RecoilValueInterface;\n\nconst {\n cloneSnapshot: cloneSnapshot$2\n} = Recoil_Snapshot$1;\n\nconst {\n gotoSnapshot: gotoSnapshot$1\n} = Recoil_SnapshotHooks;\n\nconst {\n useCallback: useCallback$3\n} = react;\n\n\n\n\n\n\n\n\n\nclass Sentinel {}\n\nconst SENTINEL = new Sentinel();\n\nfunction recoilCallback(store, fn, args, extraInterface) {\n let ret = SENTINEL;\n let releaseSnapshot;\n batchUpdates$4(() => {\n const errMsg = 'useRecoilCallback() expects a function that returns a function: ' + 'it accepts a function of the type (RecoilInterface) => (Args) => ReturnType ' + 'and returns a callback function (Args) => ReturnType, where RecoilInterface is ' + 'an object {snapshot, set, ...} and Args and ReturnType are the argument and return ' + 'types of the callback you want to create. Please see the docs ' + 'at recoiljs.org for details.';\n\n if (typeof fn !== 'function') {\n throw Recoil_err(errMsg);\n } // Clone the snapshot lazily to avoid overhead if the callback does not use it.\n // Note that this means the snapshot may represent later state from when\n // the callback was called if it first accesses the snapshot asynchronously.\n\n\n const callbackInterface = Recoil_lazyProxy({ ...(extraInterface !== null && extraInterface !== void 0 ? extraInterface : {}),\n // flowlint-line unclear-type:off\n // $FlowFixMe[missing-local-annot]\n set: (node, newValue) => setRecoilValue$3(store, node, newValue),\n // $FlowFixMe[missing-local-annot]\n reset: node => setRecoilValue$3(store, node, DEFAULT_VALUE$5),\n // $FlowFixMe[missing-local-annot]\n refresh: node => refreshRecoilValue$1(store, node),\n gotoSnapshot: snapshot => gotoSnapshot$1(store, snapshot),\n transact_UNSTABLE: transaction => atomicUpdater$1(store)(transaction)\n }, {\n snapshot: () => {\n const snapshot = cloneSnapshot$2(store);\n releaseSnapshot = snapshot.retain();\n return snapshot;\n }\n });\n const callback = fn(callbackInterface);\n\n if (typeof callback !== 'function') {\n throw Recoil_err(errMsg);\n }\n\n ret = callback(...args);\n });\n !!(ret instanceof Sentinel) ? process.env.NODE_ENV !== \"production\" ? Recoil_invariant(false, 'batchUpdates should return immediately') : Recoil_invariant(false) : void 0;\n\n if (Recoil_isPromise(ret)) {\n ret = ret.finally(() => {\n var _releaseSnapshot;\n\n (_releaseSnapshot = releaseSnapshot) === null || _releaseSnapshot === void 0 ? void 0 : _releaseSnapshot();\n });\n } else {\n var _releaseSnapshot2;\n\n (_releaseSnapshot2 = releaseSnapshot) === null || _releaseSnapshot2 === void 0 ? void 0 : _releaseSnapshot2();\n }\n\n return ret;\n}\n\nfunction useRecoilCallback(fn, deps) {\n const storeRef = useStoreRef$6();\n return useCallback$3( // $FlowIssue[incompatible-call]\n (...args) => {\n return recoilCallback(storeRef.current, fn, args);\n }, deps != null ? [...deps, storeRef] : undefined // eslint-disable-line fb-www/react-hooks-deps\n );\n}\n\nvar Recoil_useRecoilCallback = {\n recoilCallback,\n useRecoilCallback\n};\n\nconst {\n useStoreRef: useStoreRef$7\n} = Recoil_RecoilRoot;\n\nconst {\n refreshRecoilValue: refreshRecoilValue$2\n} = Recoil_RecoilValueInterface;\n\nconst {\n useCallback: useCallback$4\n} = react;\n\nfunction useRecoilRefresher(recoilValue) {\n const storeRef = useStoreRef$7();\n return useCallback$4(() => {\n const store = storeRef.current;\n refreshRecoilValue$2(store, recoilValue);\n }, [recoilValue, storeRef]);\n}\n\nvar Recoil_useRecoilRefresher = useRecoilRefresher;\n\nconst {\n atomicUpdater: atomicUpdater$2\n} = Recoil_AtomicUpdates$1;\n\nconst {\n useStoreRef: useStoreRef$8\n} = Recoil_RecoilRoot;\n\nconst {\n useMemo: useMemo$3\n} = react;\n\nfunction useRecoilTransaction(fn, deps) {\n const storeRef = useStoreRef$8();\n return useMemo$3(() => (...args) => {\n const atomicUpdate = atomicUpdater$2(storeRef.current);\n atomicUpdate(transactionInterface => {\n fn(transactionInterface)(...args);\n });\n }, deps != null ? [...deps, storeRef] : undefined // eslint-disable-line fb-www/react-hooks-deps\n );\n}\n\nvar Recoil_useRecoilTransaction = useRecoilTransaction;\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 * @oncall recoil\n */\n\nclass WrappedValue {\n constructor(value) {\n _defineProperty(this, \"value\", void 0);\n\n this.value = value;\n }\n\n}\n\nvar Recoil_Wrapper = {\n WrappedValue\n};\n\nvar Recoil_Wrapper_1 = Recoil_Wrapper.WrappedValue;\n\nvar Recoil_Wrapper$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n WrappedValue: Recoil_Wrapper_1\n});\n\nconst {\n isFastRefreshEnabled: isFastRefreshEnabled$2\n} = Recoil_ReactMode;\n\n\n\nclass ChangedPathError extends Error {}\n\nclass TreeCache {\n // $FlowIssue[unclear-type]\n constructor(options) {\n var _options$onHit, _options$onSet, _options$mapNodeValue;\n\n _defineProperty(this, \"_name\", void 0);\n\n _defineProperty(this, \"_numLeafs\", void 0);\n\n _defineProperty(this, \"_root\", void 0);\n\n _defineProperty(this, \"_onHit\", void 0);\n\n _defineProperty(this, \"_onSet\", void 0);\n\n _defineProperty(this, \"_mapNodeValue\", void 0);\n\n this._name = options === null || options === void 0 ? void 0 : options.name;\n this._numLeafs = 0;\n this._root = null;\n this._onHit = (_options$onHit = options === null || options === void 0 ? void 0 : options.onHit) !== null && _options$onHit !== void 0 ? _options$onHit : () => {};\n this._onSet = (_options$onSet = options === null || options === void 0 ? void 0 : options.onSet) !== null && _options$onSet !== void 0 ? _options$onSet : () => {};\n this._mapNodeValue = (_options$mapNodeValue = options === null || options === void 0 ? void 0 : options.mapNodeValue) !== null && _options$mapNodeValue !== void 0 ? _options$mapNodeValue : val => val;\n }\n\n size() {\n return this._numLeafs;\n } // $FlowIssue[unclear-type]\n\n\n root() {\n return this._root;\n }\n\n get(getNodeValue, handlers) {\n var _this$getLeafNode;\n\n return (_this$getLeafNode = this.getLeafNode(getNodeValue, handlers)) === null || _this$getLeafNode === void 0 ? void 0 : _this$getLeafNode.value;\n }\n\n getLeafNode(getNodeValue, handlers) {\n if (this._root == null) {\n return undefined;\n } // Iterate down the tree based on the current node values until we hit a leaf\n // $FlowIssue[unclear-type]\n\n\n let node = this._root;\n\n while (node) {\n handlers === null || handlers === void 0 ? void 0 : handlers.onNodeVisit(node);\n\n if (node.type === 'leaf') {\n this._onHit(node);\n\n return node;\n }\n\n const nodeValue = this._mapNodeValue(getNodeValue(node.nodeKey));\n\n node = node.branches.get(nodeValue);\n }\n\n return undefined;\n }\n\n set(route, value, handlers) {\n const addLeaf = () => {\n var _node2, _node3, _this$_root2, _handlers$onNodeVisit2;\n\n // First, setup the branch nodes for the route:\n // Iterate down the tree to find or add branch nodes following the route\n let node;\n let branchKey;\n\n for (const [nodeKey, nodeValue] of route) {\n var _node, _handlers$onNodeVisit, _this$_root;\n\n // If the previous root was a leaf, while we not have a get(), it means\n // the selector has inconsistent values or implementation changed.\n const root = this._root;\n\n if ((root === null || root === void 0 ? void 0 : root.type) === 'leaf') {\n throw this.invalidCacheError();\n } // node now refers to the next node down in the tree\n\n\n const parent = node; // $FlowFixMe[prop-missing]\n // $FlowFixMe[incompatible-type]\n\n node = parent ? parent.branches.get(branchKey) : root; // $FlowFixMe[prop-missing]\n // $FlowFixMe[incompatible-type]\n\n node = (_node = node) !== null && _node !== void 0 ? _node : {\n type: 'branch',\n nodeKey,\n parent,\n branches: new Map(),\n branchKey\n }; // If we found an existing node, confirm it has a consistent value\n\n if (node.type !== 'branch' || node.nodeKey !== nodeKey) {\n throw this.invalidCacheError();\n } // Add the branch node to the tree\n\n\n parent === null || parent === void 0 ? void 0 : parent.branches.set(branchKey, node);\n handlers === null || handlers === void 0 ? void 0 : (_handlers$onNodeVisit = handlers.onNodeVisit) === null || _handlers$onNodeVisit === void 0 ? void 0 : _handlers$onNodeVisit.call(handlers, node); // Prepare for next iteration and install root if it is new.\n\n branchKey = this._mapNodeValue(nodeValue);\n this._root = (_this$_root = this._root) !== null && _this$_root !== void 0 ? _this$_root : node;\n } // Second, setup the leaf node:\n // If there is an existing leaf for this route confirm it is consistent\n\n\n const oldLeaf = node ? (_node2 = node) === null || _node2 === void 0 ? void 0 : _node2.branches.get(branchKey) : this._root;\n\n if (oldLeaf != null && (oldLeaf.type !== 'leaf' || oldLeaf.branchKey !== branchKey)) {\n throw this.invalidCacheError();\n } // Create a new or replacement leaf.\n\n\n const leafNode = {\n type: 'leaf',\n value,\n parent: node,\n branchKey\n }; // Install the leaf and call handlers\n\n (_node3 = node) === null || _node3 === void 0 ? void 0 : _node3.branches.set(branchKey, leafNode);\n this._root = (_this$_root2 = this._root) !== null && _this$_root2 !== void 0 ? _this$_root2 : leafNode;\n this._numLeafs++;\n\n this._onSet(leafNode);\n\n handlers === null || handlers === void 0 ? void 0 : (_handlers$onNodeVisit2 = handlers.onNodeVisit) === null || _handlers$onNodeVisit2 === void 0 ? void 0 : _handlers$onNodeVisit2.call(handlers, leafNode);\n };\n\n try {\n addLeaf();\n } catch (error) {\n // If the cache was stale or observed inconsistent values, such as with\n // Fast Refresh, then clear it and rebuild with the new values.\n if (error instanceof ChangedPathError) {\n this.clear();\n addLeaf();\n } else {\n throw error;\n }\n }\n } // Returns true if leaf was actually deleted from the tree\n\n\n delete(leaf) {\n const root = this.root();\n\n if (!root) {\n return false;\n }\n\n if (leaf === root) {\n this._root = null;\n this._numLeafs = 0;\n return true;\n } // Iterate up from the leaf deleteing it from it's parent's branches.\n\n\n let node = leaf.parent;\n let branchKey = leaf.branchKey;\n\n while (node) {\n var _node4;\n\n node.branches.delete(branchKey); // Stop iterating if we hit the root.\n\n if (node === root) {\n if (node.branches.size === 0) {\n this._root = null;\n this._numLeafs = 0;\n } else {\n this._numLeafs--;\n }\n\n return true;\n } // Stop iterating if there are other branches since we don't need to\n // remove any more nodes.\n\n\n if (node.branches.size > 0) {\n break;\n } // Iterate up to our parent\n\n\n branchKey = (_node4 = node) === null || _node4 === void 0 ? void 0 : _node4.branchKey;\n node = node.parent;\n } // Confirm that the leaf we are deleting is actually attached to our tree\n\n\n for (; node !== root; node = node.parent) {\n if (node == null) {\n return false;\n }\n }\n\n this._numLeafs--;\n return true;\n }\n\n clear() {\n this._numLeafs = 0;\n this._root = null;\n }\n\n invalidCacheError() {\n const CHANGED_PATH_ERROR_MESSAGE = isFastRefreshEnabled$2() ? 'Possible Fast Refresh module reload detected. ' + 'This may also be caused by an selector returning inconsistent values. ' + 'Resetting cache.' : 'Invalid cache values. This happens when selectors do not return ' + 'consistent values for the same input dependency values. That may also ' + 'be caused when using Fast Refresh to change a selector implementation. ' + 'Resetting cache.';\n Recoil_recoverableViolation(CHANGED_PATH_ERROR_MESSAGE + (this._name != null ? ` - ${this._name}` : ''));\n throw new ChangedPathError();\n }\n\n}\n\nvar Recoil_TreeCache = {\n TreeCache\n};\n\nvar Recoil_TreeCache_1 = Recoil_TreeCache.TreeCache;\n\nvar Recoil_TreeCache$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n TreeCache: Recoil_TreeCache_1\n});\n\nclass LRUCache {\n constructor(options) {\n var _options$mapKey;\n\n _defineProperty(this, \"_maxSize\", void 0);\n\n _defineProperty(this, \"_size\", void 0);\n\n _defineProperty(this, \"_head\", void 0);\n\n _defineProperty(this, \"_tail\", void 0);\n\n _defineProperty(this, \"_map\", void 0);\n\n _defineProperty(this, \"_keyMapper\", void 0);\n\n this._maxSize = options.maxSize;\n this._size = 0;\n this._head = null;\n this._tail = null;\n this._map = new Map();\n this._keyMapper = (_options$mapKey = options.mapKey) !== null && _options$mapKey !== void 0 ? _options$mapKey : v => v;\n }\n\n head() {\n return this._head;\n }\n\n tail() {\n return this._tail;\n }\n\n size() {\n return this._size;\n }\n\n maxSize() {\n return this._maxSize;\n }\n\n has(key) {\n return this._map.has(this._keyMapper(key));\n }\n\n get(key) {\n const mappedKey = this._keyMapper(key);\n\n const node = this._map.get(mappedKey);\n\n if (!node) {\n return undefined;\n }\n\n this.set(key, node.value);\n return node.value;\n }\n\n set(key, val) {\n const mappedKey = this._keyMapper(key);\n\n const existingNode = this._map.get(mappedKey);\n\n if (existingNode) {\n this.delete(key);\n }\n\n const head = this.head();\n const node = {\n key,\n right: head,\n left: null,\n value: val\n };\n\n if (head) {\n head.left = node;\n } else {\n this._tail = node;\n }\n\n this._map.set(mappedKey, node);\n\n this._head = node;\n this._size++;\n\n this._maybeDeleteLRU();\n }\n\n _maybeDeleteLRU() {\n if (this.size() > this.maxSize()) {\n this.deleteLru();\n }\n }\n\n deleteLru() {\n const tail = this.tail();\n\n if (tail) {\n this.delete(tail.key);\n }\n }\n\n delete(key) {\n const mappedKey = this._keyMapper(key);\n\n if (!this._size || !this._map.has(mappedKey)) {\n return;\n }\n\n const node = Recoil_nullthrows(this._map.get(mappedKey));\n const right = node.right;\n const left = node.left;\n\n if (right) {\n right.left = node.left;\n }\n\n if (left) {\n left.right = node.right;\n }\n\n if (node === this.head()) {\n this._head = right;\n }\n\n if (node === this.tail()) {\n this._tail = left;\n }\n\n this._map.delete(mappedKey);\n\n this._size--;\n }\n\n clear() {\n this._size = 0;\n this._head = null;\n this._tail = null;\n this._map = new Map();\n }\n\n}\n\nvar Recoil_LRUCache = {\n LRUCache\n};\n\nvar Recoil_LRUCache_1 = Recoil_LRUCache.LRUCache;\n\nvar Recoil_LRUCache$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n LRUCache: Recoil_LRUCache_1\n});\n\nconst {\n LRUCache: LRUCache$1\n} = Recoil_LRUCache$1;\n\nconst {\n TreeCache: TreeCache$1\n} = Recoil_TreeCache$1;\n\nfunction treeCacheLRU({\n name,\n maxSize,\n mapNodeValue = v => v\n}) {\n const lruCache = new LRUCache$1({\n maxSize\n });\n const cache = new TreeCache$1({\n name,\n mapNodeValue,\n onHit: node => {\n lruCache.set(node, true);\n },\n onSet: node => {\n const lruNode = lruCache.tail();\n lruCache.set(node, true);\n\n if (lruNode && cache.size() > maxSize) {\n // $FlowFixMe[incompatible-call]\n cache.delete(lruNode.key);\n }\n }\n });\n return cache;\n}\n\nvar Recoil_treeCacheLRU = treeCacheLRU;\n\nconst TIME_WARNING_THRESHOLD_MS = 15;\n\nfunction stringify(x, opt, key) {\n // A optimization to avoid the more expensive JSON.stringify() for simple strings\n // This may lose protection for u2028 and u2029, though.\n if (typeof x === 'string' && !x.includes('\"') && !x.includes('\\\\')) {\n return `\"${x}\"`;\n } // Handle primitive types\n\n\n switch (typeof x) {\n case 'undefined':\n return '';\n // JSON.stringify(undefined) returns undefined, but we always want to return a string\n\n case 'boolean':\n return x ? 'true' : 'false';\n\n case 'number':\n case 'symbol':\n // case 'bigint': // BigInt is not supported in www\n return String(x);\n\n case 'string':\n // Add surrounding quotes and escape internal quotes\n return JSON.stringify(x);\n\n case 'function':\n if ((opt === null || opt === void 0 ? void 0 : opt.allowFunctions) !== true) {\n throw Recoil_err('Attempt to serialize function in a Recoil cache key');\n }\n\n return `__FUNCTION(${x.name})__`;\n }\n\n if (x === null) {\n return 'null';\n } // Fallback case for unknown types\n\n\n if (typeof x !== 'object') {\n var _JSON$stringify;\n\n return (_JSON$stringify = JSON.stringify(x)) !== null && _JSON$stringify !== void 0 ? _JSON$stringify : '';\n } // Deal with all promises as equivalent for now.\n\n\n if (Recoil_isPromise(x)) {\n return '__PROMISE__';\n } // Arrays handle recursive stringification\n\n\n if (Array.isArray(x)) {\n // $FlowFixMe[missing-local-annot]\n return `[${x.map((v, i) => stringify(v, opt, i.toString()))}]`;\n } // If an object defines a toJSON() method, then use that to override the\n // serialization. This matches the behavior of JSON.stringify().\n // Pass the key for compatibility.\n // Immutable.js collections define this method to allow us to serialize them.\n\n\n if (typeof x.toJSON === 'function') {\n // flowlint-next-line unclear-type: off\n return stringify(x.toJSON(key), opt, key);\n } // For built-in Maps, sort the keys in a stable order instead of the\n // default insertion order. Support non-string keys.\n\n\n if (x instanceof Map) {\n const obj = {};\n\n for (const [k, v] of x) {\n // Stringify will escape any nested quotes\n obj[typeof k === 'string' ? k : stringify(k, opt)] = v;\n }\n\n return stringify(obj, opt, key);\n } // For built-in Sets, sort the keys in a stable order instead of the\n // default insertion order.\n\n\n if (x instanceof Set) {\n return stringify( // $FlowFixMe[missing-local-annot]\n Array.from(x).sort((a, b) => stringify(a, opt).localeCompare(stringify(b, opt))), opt, key);\n } // Anything else that is iterable serialize as an Array.\n\n\n if (Symbol !== undefined && x[Symbol.iterator] != null && typeof x[Symbol.iterator] === 'function') {\n // flowlint-next-line unclear-type: off\n return stringify(Array.from(x), opt, key);\n } // For all other Objects, sort the keys in a stable order.\n\n\n return `{${Object.keys(x).filter(k => x[k] !== undefined).sort() // stringify the key to add quotes and escape any nested slashes or quotes.\n .map(k => `${stringify(k, opt)}:${stringify(x[k], opt, k)}`).join(',')}}`;\n} // Utility similar to JSON.stringify() except:\n// * Serialize built-in Sets as an Array\n// * Serialize built-in Maps as an Object. Supports non-string keys.\n// * Serialize other iterables as arrays\n// * Sort the keys of Objects and Maps to have a stable order based on string conversion.\n// This overrides their default insertion order.\n// * Still uses toJSON() of any object to override serialization\n// * Support Symbols (though don't guarantee uniqueness)\n// * We could support BigInt, but Flow doesn't seem to like it.\n// See Recoil_stableStringify-test.js for examples\n\n\nfunction stableStringify(x, opt = {\n allowFunctions: false\n}) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof window !== 'undefined') {\n const startTime = window.performance ? window.performance.now() : 0;\n const str = stringify(x, opt);\n const endTime = window.performance ? window.performance.now() : 0;\n\n if (endTime - startTime > TIME_WARNING_THRESHOLD_MS) {\n /* eslint-disable fb-www/no-console */\n console.groupCollapsed(`Recoil: Spent ${endTime - startTime}ms computing a cache key`);\n console.warn(x, str);\n console.groupEnd();\n /* eslint-enable fb-www/no-console */\n }\n\n return str;\n }\n }\n\n return stringify(x, opt);\n}\n\nvar Recoil_stableStringify = stableStringify;\n\nconst {\n TreeCache: TreeCache$2\n} = Recoil_TreeCache$1;\n\n\n\n\n\n\n\n\n\nconst defaultPolicy = {\n equality: 'reference',\n eviction: 'keep-all',\n maxSize: Infinity\n};\n\nfunction treeCacheFromPolicy({\n equality = defaultPolicy.equality,\n eviction = defaultPolicy.eviction,\n maxSize = defaultPolicy.maxSize\n} = defaultPolicy, name) {\n const valueMapper = getValueMapper(equality);\n return getTreeCache(eviction, maxSize, valueMapper, name);\n}\n\nfunction getValueMapper(equality) {\n switch (equality) {\n case 'reference':\n return val => val;\n\n case 'value':\n return val => Recoil_stableStringify(val);\n }\n\n throw Recoil_err(`Unrecognized equality policy ${equality}`);\n}\n\nfunction getTreeCache(eviction, maxSize, mapNodeValue, name) {\n switch (eviction) {\n case 'keep-all':\n return new TreeCache$2({\n name,\n mapNodeValue\n });\n\n case 'lru':\n return Recoil_treeCacheLRU({\n name,\n maxSize: Recoil_nullthrows(maxSize),\n mapNodeValue\n });\n\n case 'most-recent':\n return Recoil_treeCacheLRU({\n name,\n maxSize: 1,\n mapNodeValue\n });\n }\n\n throw Recoil_err(`Unrecognized eviction policy ${eviction}`);\n}\n\nvar Recoil_treeCacheFromPolicy = treeCacheFromPolicy;\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 * @oncall recoil\n */\n\nfunction isNode(object) {\n var _ownerDocument, _doc$defaultView;\n\n if (typeof window === 'undefined') {\n return false;\n }\n\n const doc = object != null ? (_ownerDocument = object.ownerDocument) !== null && _ownerDocument !== void 0 ? _ownerDocument : object : document;\n const defaultView = (_doc$defaultView = doc.defaultView) !== null && _doc$defaultView !== void 0 ? _doc$defaultView : window;\n return !!(object != null && (typeof defaultView.Node === 'function' ? object instanceof defaultView.Node : typeof object === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string'));\n}\n\nvar Recoil_isNode = isNode;\n\nconst {\n isReactNative: isReactNative$1,\n isWindow: isWindow$1\n} = Recoil_Environment;\n\n\n\n\n\nfunction shouldNotBeFrozen(value) {\n // Primitives and functions:\n if (value === null || typeof value !== 'object') {\n return true;\n } // React elements:\n\n\n switch (typeof value.$$typeof) {\n case 'symbol':\n return true;\n\n case 'number':\n return true;\n } // Immutable structures:\n\n\n if (value['@@__IMMUTABLE_ITERABLE__@@'] != null || value['@@__IMMUTABLE_KEYED__@@'] != null || value['@@__IMMUTABLE_INDEXED__@@'] != null || value['@@__IMMUTABLE_ORDERED__@@'] != null || value['@@__IMMUTABLE_RECORD__@@'] != null) {\n return true;\n } // DOM nodes:\n\n\n if (Recoil_isNode(value)) {\n return true;\n }\n\n if (Recoil_isPromise(value)) {\n return true;\n }\n\n if (value instanceof Error) {\n return true;\n }\n\n if (ArrayBuffer.isView(value)) {\n return true;\n } // Some environments, just as Jest, don't work with the instanceof check\n\n\n if (!isReactNative$1 && isWindow$1(value)) {\n return true;\n }\n\n return false;\n} // Recursively freeze a value to enforce it is read-only.\n// This may also have minimal performance improvements for enumerating\n// objects (based on browser implementations, of course)\n\n\nfunction deepFreezeValue(value) {\n if (typeof value !== 'object' || shouldNotBeFrozen(value)) {\n return;\n }\n\n Object.freeze(value); // Make all properties read-only\n\n for (const key in value) {\n // $FlowIssue[method-unbinding] added when improving typing for this parameters\n if (Object.prototype.hasOwnProperty.call(value, key)) {\n const prop = value[key]; // Prevent infinite recurssion for circular references.\n\n if (typeof prop === 'object' && prop != null && !Object.isFrozen(prop)) {\n deepFreezeValue(prop);\n }\n }\n }\n\n Object.seal(value); // This also makes existing properties non-configurable.\n}\n\nvar Recoil_deepFreezeValue = deepFreezeValue;\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * This is a stub for some integration into FB internal stuff\n *\n * \n * @format\n * @oncall recoil\n */\nfunction startPerfBlock(_id) {\n return () => null;\n}\n\nvar Recoil_PerformanceTimings = {\n startPerfBlock\n};\n\nconst {\n isLoadable: isLoadable$1,\n loadableWithError: loadableWithError$1,\n loadableWithPromise: loadableWithPromise$1,\n loadableWithValue: loadableWithValue$2\n} = Recoil_Loadable$1;\n\nconst {\n WrappedValue: WrappedValue$1\n} = Recoil_Wrapper$1;\n\n\n\nconst {\n getNodeLoadable: getNodeLoadable$2,\n peekNodeLoadable: peekNodeLoadable$1,\n setNodeValue: setNodeValue$3\n} = Recoil_FunctionalCore;\n\nconst {\n saveDepsToStore: saveDepsToStore$1\n} = Recoil_Graph;\n\nconst {\n DEFAULT_VALUE: DEFAULT_VALUE$6,\n getConfigDeletionHandler: getConfigDeletionHandler$1,\n getNode: getNode$6,\n registerNode: registerNode$1\n} = Recoil_Node;\n\nconst {\n isRecoilValue: isRecoilValue$3\n} = Recoil_RecoilValue$1;\n\nconst {\n markRecoilValueModified: markRecoilValueModified$1\n} = Recoil_RecoilValueInterface;\n\nconst {\n retainedByOptionWithDefault: retainedByOptionWithDefault$1\n} = Recoil_Retention;\n\nconst {\n recoilCallback: recoilCallback$1\n} = Recoil_useRecoilCallback;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst {\n startPerfBlock: startPerfBlock$1\n} = Recoil_PerformanceTimings;\n\n\n\nclass Canceled {}\n\nconst CANCELED = new Canceled();\n/**\n * An ExecutionID is an arbitrary ID that lets us distinguish executions from\n * each other. This is necessary as we need a way of solving this problem:\n * \"given 3 async executions, only update state for the 'latest' execution when\n * it finishes running regardless of when the other 2 finish\". ExecutionIDs\n * provide a convenient way of identifying executions so that we can track and\n * manage them over time.\n */\n\nconst dependencyStack = []; // for detecting circular dependencies.\n\nconst waitingStores = new Map();\n\nconst getNewExecutionID = (() => {\n let executionID = 0;\n return () => executionID++;\n})();\n/* eslint-disable no-redeclare */\n\n\nfunction selector(options) {\n let recoilValue = null;\n const {\n key,\n get,\n cachePolicy_UNSTABLE: cachePolicy\n } = options;\n const set = options.set != null ? options.set : undefined; // flow\n\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof key !== 'string') {\n throw Recoil_err('A key option with a unique string value must be provided when creating a selector.');\n }\n\n if (typeof get !== 'function') {\n throw Recoil_err('Selectors must specify a get callback option to get the selector value.');\n }\n } // This is every discovered dependency across all executions\n\n\n const discoveredDependencyNodeKeys = new Set();\n const cache = Recoil_treeCacheFromPolicy(cachePolicy !== null && cachePolicy !== void 0 ? cachePolicy : {\n equality: 'reference',\n eviction: 'keep-all'\n }, key);\n const retainedBy = retainedByOptionWithDefault$1(options.retainedBy_UNSTABLE);\n const executionInfoMap = new Map();\n let liveStoresCount = 0;\n\n function selectorIsLive() {\n return !Recoil_gkx('recoil_memory_managament_2020') || liveStoresCount > 0;\n }\n\n function selectorInit(store) {\n store.getState().knownSelectors.add(key);\n liveStoresCount++;\n return () => {\n liveStoresCount--;\n };\n }\n\n function selectorShouldDeleteConfigOnRelease() {\n return getConfigDeletionHandler$1(key) !== undefined && !selectorIsLive();\n }\n\n function resolveAsync(store, state, executionID, loadable, depValues) {\n setCache(state, loadable, depValues);\n notifyStoresOfResolvedAsync(store, executionID);\n }\n\n function notifyStoresOfResolvedAsync(store, executionID) {\n if (isLatestExecution(store, executionID)) {\n clearExecutionInfo(store);\n }\n\n notifyWaitingStores(executionID, true);\n }\n /**\n * Notify stores to pull the selector again if a new async dep was discovered.\n * 1) Async selector adds a new dep but doesn't resolve yet.\n * Note that deps for an async selector are based on the state when the\n * evaluation started, in order to provide a consistent picture of state.\n * 2) But, new value of dep based on the current state might cause the selector\n * to resolve or resolve differently.\n * 3) Therefore, this notification will pull the selector based on the current\n * state for the components\n */\n\n\n function notifyStoresOfNewAsyncDep(store, executionID) {\n if (isLatestExecution(store, executionID)) {\n const executionInfo = Recoil_nullthrows(getExecutionInfo(store));\n executionInfo.stateVersions.clear();\n notifyWaitingStores(executionID, false);\n }\n }\n\n function notifyWaitingStores(executionID, clearWaitlist) {\n const stores = waitingStores.get(executionID);\n\n if (stores != null) {\n for (const waitingStore of stores) {\n markRecoilValueModified$1(waitingStore, Recoil_nullthrows(recoilValue));\n }\n\n if (clearWaitlist) {\n waitingStores.delete(executionID);\n }\n }\n }\n\n function markStoreWaitingForResolvedAsync(store, executionID) {\n let stores = waitingStores.get(executionID);\n\n if (stores == null) {\n waitingStores.set(executionID, stores = new Set());\n }\n\n stores.add(store);\n }\n /**\n * This function attaches a then() and a catch() to a promise that was\n * returned from a selector's get() (either explicitly or implicitly by\n * running a function that uses the \"async\" keyword). If a selector's get()\n * returns a promise, we have two possibilities:\n *\n * 1. The promise will resolve, in which case it will have completely finished\n * executing without any remaining pending dependencies. No more retries\n * are needed and we can proceed with updating the cache and notifying\n * subscribers (if it is the latest execution, otherwise only the cache\n * will be updated and subscriptions will not be fired). This is the case\n * handled by the attached then() handler.\n *\n * 2. The promise will throw because it either has an error or it came across\n * an async dependency that has not yet resolved, in which case we will\n * call wrapDepdencyPromise(), whose responsibility is to handle dependency\n * promises. This case is handled by the attached catch() handler.\n *\n * Both branches will eventually resolve to the final result of the selector\n * (or an error if a real error occurred).\n *\n * The execution will run to completion even if it is stale, and its value\n * will be cached. But stale executions will not update global state or update\n * executionInfo as that is the responsibility of the 'latest' execution.\n *\n * Note this function should not be passed a promise that was thrown--AKA a\n * dependency promise. Dependency promises should be passed to\n * wrapPendingDependencyPromise()).\n */\n\n\n function wrapResultPromise(store, promise, state, depValues, executionID, loadingDepsState) {\n return promise.then(value => {\n if (!selectorIsLive()) {\n // The selector was released since the request began; ignore the response.\n clearExecutionInfo(store);\n throw CANCELED;\n }\n\n const loadable = loadableWithValue$2(value);\n resolveAsync(store, state, executionID, loadable, depValues);\n return value;\n }).catch(errorOrPromise => {\n if (!selectorIsLive()) {\n // The selector was released since the request began; ignore the response.\n clearExecutionInfo(store);\n throw CANCELED;\n }\n\n if (Recoil_isPromise(errorOrPromise)) {\n return wrapPendingDependencyPromise(store, errorOrPromise, state, depValues, executionID, loadingDepsState);\n }\n\n const loadable = loadableWithError$1(errorOrPromise);\n resolveAsync(store, state, executionID, loadable, depValues);\n throw errorOrPromise;\n });\n }\n /**\n * This function attaches a then() and a catch() to a promise that was\n * thrown from a selector's get(). If a selector's get() throws a promise,\n * we have two possibilities:\n *\n * 1. The promise will resolve, meaning one of our selector's dependencies is\n * now available and we should \"retry\" our get() by running it again. This\n * is the case handled by the attached then() handler.\n *\n * 2. The promise will throw because something went wrong with the dependency\n * promise (in other words a real error occurred). This case is handled by\n * the attached catch() handler. If the dependency promise throws, it is\n * _always_ a real error and not another dependency promise (any dependency\n * promises would have been handled upstream).\n *\n * The then() branch will eventually resolve to the final result of the\n * selector (or an error if a real error occurs), and the catch() will always\n * resolve to an error because the dependency promise is a promise that was\n * wrapped upstream, meaning it will only resolve to its real value or to a\n * real error.\n *\n * The execution will run to completion even if it is stale, and its value\n * will be cached. But stale executions will not update global state or update\n * executionInfo as that is the responsibility of the 'latest' execution.\n *\n * Note this function should not be passed a promise that was returned from\n * get(). The intention is that this function is only passed promises that\n * were thrown due to a pending dependency. Promises returned by get() should\n * be passed to wrapResultPromise() instead.\n */\n\n\n function wrapPendingDependencyPromise(store, promise, state, existingDeps, executionID, loadingDepsState) {\n return promise.then(resolvedDep => {\n if (!selectorIsLive()) {\n // The selector was released since the request began; ignore the response.\n clearExecutionInfo(store);\n throw CANCELED;\n } // Check if we are handling a pending Recoil dependency or if the user\n // threw their own Promise to \"suspend\" a selector evaluation. We need\n // to check that the loadingDepPromise actually matches the promise that\n // we caught in case the selector happened to catch the promise we threw\n // for a pending Recoil dependency from `getRecoilValue()` and threw\n // their own promise instead.\n\n\n if (loadingDepsState.loadingDepKey != null && loadingDepsState.loadingDepPromise === promise) {\n /**\n * Note for async atoms, this means we are changing the atom's value\n * in the store for the given version. This should be alright because\n * the version of state is now stale and a new version will have\n * already been triggered by the atom being resolved (see this logic\n * in Recoil_atom.js)\n */\n state.atomValues.set(loadingDepsState.loadingDepKey, loadableWithValue$2(resolvedDep));\n } else {\n /**\n * If resolvedDepKey is not defined, the promise was a user-thrown\n * promise. User-thrown promises are an advanced feature and they\n * should be avoided in almost all cases. Using `loadable.map()` inside\n * of selectors for loading loadables and then throwing that mapped\n * loadable's promise is an example of a user-thrown promise.\n *\n * When we hit a user-thrown promise, we have to bail out of an optimization\n * where we bypass calculating selector cache keys for selectors that\n * have been previously seen for a given state (these selectors are saved in\n * state.atomValues) to avoid stale state as we have no way of knowing\n * what state changes happened (if any) in result to the promise resolving.\n *\n * Ideally we would only bail out selectors that are in the chain of\n * dependencies for this selector, but there's currently no way to get\n * a full list of a selector's downstream nodes because the state that\n * is executing may be a discarded tree (so store.getGraph(state.version)\n * will be empty), and the full dep tree may not be in the selector\n * caches in the case where the selector's cache was cleared. To solve\n * for this we would have to keep track of all running selector\n * executions and their downstream deps. Because this only covers edge\n * cases, that complexity might not be justifyable.\n */\n store.getState().knownSelectors.forEach(nodeKey => {\n state.atomValues.delete(nodeKey);\n });\n }\n /**\n * Optimization: Now that the dependency has resolved, let's try hitting\n * the cache in case the dep resolved to a value we have previously seen.\n *\n * TODO:\n * Note this optimization is not perfect because it only prevents re-executions\n * _after_ the point where an async dependency is found. Any code leading\n * up to the async dependency may have run unnecessarily. The ideal case\n * would be to wait for the async dependency to resolve first, check the\n * cache, and prevent _any_ execution of the selector if the resulting\n * value of the dependency leads to a path that is found in the cache.\n * The ideal case is more difficult to implement as it would require that\n * we capture and wait for the the async dependency right after checking\n * the cache. The current approach takes advantage of the fact that running\n * the selector already has a code path that lets us exit early when\n * an async dep resolves.\n */\n\n\n const cachedLoadable = getLoadableFromCacheAndUpdateDeps(store, state);\n\n if (cachedLoadable && cachedLoadable.state !== 'loading') {\n /**\n * This has to notify stores of a resolved async, even if there is no\n * current pending execution for the following case:\n * 1) A component renders with this pending loadable.\n * 2) The upstream dependency resolves.\n * 3) While processing some other selector it reads this one, such as\n * while traversing its dependencies. At this point it gets the\n * new resolved value synchronously and clears the current\n * execution ID. The component wasn't getting the value itself,\n * though, so it still has the pending loadable.\n * 4) When this code executes the current execution id was cleared\n * and it wouldn't notify the component of the new value.\n *\n * I think this is only an issue with \"early\" rendering since the\n * components got their value using the in-progress execution.\n * We don't have a unit test for this case yet. I'm not sure it is\n * necessary with recoil_transition_support mode.\n */\n if (isLatestExecution(store, executionID) || getExecutionInfo(store) == null) {\n notifyStoresOfResolvedAsync(store, executionID);\n }\n\n if (cachedLoadable.state === 'hasValue') {\n return cachedLoadable.contents;\n } else {\n throw cachedLoadable.contents;\n }\n }\n /**\n * If this execution is stale, let's check to see if there is some in\n * progress execution with a matching state. If we find a match, then\n * we can take the value from that in-progress execution. Note this may\n * sound like an edge case, but may be very common in cases where a\n * loading dependency resolves from loading to having a value (thus\n * possibly triggering a re-render), and React re-renders before the\n * chained .then() functions run, thus starting a new execution as the\n * dep has changed value. Without this check we will run the selector\n * twice (once in the new execution and once again in this .then(), so\n * this check is necessary to keep unnecessary re-executions to a\n * minimum).\n *\n * Also note this code does not check across all executions that may be\n * running. It only optimizes for the _latest_ execution per store as\n * we currently do not maintain a list of all currently running executions.\n * This means in some cases we may run selectors more than strictly\n * necessary when there are multiple executions running for the same\n * selector. This may be a valid tradeoff as checking for dep changes\n * across all in-progress executions may take longer than just\n * re-running the selector. This will be app-dependent, and maybe in the\n * future we can make the behavior configurable. An ideal fix may be\n * to extend the tree cache to support caching loading states.\n */\n\n\n if (!isLatestExecution(store, executionID)) {\n const executionInfo = getInProgressExecutionInfo(store, state);\n\n if (executionInfo != null) {\n /**\n * Returning promise here without wrapping as the wrapper logic was\n * already done upstream when this promise was generated.\n */\n return executionInfo.loadingLoadable.contents;\n }\n } // Retry the selector evaluation now that the dependency has resolved\n\n\n const [loadable, depValues] = evaluateSelectorGetter(store, state, executionID);\n\n if (loadable.state !== 'loading') {\n resolveAsync(store, state, executionID, loadable, depValues);\n }\n\n if (loadable.state === 'hasError') {\n throw loadable.contents;\n }\n\n return loadable.contents;\n }).catch(error => {\n // The selector was released since the request began; ignore the response.\n if (error instanceof Canceled) {\n throw CANCELED;\n }\n\n if (!selectorIsLive()) {\n clearExecutionInfo(store);\n throw CANCELED;\n }\n\n const loadable = loadableWithError$1(error);\n resolveAsync(store, state, executionID, loadable, existingDeps);\n throw error;\n });\n }\n\n function updateDeps(store, state, deps, executionID) {\n var _store$getState, _store$getState$curre, _store$getState2, _store$getState2$next;\n\n if (isLatestExecution(store, executionID) || state.version === ((_store$getState = store.getState()) === null || _store$getState === void 0 ? void 0 : (_store$getState$curre = _store$getState.currentTree) === null || _store$getState$curre === void 0 ? void 0 : _store$getState$curre.version) || state.version === ((_store$getState2 = store.getState()) === null || _store$getState2 === void 0 ? void 0 : (_store$getState2$next = _store$getState2.nextTree) === null || _store$getState2$next === void 0 ? void 0 : _store$getState2$next.version)) {\n var _store$getState$nextT, _store$getState3, _store$getState3$next;\n\n saveDepsToStore$1(key, deps, store, (_store$getState$nextT = (_store$getState3 = store.getState()) === null || _store$getState3 === void 0 ? void 0 : (_store$getState3$next = _store$getState3.nextTree) === null || _store$getState3$next === void 0 ? void 0 : _store$getState3$next.version) !== null && _store$getState$nextT !== void 0 ? _store$getState$nextT : store.getState().currentTree.version);\n }\n\n for (const nodeKey of deps) {\n discoveredDependencyNodeKeys.add(nodeKey);\n }\n }\n\n function evaluateSelectorGetter(store, state, executionID) {\n const endPerfBlock = startPerfBlock$1(key); // TODO T63965866: use execution ID here\n\n let duringSynchronousExecution = true;\n let duringAsynchronousExecution = true;\n\n const finishEvaluation = () => {\n endPerfBlock();\n duringAsynchronousExecution = false;\n };\n\n let result;\n let resultIsError = false;\n let loadable;\n const loadingDepsState = {\n loadingDepKey: null,\n loadingDepPromise: null\n };\n /**\n * Starting a fresh set of deps that we'll be using to update state. We're\n * starting a new set versus adding it in existing state deps because\n * the version of state that we update deps for may be a more recent version\n * than the version the selector was called with. This is because the latest\n * execution will update the deps of the current/latest version of state\n * (This is safe to do because the fact that the selector is the latest\n * execution means the deps we discover below are our best guess at the\n * deps for the current/latest state in the store)\n */\n\n const depValues = new Map();\n\n function getRecoilValue({\n key: depKey\n }) {\n const depLoadable = getNodeLoadable$2(store, state, depKey);\n depValues.set(depKey, depLoadable); // We need to update asynchronous dependencies as we go so the selector\n // knows if it has to restart evaluation if one of them is updated before\n // the asynchronous selector completely resolves.\n\n if (!duringSynchronousExecution) {\n updateDeps(store, state, new Set(depValues.keys()), executionID);\n notifyStoresOfNewAsyncDep(store, executionID);\n }\n\n switch (depLoadable.state) {\n case 'hasValue':\n return depLoadable.contents;\n\n case 'hasError':\n throw depLoadable.contents;\n\n case 'loading':\n loadingDepsState.loadingDepKey = depKey;\n loadingDepsState.loadingDepPromise = depLoadable.contents;\n throw depLoadable.contents;\n }\n\n throw Recoil_err('Invalid Loadable state');\n }\n\n const getCallback = fn => {\n return (...args) => {\n if (duringAsynchronousExecution) {\n throw Recoil_err('Callbacks from getCallback() should only be called asynchronously after the selector is evalutated. It can be used for selectors to return objects with callbacks that can work with Recoil state without a subscription.');\n }\n\n !(recoilValue != null) ? process.env.NODE_ENV !== \"production\" ? Recoil_invariant(false, 'Recoil Value can never be null') : Recoil_invariant(false) : void 0;\n return recoilCallback$1(store, fn, args, {\n node: recoilValue\n } // flowlint-line unclear-type:off\n );\n };\n };\n\n try {\n result = get({\n get: getRecoilValue,\n getCallback\n });\n result = isRecoilValue$3(result) ? getRecoilValue(result) : result;\n\n if (isLoadable$1(result)) {\n if (result.state === 'hasError') {\n resultIsError = true;\n }\n\n result = result.contents;\n }\n\n if (Recoil_isPromise(result)) {\n result = wrapResultPromise(store, result, state, depValues, executionID, loadingDepsState).finally(finishEvaluation);\n } else {\n finishEvaluation();\n }\n\n result = result instanceof WrappedValue$1 ? result.value : result;\n } catch (errorOrDepPromise) {\n result = errorOrDepPromise;\n\n if (Recoil_isPromise(result)) {\n result = wrapPendingDependencyPromise(store, result, state, depValues, executionID, loadingDepsState).finally(finishEvaluation);\n } else {\n resultIsError = true;\n finishEvaluation();\n }\n }\n\n if (resultIsError) {\n loadable = loadableWithError$1(result);\n } else if (Recoil_isPromise(result)) {\n loadable = loadableWithPromise$1(result);\n } else {\n loadable = loadableWithValue$2(result);\n }\n\n duringSynchronousExecution = false;\n updateExecutionInfoDepValues(store, executionID, depValues);\n updateDeps(store, state, new Set(depValues.keys()), executionID);\n return [loadable, depValues];\n }\n\n function getLoadableFromCacheAndUpdateDeps(store, state) {\n // First, look up in the state cache\n // If it's here, then the deps in the store should already be valid.\n let cachedLoadable = state.atomValues.get(key);\n\n if (cachedLoadable != null) {\n return cachedLoadable;\n } // Second, look up in the selector cache and update the deps in the store\n\n\n const depsAfterCacheLookup = new Set();\n\n try {\n cachedLoadable = cache.get(nodeKey => {\n !(typeof nodeKey === 'string') ? process.env.NODE_ENV !== \"production\" ? Recoil_invariant(false, 'Cache nodeKey is type string') : Recoil_invariant(false) : void 0;\n return getNodeLoadable$2(store, state, nodeKey).contents;\n }, {\n onNodeVisit: node => {\n if (node.type === 'branch' && node.nodeKey !== key) {\n depsAfterCacheLookup.add(node.nodeKey);\n }\n }\n });\n } catch (error) {\n throw Recoil_err(`Problem with cache lookup for selector \"${key}\": ${error.message}`);\n }\n\n if (cachedLoadable) {\n var _getExecutionInfo;\n\n // Cache the results in the state to allow for cheaper lookup than\n // iterating the tree cache of dependencies.\n state.atomValues.set(key, cachedLoadable);\n /**\n * Ensure store contains correct dependencies if we hit the cache so that\n * the store deps and cache are in sync for a given state. This is important\n * because store deps are normally updated when new executions are created,\n * but cache hits don't trigger new executions but they still _may_ signify\n * a change in deps in the store if the store deps for this state are empty\n * or stale.\n */\n\n updateDeps(store, state, depsAfterCacheLookup, (_getExecutionInfo = getExecutionInfo(store)) === null || _getExecutionInfo === void 0 ? void 0 : _getExecutionInfo.executionID);\n }\n\n return cachedLoadable;\n }\n /**\n * Given a tree state, this function returns a Loadable of the current state.\n *\n * The selector's get() function will only be re-evaluated if _both_ of the\n * following statements are true:\n *\n * 1. The current dep values from the given state produced a cache key that\n * was not found in the cache.\n * 2. There is no currently running async execution OR there is an\n * async execution that is running, but after comparing the dep values in\n * the given state with the dep values that the execution has discovered so\n * far we find that at least one dep value has changed, in which case we\n * start a new execution (the previously running execution will continue to\n * run to completion, but only the new execution will be deemed the\n * 'latest' execution, meaning it will be the only execution that will\n * update global state when it is finished. Any non-latest executions will\n * run to completion and update the selector cache but not global state).\n */\n\n\n function getSelectorLoadableAndUpdateDeps(store, state) {\n // First, see if our current state is cached\n const cachedVal = getLoadableFromCacheAndUpdateDeps(store, state);\n\n if (cachedVal != null) {\n clearExecutionInfo(store);\n return cachedVal;\n } // Second, check if there is already an ongoing execution based on the current state\n\n\n const inProgressExecutionInfo = getInProgressExecutionInfo(store, state);\n\n if (inProgressExecutionInfo != null) {\n var _inProgressExecutionI;\n\n if (((_inProgressExecutionI = inProgressExecutionInfo.loadingLoadable) === null || _inProgressExecutionI === void 0 ? void 0 : _inProgressExecutionI.state) === 'loading') {\n markStoreWaitingForResolvedAsync(store, inProgressExecutionInfo.executionID);\n } // FIXME: check after the fact to see if we made the right choice by waiting\n\n\n return inProgressExecutionInfo.loadingLoadable;\n } // Third, start a new evaluation of the selector\n\n\n const newExecutionID = getNewExecutionID();\n const [loadable, newDepValues] = evaluateSelectorGetter(store, state, newExecutionID);\n /**\n * Conditionally updates the cache with a given loadable.\n *\n * We only cache loadables that are not loading because our cache keys are\n * based on dep values, which are in an unfinished state for loadables that\n * have a 'loading' state (new deps may be discovered while the selector\n * runs its async code). We never want to cache partial dependencies b/c it\n * could lead to errors, such as prematurely returning the result based on a\n * partial list of deps-- we need the full list of deps to ensure that we\n * are returning the correct result from cache.\n */\n\n if (loadable.state === 'loading') {\n setExecutionInfo(store, newExecutionID, loadable, newDepValues, state);\n markStoreWaitingForResolvedAsync(store, newExecutionID);\n } else {\n clearExecutionInfo(store);\n setCache(state, loadable, newDepValues);\n }\n\n return loadable;\n }\n /**\n * Searches execution info across all stores to see if there is an in-progress\n * execution whose dependency values match the values of the requesting store.\n */\n\n\n function getInProgressExecutionInfo(store, state) {\n // Sort the pending executions so that our current store is checked first.\n const pendingExecutions = Recoil_concatIterables([executionInfoMap.has(store) ? [Recoil_nullthrows(executionInfoMap.get(store))] : [], Recoil_mapIterable(Recoil_filterIterable(executionInfoMap, ([s]) => s !== store), ([, execInfo]) => execInfo)]);\n\n function anyDepChanged(execDepValues) {\n for (const [depKey, execLoadable] of execDepValues) {\n if (!getNodeLoadable$2(store, state, depKey).is(execLoadable)) {\n return true;\n }\n }\n\n return false;\n }\n\n for (const execInfo of pendingExecutions) {\n if ( // If this execution was already checked to be valid with this version\n // of state, then let's use it!\n execInfo.stateVersions.get(state.version) || // If the deps for the execution match our current state, then it's valid\n !anyDepChanged(execInfo.depValuesDiscoveredSoFarDuringAsyncWork)) {\n execInfo.stateVersions.set(state.version, true);\n return execInfo;\n } else {\n execInfo.stateVersions.set(state.version, false);\n }\n }\n\n return undefined;\n }\n\n function getExecutionInfo(store) {\n return executionInfoMap.get(store);\n }\n /**\n * This function will update the selector's execution info when the selector\n * has either finished running an execution or has started a new execution. If\n * the given loadable is in a 'loading' state, the intention is that a new\n * execution has started. Otherwise, the intention is that an execution has\n * just finished.\n */\n\n\n function setExecutionInfo(store, newExecutionID, loadable, depValues, state) {\n executionInfoMap.set(store, {\n depValuesDiscoveredSoFarDuringAsyncWork: depValues,\n executionID: newExecutionID,\n loadingLoadable: loadable,\n stateVersions: new Map([[state.version, true]])\n });\n }\n\n function updateExecutionInfoDepValues(store, executionID, depValues) {\n // We only need to bother updating the deps for the latest execution because\n // that's all getInProgressExecutionInfo() will be looking for.\n if (isLatestExecution(store, executionID)) {\n const executionInfo = getExecutionInfo(store);\n\n if (executionInfo != null) {\n executionInfo.depValuesDiscoveredSoFarDuringAsyncWork = depValues;\n }\n }\n }\n\n function clearExecutionInfo(store) {\n executionInfoMap.delete(store);\n }\n\n function isLatestExecution(store, executionID) {\n var _getExecutionInfo2;\n\n return executionID === ((_getExecutionInfo2 = getExecutionInfo(store)) === null || _getExecutionInfo2 === void 0 ? void 0 : _getExecutionInfo2.executionID);\n }\n /**\n * FIXME: dep keys should take into account the state of the loadable to\n * prevent the edge case where a loadable with an error and a loadable with\n * an error as a value are treated as the same thing incorrectly. For example\n * these two should be treated differently:\n *\n * selector({key: '', get: () => new Error('hi')});\n * selector({key: '', get () => {throw new Error('hi')}});\n *\n * With current implementation they are treated the same\n */\n\n\n function depValuesToDepRoute(depValues) {\n return Array.from(depValues.entries()).map(([depKey, valLoadable]) => [depKey, valLoadable.contents]);\n }\n\n function setCache(state, loadable, depValues) {\n if (process.env.NODE_ENV !== \"production\") {\n if (loadable.state !== 'loading' && Boolean(options.dangerouslyAllowMutability) === false) {\n Recoil_deepFreezeValue(loadable.contents);\n }\n }\n\n state.atomValues.set(key, loadable);\n\n try {\n cache.set(depValuesToDepRoute(depValues), loadable);\n } catch (error) {\n throw Recoil_err(`Problem with setting cache for selector \"${key}\": ${error.message}`);\n }\n }\n\n function detectCircularDependencies(fn) {\n if (dependencyStack.includes(key)) {\n const message = `Recoil selector has circular dependencies: ${dependencyStack.slice(dependencyStack.indexOf(key)).join(' \\u2192 ')}`;\n return loadableWithError$1(Recoil_err(message));\n }\n\n dependencyStack.push(key);\n\n try {\n return fn();\n } finally {\n dependencyStack.pop();\n }\n }\n\n function selectorPeek(store, state) {\n const cachedLoadable = state.atomValues.get(key);\n\n if (cachedLoadable != null) {\n return cachedLoadable;\n }\n\n return cache.get(nodeKey => {\n var _peekNodeLoadable;\n\n !(typeof nodeKey === 'string') ? process.env.NODE_ENV !== \"production\" ? Recoil_invariant(false, 'Cache nodeKey is type string') : Recoil_invariant(false) : void 0;\n return (_peekNodeLoadable = peekNodeLoadable$1(store, state, nodeKey)) === null || _peekNodeLoadable === void 0 ? void 0 : _peekNodeLoadable.contents;\n });\n }\n\n function selectorGet(store, state) {\n return detectCircularDependencies(() => getSelectorLoadableAndUpdateDeps(store, state));\n }\n\n function invalidateSelector(state) {\n state.atomValues.delete(key);\n }\n\n function clearSelectorCache(store, treeState) {\n !(recoilValue != null) ? process.env.NODE_ENV !== \"production\" ? Recoil_invariant(false, 'Recoil Value can never be null') : Recoil_invariant(false) : void 0;\n\n for (const nodeKey of discoveredDependencyNodeKeys) {\n var _node$clearCache;\n\n const node = getNode$6(nodeKey);\n (_node$clearCache = node.clearCache) === null || _node$clearCache === void 0 ? void 0 : _node$clearCache.call(node, store, treeState);\n }\n\n discoveredDependencyNodeKeys.clear();\n invalidateSelector(treeState);\n cache.clear();\n markRecoilValueModified$1(store, recoilValue);\n }\n\n if (set != null) {\n /**\n * ES5 strict mode prohibits defining non-top-level function declarations,\n * so don't use function declaration syntax here\n */\n const selectorSet = (store, state, newValue) => {\n let syncSelectorSetFinished = false;\n const writes = new Map();\n\n function getRecoilValue({\n key: depKey\n }) {\n if (syncSelectorSetFinished) {\n throw Recoil_err('Recoil: Async selector sets are not currently supported.');\n }\n\n const loadable = getNodeLoadable$2(store, state, depKey);\n\n if (loadable.state === 'hasValue') {\n return loadable.contents;\n } else if (loadable.state === 'loading') {\n const msg = `Getting value of asynchronous atom or selector \"${depKey}\" in a pending state while setting selector \"${key}\" is not yet supported.`;\n Recoil_recoverableViolation(msg);\n throw Recoil_err(msg);\n } else {\n throw loadable.contents;\n }\n }\n\n function setRecoilState(recoilState, valueOrUpdater // $FlowFixMe[missing-local-annot]\n ) {\n if (syncSelectorSetFinished) {\n const msg = 'Recoil: Async selector sets are not currently supported.';\n Recoil_recoverableViolation(msg);\n throw Recoil_err(msg);\n }\n\n const setValue = typeof valueOrUpdater === 'function' ? // cast to any because we can't restrict type S from being a function itself without losing support for opaque types\n // flowlint-next-line unclear-type:off\n valueOrUpdater(getRecoilValue(recoilState)) : valueOrUpdater;\n const upstreamWrites = setNodeValue$3(store, state, recoilState.key, setValue);\n upstreamWrites.forEach((v, k) => writes.set(k, v));\n }\n\n function resetRecoilState(recoilState) {\n setRecoilState(recoilState, DEFAULT_VALUE$6);\n }\n\n const ret = set({\n set: setRecoilState,\n get: getRecoilValue,\n reset: resetRecoilState\n }, newValue); // set should be a void method, but if the user makes it `async`, then it\n // will return a Promise, which we don't currently support.\n\n if (ret !== undefined) {\n throw Recoil_isPromise(ret) ? Recoil_err('Recoil: Async selector sets are not currently supported.') : Recoil_err('Recoil: selector set should be a void function.');\n }\n\n syncSelectorSetFinished = true;\n return writes;\n };\n\n return recoilValue = registerNode$1({\n key,\n nodeType: 'selector',\n peek: selectorPeek,\n get: selectorGet,\n set: selectorSet,\n init: selectorInit,\n invalidate: invalidateSelector,\n clearCache: clearSelectorCache,\n shouldDeleteConfigOnRelease: selectorShouldDeleteConfigOnRelease,\n dangerouslyAllowMutability: options.dangerouslyAllowMutability,\n shouldRestoreFromSnapshots: false,\n retainedBy\n });\n } else {\n return recoilValue = registerNode$1({\n key,\n nodeType: 'selector',\n peek: selectorPeek,\n get: selectorGet,\n init: selectorInit,\n invalidate: invalidateSelector,\n clearCache: clearSelectorCache,\n shouldDeleteConfigOnRelease: selectorShouldDeleteConfigOnRelease,\n dangerouslyAllowMutability: options.dangerouslyAllowMutability,\n shouldRestoreFromSnapshots: false,\n retainedBy\n });\n }\n}\n/* eslint-enable no-redeclare */\n// $FlowIssue[incompatible-use]\n// $FlowFixMe[missing-local-annot]\n\n\nselector.value = value => new WrappedValue$1(value);\n\nvar Recoil_selector = selector;\n\n// @fb-only: import type {ScopeRules} from 'Recoil_ScopedAtom';\n// @fb-only: const {scopedAtom} = require('Recoil_ScopedAtom');\nconst {\n isLoadable: isLoadable$2,\n loadableWithError: loadableWithError$2,\n loadableWithPromise: loadableWithPromise$2,\n loadableWithValue: loadableWithValue$3\n} = Recoil_Loadable$1;\n\nconst {\n WrappedValue: WrappedValue$2\n} = Recoil_Wrapper$1;\n\nconst {\n peekNodeInfo: peekNodeInfo$3\n} = Recoil_FunctionalCore;\n\nconst {\n DEFAULT_VALUE: DEFAULT_VALUE$7,\n DefaultValue: DefaultValue$2,\n getConfigDeletionHandler: getConfigDeletionHandler$2,\n registerNode: registerNode$2,\n setConfigDeletionHandler: setConfigDeletionHandler$1\n} = Recoil_Node;\n\nconst {\n isRecoilValue: isRecoilValue$4\n} = Recoil_RecoilValue$1;\n\nconst {\n getRecoilValueAsLoadable: getRecoilValueAsLoadable$4,\n markRecoilValueModified: markRecoilValueModified$2,\n setRecoilValue: setRecoilValue$4,\n setRecoilValueLoadable: setRecoilValueLoadable$2\n} = Recoil_RecoilValueInterface;\n\nconst {\n retainedByOptionWithDefault: retainedByOptionWithDefault$2\n} = Recoil_Retention;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst unwrap = x => x instanceof WrappedValue$2 ? x.value : x;\n\nfunction baseAtom(options) {\n const {\n key,\n persistence_UNSTABLE: persistence\n } = options;\n const retainedBy = retainedByOptionWithDefault$2(options.retainedBy_UNSTABLE);\n let liveStoresCount = 0;\n\n function unwrapPromise(promise) {\n return loadableWithPromise$2(promise.then(value => {\n defaultLoadable = loadableWithValue$3(value);\n return value;\n }).catch(error => {\n defaultLoadable = loadableWithError$2(error);\n throw error;\n }));\n }\n\n let defaultLoadable = Recoil_isPromise(options.default) ? unwrapPromise(options.default) : isLoadable$2(options.default) ? options.default.state === 'loading' ? unwrapPromise(options.default.contents) : options.default : // $FlowFixMe[incompatible-call]\n loadableWithValue$3(unwrap(options.default));\n maybeFreezeValueOrPromise(defaultLoadable.contents);\n let cachedAnswerForUnvalidatedValue = undefined; // Cleanup handlers for this atom\n // Rely on stable reference equality of the store to use it as a key per \n\n const cleanupEffectsByStore = new Map();\n\n function maybeFreezeValueOrPromise(valueOrPromise) {\n if (process.env.NODE_ENV !== \"production\") {\n if (options.dangerouslyAllowMutability !== true) {\n if (Recoil_isPromise(valueOrPromise)) {\n return valueOrPromise.then(value => {\n Recoil_deepFreezeValue(value);\n return value;\n });\n } else {\n Recoil_deepFreezeValue(valueOrPromise);\n return valueOrPromise;\n }\n }\n }\n\n return valueOrPromise;\n }\n\n function wrapPendingPromise(store, promise) {\n const wrappedPromise = promise.then(value => {\n var _store$getState$nextT, _state$atomValues$get;\n\n const state = (_store$getState$nextT = store.getState().nextTree) !== null && _store$getState$nextT !== void 0 ? _store$getState$nextT : store.getState().currentTree;\n\n if (((_state$atomValues$get = state.atomValues.get(key)) === null || _state$atomValues$get === void 0 ? void 0 : _state$atomValues$get.contents) === wrappedPromise) {\n setRecoilValue$4(store, node, value);\n }\n\n return value;\n }).catch(error => {\n var _store$getState$nextT2, _state$atomValues$get2;\n\n const state = (_store$getState$nextT2 = store.getState().nextTree) !== null && _store$getState$nextT2 !== void 0 ? _store$getState$nextT2 : store.getState().currentTree;\n\n if (((_state$atomValues$get2 = state.atomValues.get(key)) === null || _state$atomValues$get2 === void 0 ? void 0 : _state$atomValues$get2.contents) === wrappedPromise) {\n setRecoilValueLoadable$2(store, node, loadableWithError$2(error));\n }\n\n throw error;\n });\n return wrappedPromise;\n }\n\n function initAtom(store, initState, trigger) {\n var _options$effects;\n\n liveStoresCount++;\n\n const cleanupAtom = () => {\n var _cleanupEffectsByStor;\n\n liveStoresCount--;\n (_cleanupEffectsByStor = cleanupEffectsByStore.get(store)) === null || _cleanupEffectsByStor === void 0 ? void 0 : _cleanupEffectsByStor.forEach(cleanup => cleanup());\n cleanupEffectsByStore.delete(store);\n };\n\n store.getState().knownAtoms.add(key); // Setup async defaults to notify subscribers when they resolve\n\n if (defaultLoadable.state === 'loading') {\n const notifyDefaultSubscribers = () => {\n var _store$getState$nextT3;\n\n const state = (_store$getState$nextT3 = store.getState().nextTree) !== null && _store$getState$nextT3 !== void 0 ? _store$getState$nextT3 : store.getState().currentTree;\n\n if (!state.atomValues.has(key)) {\n markRecoilValueModified$2(store, node);\n }\n };\n\n defaultLoadable.contents.finally(notifyDefaultSubscribers);\n } ///////////////////\n // Run Atom Effects\n ///////////////////\n\n\n const effects = (_options$effects = options.effects) !== null && _options$effects !== void 0 ? _options$effects : options.effects_UNSTABLE;\n\n if (effects != null) {\n // This state is scoped by Store, since this is in the initAtom() closure\n let initValue = DEFAULT_VALUE$7;\n let isDuringInit = true;\n let isInitError = false;\n let pendingSetSelf = null;\n\n function getLoadable(recoilValue) {\n // Normally we can just get the current value of another atom.\n // But for our own value we need to check if there is a pending\n // initialized value or get the fallback default value.\n if (isDuringInit && recoilValue.key === key) {\n // Cast T to S\n const retValue = initValue; // flowlint-line unclear-type:off\n\n return retValue instanceof DefaultValue$2 ? peekAtom(store, initState) // flowlint-line unclear-type:off\n : Recoil_isPromise(retValue) ? loadableWithPromise$2(retValue.then(v => v instanceof DefaultValue$2 ? // Cast T to S\n defaultLoadable.toPromise() // flowlint-line unclear-type:off\n : v)) : // $FlowFixMe[incompatible-call]\n loadableWithValue$3(retValue);\n }\n\n return getRecoilValueAsLoadable$4(store, recoilValue);\n }\n\n function getPromise(recoilValue) {\n return getLoadable(recoilValue).toPromise();\n }\n\n function getInfo_UNSTABLE(recoilValue) {\n var _store$getState$nextT4;\n\n const info = peekNodeInfo$3(store, (_store$getState$nextT4 = store.getState().nextTree) !== null && _store$getState$nextT4 !== void 0 ? _store$getState$nextT4 : store.getState().currentTree, recoilValue.key);\n return isDuringInit && recoilValue.key === key && !(initValue instanceof DefaultValue$2) ? { ...info,\n isSet: true,\n loadable: getLoadable(recoilValue)\n } : info;\n }\n\n const setSelf = effect => valueOrUpdater => {\n if (isDuringInit) {\n const currentLoadable = getLoadable(node);\n const currentValue = currentLoadable.state === 'hasValue' ? currentLoadable.contents : DEFAULT_VALUE$7;\n initValue = typeof valueOrUpdater === 'function' ? // cast to any because we can't restrict T from being a function without losing support for opaque types\n valueOrUpdater(currentValue) // flowlint-line unclear-type:off\n : valueOrUpdater;\n\n if (Recoil_isPromise(initValue)) {\n initValue = initValue.then(value => {\n // Avoid calling onSet() when setSelf() initializes with a Promise\n pendingSetSelf = {\n effect,\n value\n };\n return value;\n });\n }\n } else {\n if (Recoil_isPromise(valueOrUpdater)) {\n throw Recoil_err('Setting atoms to async values is not implemented.');\n }\n\n if (typeof valueOrUpdater !== 'function') {\n pendingSetSelf = {\n effect,\n value: unwrap(valueOrUpdater)\n };\n }\n\n setRecoilValue$4(store, node, typeof valueOrUpdater === 'function' ? currentValue => {\n const newValue = unwrap( // cast to any because we can't restrict T from being a function without losing support for opaque types\n valueOrUpdater(currentValue) // flowlint-line unclear-type:off\n ); // $FlowFixMe[incompatible-type]\n\n pendingSetSelf = {\n effect,\n value: newValue\n };\n return newValue;\n } : unwrap(valueOrUpdater));\n }\n };\n\n const resetSelf = effect => () => setSelf(effect)(DEFAULT_VALUE$7);\n\n const onSet = effect => handler => {\n var _cleanupEffectsByStor2;\n\n const {\n release\n } = store.subscribeToTransactions(currentStore => {\n var _currentTree$atomValu;\n\n // eslint-disable-next-line prefer-const\n let {\n currentTree,\n previousTree\n } = currentStore.getState();\n\n if (!previousTree) {\n Recoil_recoverableViolation('Transaction subscribers notified without a next tree being present -- this is a bug in Recoil');\n previousTree = currentTree; // attempt to trundle on\n }\n\n const newLoadable = (_currentTree$atomValu = currentTree.atomValues.get(key)) !== null && _currentTree$atomValu !== void 0 ? _currentTree$atomValu : defaultLoadable;\n\n if (newLoadable.state === 'hasValue') {\n var _previousTree$atomVal, _pendingSetSelf, _pendingSetSelf2, _pendingSetSelf3;\n\n const newValue = newLoadable.contents;\n const oldLoadable = (_previousTree$atomVal = previousTree.atomValues.get(key)) !== null && _previousTree$atomVal !== void 0 ? _previousTree$atomVal : defaultLoadable;\n const oldValue = oldLoadable.state === 'hasValue' ? oldLoadable.contents : DEFAULT_VALUE$7; // TODO This isn't actually valid, use as a placeholder for now.\n // Ignore atom value changes that were set via setSelf() in the same effect.\n // We will still properly call the handler if there was a subsequent\n // set from something other than an atom effect which was batched\n // with the `setSelf()` call. However, we may incorrectly ignore\n // the handler if the subsequent batched call happens to set the\n // atom to the exact same value as the `setSelf()`. But, in that\n // case, it was kind of a noop, so the semantics are debatable..\n\n if (((_pendingSetSelf = pendingSetSelf) === null || _pendingSetSelf === void 0 ? void 0 : _pendingSetSelf.effect) !== effect || ((_pendingSetSelf2 = pendingSetSelf) === null || _pendingSetSelf2 === void 0 ? void 0 : _pendingSetSelf2.value) !== newValue) {\n handler(newValue, oldValue, !currentTree.atomValues.has(key));\n } else if (((_pendingSetSelf3 = pendingSetSelf) === null || _pendingSetSelf3 === void 0 ? void 0 : _pendingSetSelf3.effect) === effect) {\n pendingSetSelf = null;\n }\n }\n }, key);\n cleanupEffectsByStore.set(store, [...((_cleanupEffectsByStor2 = cleanupEffectsByStore.get(store)) !== null && _cleanupEffectsByStor2 !== void 0 ? _cleanupEffectsByStor2 : []), release]);\n };\n\n for (const effect of effects) {\n try {\n const cleanup = effect({\n node,\n storeID: store.storeID,\n parentStoreID_UNSTABLE: store.parentStoreID,\n trigger,\n setSelf: setSelf(effect),\n resetSelf: resetSelf(effect),\n onSet: onSet(effect),\n getPromise,\n getLoadable,\n getInfo_UNSTABLE\n });\n\n if (cleanup != null) {\n var _cleanupEffectsByStor3;\n\n cleanupEffectsByStore.set(store, [...((_cleanupEffectsByStor3 = cleanupEffectsByStore.get(store)) !== null && _cleanupEffectsByStor3 !== void 0 ? _cleanupEffectsByStor3 : []), cleanup]);\n }\n } catch (error) {\n initValue = error;\n isInitError = true;\n }\n }\n\n isDuringInit = false; // Mutate initial state in place since we know there are no other subscribers\n // since we are the ones initializing on first use.\n\n if (!(initValue instanceof DefaultValue$2)) {\n var _store$getState$nextT5;\n\n const initLoadable = isInitError ? loadableWithError$2(initValue) : Recoil_isPromise(initValue) ? loadableWithPromise$2(wrapPendingPromise(store, initValue)) : loadableWithValue$3(unwrap(initValue));\n maybeFreezeValueOrPromise(initLoadable.contents);\n initState.atomValues.set(key, initLoadable); // If there is a pending transaction, then also mutate the next state tree.\n // This could happen if the atom was first initialized in an action that\n // also updated some other atom's state.\n\n (_store$getState$nextT5 = store.getState().nextTree) === null || _store$getState$nextT5 === void 0 ? void 0 : _store$getState$nextT5.atomValues.set(key, initLoadable);\n }\n }\n\n return cleanupAtom;\n }\n\n function peekAtom(_store, state) {\n var _ref, _state$atomValues$get3;\n\n return (_ref = (_state$atomValues$get3 = state.atomValues.get(key)) !== null && _state$atomValues$get3 !== void 0 ? _state$atomValues$get3 : cachedAnswerForUnvalidatedValue) !== null && _ref !== void 0 ? _ref : defaultLoadable;\n }\n\n function getAtom(_store, state) {\n if (state.atomValues.has(key)) {\n // Atom value is stored in state:\n return Recoil_nullthrows(state.atomValues.get(key));\n } else if (state.nonvalidatedAtoms.has(key)) {\n // Atom value is stored but needs validation before use.\n // We might have already validated it and have a cached validated value:\n if (cachedAnswerForUnvalidatedValue != null) {\n return cachedAnswerForUnvalidatedValue;\n }\n\n if (persistence == null) {\n Recoil_expectationViolation(`Tried to restore a persisted value for atom ${key} but it has no persistence settings.`);\n return defaultLoadable;\n }\n\n const nonvalidatedValue = state.nonvalidatedAtoms.get(key);\n const validatorResult = persistence.validator(nonvalidatedValue, DEFAULT_VALUE$7);\n const validatedValueLoadable = validatorResult instanceof DefaultValue$2 ? defaultLoadable : loadableWithValue$3(validatorResult);\n cachedAnswerForUnvalidatedValue = validatedValueLoadable;\n return cachedAnswerForUnvalidatedValue;\n } else {\n return defaultLoadable;\n }\n }\n\n function invalidateAtom() {\n cachedAnswerForUnvalidatedValue = undefined;\n }\n\n function setAtom(_store, state, newValue) {\n // Bail out if we're being set to the existing value, or if we're being\n // reset but have no stored value (validated or unvalidated) to reset from:\n if (state.atomValues.has(key)) {\n const existing = Recoil_nullthrows(state.atomValues.get(key));\n\n if (existing.state === 'hasValue' && newValue === existing.contents) {\n return new Map();\n }\n } else if (!state.nonvalidatedAtoms.has(key) && newValue instanceof DefaultValue$2) {\n return new Map();\n }\n\n maybeFreezeValueOrPromise(newValue);\n cachedAnswerForUnvalidatedValue = undefined; // can be released now if it was previously in use\n\n return new Map().set(key, loadableWithValue$3(newValue));\n }\n\n function shouldDeleteConfigOnReleaseAtom() {\n return getConfigDeletionHandler$2(key) !== undefined && liveStoresCount <= 0;\n }\n\n const node = registerNode$2({\n key,\n nodeType: 'atom',\n peek: peekAtom,\n get: getAtom,\n set: setAtom,\n init: initAtom,\n invalidate: invalidateAtom,\n shouldDeleteConfigOnRelease: shouldDeleteConfigOnReleaseAtom,\n dangerouslyAllowMutability: options.dangerouslyAllowMutability,\n persistence_UNSTABLE: options.persistence_UNSTABLE ? {\n type: options.persistence_UNSTABLE.type,\n backButton: options.persistence_UNSTABLE.backButton\n } : undefined,\n shouldRestoreFromSnapshots: true,\n retainedBy\n });\n return node;\n} // prettier-ignore\n\n\nfunction atom(options) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof options.key !== 'string') {\n throw Recoil_err('A key option with a unique string value must be provided when creating an atom.');\n }\n }\n\n const { // @fb-only: scopeRules_APPEND_ONLY_READ_THE_DOCS,\n ...restOptions\n } = options;\n const optionsDefault = 'default' in options ? // $FlowIssue[incompatible-type] No way to refine in Flow that property is not defined\n options.default : new Promise(() => {});\n\n if (isRecoilValue$4(optionsDefault) // Continue to use atomWithFallback for promise defaults for scoped atoms\n // for now, since scoped atoms don't support async defaults\n // @fb-only: || (isPromise(optionsDefault) && scopeRules_APPEND_ONLY_READ_THE_DOCS)\n // @fb-only: || (isLoadable(optionsDefault) && scopeRules_APPEND_ONLY_READ_THE_DOCS)\n ) {\n return atomWithFallback({ ...restOptions,\n default: optionsDefault // @fb-only: scopeRules_APPEND_ONLY_READ_THE_DOCS,\n\n }); // @fb-only: } else if (scopeRules_APPEND_ONLY_READ_THE_DOCS\n // @fb-only: && !isPromise(optionsDefault)\n // @fb-only: && !isLoadable(optionsDefault)\n // @fb-only: ) {\n // @fb-only: return scopedAtom({\n // @fb-only: ...restOptions,\n // @fb-only: default: unwrap(optionsDefault),\n // @fb-only: scopeRules_APPEND_ONLY_READ_THE_DOCS,\n // @fb-only: });\n } else {\n return baseAtom({ ...restOptions,\n default: optionsDefault\n });\n }\n}\n\nfunction atomWithFallback(options) {\n const base = atom({ ...options,\n default: DEFAULT_VALUE$7,\n persistence_UNSTABLE: options.persistence_UNSTABLE === undefined ? undefined : { ...options.persistence_UNSTABLE,\n validator: storedValue => storedValue instanceof DefaultValue$2 ? storedValue : Recoil_nullthrows(options.persistence_UNSTABLE).validator(storedValue, DEFAULT_VALUE$7)\n },\n // TODO Hack for now.\n effects: options.effects,\n // flowlint-line unclear-type: off\n effects_UNSTABLE: options.effects_UNSTABLE // flowlint-line unclear-type: off\n\n }); // $FlowFixMe[incompatible-call]\n\n const sel = Recoil_selector({\n key: `${options.key}__withFallback`,\n get: ({\n get\n }) => {\n const baseValue = get(base);\n return baseValue instanceof DefaultValue$2 ? options.default : baseValue;\n },\n // $FlowFixMe[incompatible-call]\n set: ({\n set\n }, newValue) => set(base, newValue),\n // This selector does not need to cache as it is a wrapper selector\n // and the selector within the wrapper selector will have a cache\n // option by default\n cachePolicy_UNSTABLE: {\n eviction: 'most-recent'\n },\n dangerouslyAllowMutability: options.dangerouslyAllowMutability\n });\n setConfigDeletionHandler$1(sel.key, getConfigDeletionHandler$2(options.key));\n return sel;\n} // $FlowFixMe[missing-local-annot]\n\n\natom.value = value => new WrappedValue$2(value);\n\nvar Recoil_atom = atom;\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 * @oncall recoil\n */\n\nclass MapCache {\n constructor(options) {\n var _options$mapKey;\n\n _defineProperty(this, \"_map\", void 0);\n\n _defineProperty(this, \"_keyMapper\", void 0);\n\n this._map = new Map();\n this._keyMapper = (_options$mapKey = options === null || options === void 0 ? void 0 : options.mapKey) !== null && _options$mapKey !== void 0 ? _options$mapKey : v => v;\n }\n\n size() {\n return this._map.size;\n }\n\n has(key) {\n return this._map.has(this._keyMapper(key));\n }\n\n get(key) {\n return this._map.get(this._keyMapper(key));\n }\n\n set(key, val) {\n this._map.set(this._keyMapper(key), val);\n }\n\n delete(key) {\n this._map.delete(this._keyMapper(key));\n }\n\n clear() {\n this._map.clear();\n }\n\n}\n\nvar Recoil_MapCache = {\n MapCache\n};\n\nvar Recoil_MapCache_1 = Recoil_MapCache.MapCache;\n\nvar Recoil_MapCache$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n MapCache: Recoil_MapCache_1\n});\n\nconst {\n LRUCache: LRUCache$2\n} = Recoil_LRUCache$1;\n\nconst {\n MapCache: MapCache$1\n} = Recoil_MapCache$1;\n\n\n\n\n\n\n\nconst defaultPolicy$1 = {\n equality: 'reference',\n eviction: 'none',\n maxSize: Infinity\n};\n\nfunction cacheFromPolicy({\n equality = defaultPolicy$1.equality,\n eviction = defaultPolicy$1.eviction,\n maxSize = defaultPolicy$1.maxSize\n} = defaultPolicy$1) {\n const valueMapper = getValueMapper$1(equality);\n const cache = getCache(eviction, maxSize, valueMapper);\n return cache;\n}\n\nfunction getValueMapper$1(equality) {\n switch (equality) {\n case 'reference':\n return val => val;\n\n case 'value':\n return val => Recoil_stableStringify(val);\n }\n\n throw Recoil_err(`Unrecognized equality policy ${equality}`);\n}\n\nfunction getCache(eviction, maxSize, mapKey) {\n switch (eviction) {\n case 'keep-all':\n return new MapCache$1({\n mapKey\n });\n\n case 'lru':\n return new LRUCache$2({\n mapKey,\n maxSize: Recoil_nullthrows(maxSize)\n });\n\n case 'most-recent':\n return new LRUCache$2({\n mapKey,\n maxSize: 1\n });\n }\n\n throw Recoil_err(`Unrecognized eviction policy ${eviction}`);\n}\n\nvar Recoil_cacheFromPolicy = cacheFromPolicy;\n\n// @fb-only: import type {ScopeRules} from 'Recoil_ScopedAtom';\n\n\nconst {\n setConfigDeletionHandler: setConfigDeletionHandler$2\n} = Recoil_Node;\n\n\n\n\n\n// Process scopeRules to handle any entries which are functions taking parameters\n// prettier-ignore\n// @fb-only: function mapScopeRules

(\n// @fb-only: scopeRules?: ParameterizedScopeRules

,\n// @fb-only: param: P,\n// @fb-only: ): ScopeRules | void {\n// @fb-only: return scopeRules?.map(rule =>\n// @fb-only: Array.isArray(rule)\n// @fb-only: ? rule.map(entry => (typeof entry === 'function' ? entry(param) : entry))\n// @fb-only: : rule,\n// @fb-only: );\n// @fb-only: }\n\n/*\nA function which returns an atom based on the input parameter.\n\nEach unique parameter returns a unique atom. E.g.,\n\n const f = atomFamily(...);\n f({a: 1}) => an atom\n f({a: 2}) => a different atom\n\nThis allows components to persist local, private state using atoms. Each\ninstance of the component may have a different key, which it uses as the\nparameter for a family of atoms; in this way, each component will have\nits own atom not shared by other instances. These state keys may be composed\ninto children's state keys as well.\n*/\nfunction atomFamily(options) {\n var _options$cachePolicyF, _options$cachePolicyF2;\n\n const atomCache = Recoil_cacheFromPolicy({\n equality: (_options$cachePolicyF = (_options$cachePolicyF2 = options.cachePolicyForParams_UNSTABLE) === null || _options$cachePolicyF2 === void 0 ? void 0 : _options$cachePolicyF2.equality) !== null && _options$cachePolicyF !== void 0 ? _options$cachePolicyF : 'value',\n eviction: 'keep-all'\n }); // Simple atomFamily implementation to cache individual atoms based\n // on the parameter value equality.\n\n return params => {\n var _stableStringify, _options$effects;\n\n const cachedAtom = atomCache.get(params);\n\n if (cachedAtom != null) {\n return cachedAtom;\n }\n\n const {\n cachePolicyForParams_UNSTABLE,\n ...atomOptions\n } = options;\n const optionsDefault = 'default' in options ? // $FlowIssue[incompatible-type] No way to refine in Flow that property is not defined\n options.default : new Promise(() => {});\n const newAtom = Recoil_atom({ ...atomOptions,\n key: `${options.key}__${(_stableStringify = Recoil_stableStringify(params)) !== null && _stableStringify !== void 0 ? _stableStringify : 'void'}`,\n default: typeof optionsDefault === 'function' ? // The default was parameterized\n // Flow doesn't know that T isn't a function, so we need to case to any\n // $FlowIssue[incompatible-use]\n optionsDefault(params) : // Default may be a static value, promise, or RecoilValue\n optionsDefault,\n retainedBy_UNSTABLE: typeof options.retainedBy_UNSTABLE === 'function' ? options.retainedBy_UNSTABLE(params) : options.retainedBy_UNSTABLE,\n effects: typeof options.effects === 'function' ? options.effects(params) : typeof options.effects_UNSTABLE === 'function' ? options.effects_UNSTABLE(params) : (_options$effects = options.effects) !== null && _options$effects !== void 0 ? _options$effects : options.effects_UNSTABLE // prettier-ignore\n // @fb-only: scopeRules_APPEND_ONLY_READ_THE_DOCS: mapScopeRules(\n // @fb-only: options.scopeRules_APPEND_ONLY_READ_THE_DOCS,\n // @fb-only: params,\n // @fb-only: ),\n\n });\n atomCache.set(params, newAtom);\n setConfigDeletionHandler$2(newAtom.key, () => {\n atomCache.delete(params);\n });\n return newAtom;\n };\n}\n\nvar Recoil_atomFamily = atomFamily;\n\nconst {\n setConfigDeletionHandler: setConfigDeletionHandler$3\n} = Recoil_Node;\n\n\n\n\n\n // Keep in mind the parameter needs to be serializable as a cahche key\n// using Recoil_stableStringify\n\n\n// Add a unique index to each selector in case the cache implementation allows\n// duplicate keys based on equivalent stringified parameters\nlet nextIndex = 0;\n/* eslint-disable no-redeclare */\n\n// Return a function that returns members of a family of selectors of the same type\n// E.g.,\n//\n// const s = selectorFamily(...);\n// s({a: 1}) => a selector\n// s({a: 2}) => a different selector\n//\n// By default, the selectors are distinguished by distinct values of the\n// parameter based on value equality, not reference equality. This allows using\n// object literals or other equivalent objects at callsites to not create\n// duplicate cache entries. This behavior may be overridden with the\n// cacheImplementationForParams option.\nfunction selectorFamily(options) {\n var _options$cachePolicyF, _options$cachePolicyF2;\n\n const selectorCache = Recoil_cacheFromPolicy({\n equality: (_options$cachePolicyF = (_options$cachePolicyF2 = options.cachePolicyForParams_UNSTABLE) === null || _options$cachePolicyF2 === void 0 ? void 0 : _options$cachePolicyF2.equality) !== null && _options$cachePolicyF !== void 0 ? _options$cachePolicyF : 'value',\n eviction: 'keep-all'\n });\n return params => {\n var _stableStringify;\n\n // Throw an error with selector key so that it is clear which\n // selector is causing an error\n let cachedSelector;\n\n try {\n cachedSelector = selectorCache.get(params);\n } catch (error) {\n throw Recoil_err(`Problem with cache lookup for selector ${options.key}: ${error.message}`);\n }\n\n if (cachedSelector != null) {\n return cachedSelector;\n }\n\n const myKey = `${options.key}__selectorFamily/${(_stableStringify = Recoil_stableStringify(params, {\n // It is possible to use functions in parameters if the user uses\n // a cache with reference equality thanks to the incrementing index.\n allowFunctions: true\n })) !== null && _stableStringify !== void 0 ? _stableStringify : 'void'}/${nextIndex++}`; // Append index in case values serialize to the same key string\n\n const myGet = callbacks => options.get(params)(callbacks);\n\n const myCachePolicy = options.cachePolicy_UNSTABLE;\n const retainedBy = typeof options.retainedBy_UNSTABLE === 'function' ? options.retainedBy_UNSTABLE(params) : options.retainedBy_UNSTABLE;\n let newSelector;\n\n if (options.set != null) {\n const set = options.set;\n\n const mySet = (callbacks, newValue) => set(params)(callbacks, newValue);\n\n newSelector = Recoil_selector({\n key: myKey,\n get: myGet,\n set: mySet,\n cachePolicy_UNSTABLE: myCachePolicy,\n dangerouslyAllowMutability: options.dangerouslyAllowMutability,\n retainedBy_UNSTABLE: retainedBy\n });\n } else {\n newSelector = Recoil_selector({\n key: myKey,\n get: myGet,\n cachePolicy_UNSTABLE: myCachePolicy,\n dangerouslyAllowMutability: options.dangerouslyAllowMutability,\n retainedBy_UNSTABLE: retainedBy\n });\n }\n\n selectorCache.set(params, newSelector);\n setConfigDeletionHandler$3(newSelector.key, () => {\n selectorCache.delete(params);\n });\n return newSelector;\n };\n}\n/* eslint-enable no-redeclare */\n\n\nvar Recoil_selectorFamily = selectorFamily;\n\n// flowlint-next-line unclear-type:off\n\n\nconst constantSelector = Recoil_selectorFamily({\n key: '__constant',\n get: constant => () => constant,\n cachePolicyForParams_UNSTABLE: {\n equality: 'reference'\n }\n}); // Function that returns a selector which always produces the\n// same constant value. It may be called multiple times with the\n// same value, based on reference equality, and will provide the\n// same selector.\n\nfunction constSelector(constant) {\n return constantSelector(constant);\n}\n\nvar Recoil_constSelector = constSelector;\n\n// flowlint-next-line unclear-type:off\n\n\nconst throwingSelector = Recoil_selectorFamily({\n key: '__error',\n get: message => () => {\n throw Recoil_err(message);\n },\n // TODO Why?\n cachePolicyForParams_UNSTABLE: {\n equality: 'reference'\n }\n}); // Function that returns a selector which always throws an error\n// with the provided message.\n\nfunction errorSelector(message) {\n return throwingSelector(message);\n}\n\nvar Recoil_errorSelector = errorSelector;\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * Wraps another recoil value and prevents writing to it.\n *\n * \n * @format\n * @oncall recoil\n */\n\nfunction readOnlySelector(atom) {\n // flowlint-next-line unclear-type: off\n return atom;\n}\n\nvar Recoil_readOnlySelector = readOnlySelector;\n\nconst {\n loadableWithError: loadableWithError$3,\n loadableWithPromise: loadableWithPromise$3,\n loadableWithValue: loadableWithValue$4\n} = Recoil_Loadable$1;\n\n\n\n\n\n /////////////////\n// TRUTH TABLE\n/////////////////\n// Dependencies waitForNone waitForAny waitForAll waitForAllSettled\n// [loading, loading] [Promise, Promise] Promise Promise Promise\n// [value, loading] [value, Promise] [value, Promise] Promise Promise\n// [value, value] [value, value] [value, value] [value, value] [value, value]\n//\n// [error, loading] [Error, Promise] [Error, Promise] Error Promise\n// [error, error] [Error, Error] [Error, Error] Error [error, error]\n// [value, error] [value, Error] [value, Error] Error [value, error]\n// Issue parallel requests for all dependencies and return the current\n// status if they have results, have some error, or are still pending.\n\n\nfunction concurrentRequests(getRecoilValue, deps) {\n const results = Array(deps.length).fill(undefined);\n const exceptions = Array(deps.length).fill(undefined);\n\n for (const [i, dep] of deps.entries()) {\n try {\n results[i] = getRecoilValue(dep);\n } catch (e) {\n // exceptions can either be Promises of pending results or real errors\n exceptions[i] = e;\n }\n }\n\n return [results, exceptions];\n}\n\nfunction isError(exp) {\n return exp != null && !Recoil_isPromise(exp);\n}\n\nfunction unwrapDependencies(dependencies) {\n return Array.isArray(dependencies) ? dependencies : Object.getOwnPropertyNames(dependencies).map(key => dependencies[key]);\n}\n\nfunction wrapResults(dependencies,\n/* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\nresults) {\n return Array.isArray(dependencies) ? results : // Object.getOwnPropertyNames() has consistent key ordering with ES6\n Object.getOwnPropertyNames(dependencies).reduce((out, key, idx) => ({ ...out,\n [key]: results[idx]\n }), {});\n}\n\nfunction wrapLoadables(dependencies, results, exceptions) {\n const output = exceptions.map((exception, idx) => exception == null ? loadableWithValue$4(results[idx]) : Recoil_isPromise(exception) ? loadableWithPromise$3(exception) : loadableWithError$3(exception));\n return wrapResults(dependencies, output);\n}\n\nfunction combineAsyncResultsWithSyncResults(syncResults, asyncResults) {\n return asyncResults.map((result, idx) =>\n /**\n * it's important we use === undefined as opposed to == null, because the\n * resolved value of the async promise could be `null`, in which case we\n * don't want to use syncResults[idx], which would be undefined. If async\n * promise resolves to `undefined`, that's ok because `syncResults[idx]`\n * will also be `undefined`. That's a little hacky, but it works.\n */\n result === undefined ? syncResults[idx] : result);\n} // Selector that requests all dependencies in parallel and immediately returns\n// current results without waiting.\n\n\nconst waitForNone = Recoil_selectorFamily({\n key: '__waitForNone',\n get: dependencies => ({\n get\n }) => {\n // Issue requests for all dependencies in parallel.\n const deps = unwrapDependencies(dependencies);\n const [results, exceptions] = concurrentRequests(get, deps); // Always return the current status of the results; never block.\n\n return wrapLoadables(dependencies, results, exceptions);\n },\n dangerouslyAllowMutability: true\n}); // Selector that requests all dependencies in parallel and waits for at least\n// one to be available before returning results. It will only error if all\n// dependencies have errors.\n\nconst waitForAny = Recoil_selectorFamily({\n key: '__waitForAny',\n get: dependencies => ({\n get\n }) => {\n // Issue requests for all dependencies in parallel.\n // Exceptions can either be Promises of pending results or real errors\n const deps = unwrapDependencies(dependencies);\n const [results, exceptions] = concurrentRequests(get, deps); // If any results are available, value or error, return the current status\n\n if (exceptions.some(exp => !Recoil_isPromise(exp))) {\n return wrapLoadables(dependencies, results, exceptions);\n } // Otherwise, return a promise that will resolve when the next result is\n // available, whichever one happens to be next. But, if all pending\n // dependencies end up with errors, then reject the promise.\n\n\n return new Promise(resolve => {\n for (const [i, exp] of exceptions.entries()) {\n if (Recoil_isPromise(exp)) {\n exp.then(result => {\n results[i] = result;\n exceptions[i] = undefined;\n resolve(wrapLoadables(dependencies, results, exceptions));\n }).catch(error => {\n exceptions[i] = error;\n resolve(wrapLoadables(dependencies, results, exceptions));\n });\n }\n }\n });\n },\n dangerouslyAllowMutability: true\n}); // Selector that requests all dependencies in parallel and waits for all to be\n// available before returning a value. It will error if any dependencies error.\n\nconst waitForAll = Recoil_selectorFamily({\n key: '__waitForAll',\n get: dependencies => ({\n get\n }) => {\n // Issue requests for all dependencies in parallel.\n // Exceptions can either be Promises of pending results or real errors\n const deps = unwrapDependencies(dependencies);\n const [results, exceptions] = concurrentRequests(get, deps); // If all results are available, return the results\n\n if (exceptions.every(exp => exp == null)) {\n return wrapResults(dependencies, results);\n } // If we have any errors, throw the first error\n\n\n const error = exceptions.find(isError);\n\n if (error != null) {\n throw error;\n } // Otherwise, return a promise that will resolve when all results are available\n\n\n return Promise.all(exceptions).then(exceptionResults => wrapResults(dependencies, combineAsyncResultsWithSyncResults(results, exceptionResults)));\n },\n dangerouslyAllowMutability: true\n});\nconst waitForAllSettled = Recoil_selectorFamily({\n key: '__waitForAllSettled',\n get: dependencies => ({\n get\n }) => {\n // Issue requests for all dependencies in parallel.\n // Exceptions can either be Promises of pending results or real errors\n const deps = unwrapDependencies(dependencies);\n const [results, exceptions] = concurrentRequests(get, deps); // If all results are available, return the results\n\n if (exceptions.every(exp => !Recoil_isPromise(exp))) {\n return wrapLoadables(dependencies, results, exceptions);\n } // Wait for all results to settle\n\n\n return Promise.all(exceptions.map((exp, i) => Recoil_isPromise(exp) ? exp.then(result => {\n results[i] = result;\n exceptions[i] = undefined;\n }).catch(error => {\n results[i] = undefined;\n exceptions[i] = error;\n }) : null)) // Then wrap them as loadables\n .then(() => wrapLoadables(dependencies, results, exceptions));\n },\n dangerouslyAllowMutability: true\n});\nconst noWait = Recoil_selectorFamily({\n key: '__noWait',\n get: dependency => ({\n get\n }) => {\n try {\n return Recoil_selector.value(loadableWithValue$4(get(dependency)));\n } catch (exception) {\n return Recoil_selector.value(Recoil_isPromise(exception) ? loadableWithPromise$3(exception) : loadableWithError$3(exception));\n }\n },\n dangerouslyAllowMutability: true\n});\nvar Recoil_WaitFor = {\n waitForNone,\n waitForAny,\n waitForAll,\n waitForAllSettled,\n noWait\n};\n\nconst {\n RecoilLoadable\n} = Recoil_Loadable$1;\n\nconst {\n DefaultValue: DefaultValue$3\n} = Recoil_Node;\n\nconst {\n RecoilRoot: RecoilRoot$2,\n useRecoilStoreID: useRecoilStoreID$1\n} = Recoil_RecoilRoot;\n\nconst {\n isRecoilValue: isRecoilValue$5\n} = Recoil_RecoilValue$1;\n\nconst {\n retentionZone: retentionZone$1\n} = Recoil_RetentionZone;\n\nconst {\n freshSnapshot: freshSnapshot$2\n} = Recoil_Snapshot$1;\n\nconst {\n useRecoilState: useRecoilState$1,\n useRecoilState_TRANSITION_SUPPORT_UNSTABLE: useRecoilState_TRANSITION_SUPPORT_UNSTABLE$1,\n useRecoilStateLoadable: useRecoilStateLoadable$1,\n useRecoilValue: useRecoilValue$1,\n useRecoilValue_TRANSITION_SUPPORT_UNSTABLE: useRecoilValue_TRANSITION_SUPPORT_UNSTABLE$1,\n useRecoilValueLoadable: useRecoilValueLoadable$1,\n useRecoilValueLoadable_TRANSITION_SUPPORT_UNSTABLE: useRecoilValueLoadable_TRANSITION_SUPPORT_UNSTABLE$1,\n useResetRecoilState: useResetRecoilState$1,\n useSetRecoilState: useSetRecoilState$1\n} = Recoil_Hooks;\n\nconst {\n useGotoRecoilSnapshot: useGotoRecoilSnapshot$1,\n useRecoilSnapshot: useRecoilSnapshot$1,\n useRecoilTransactionObserver: useRecoilTransactionObserver$1\n} = Recoil_SnapshotHooks;\n\n\n\n\n\nconst {\n useRecoilCallback: useRecoilCallback$1\n} = Recoil_useRecoilCallback;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst {\n noWait: noWait$1,\n waitForAll: waitForAll$1,\n waitForAllSettled: waitForAllSettled$1,\n waitForAny: waitForAny$1,\n waitForNone: waitForNone$1\n} = Recoil_WaitFor;\n\n\n\nvar Recoil_index = {\n // Types\n DefaultValue: DefaultValue$3,\n isRecoilValue: isRecoilValue$5,\n RecoilLoadable,\n // Global Recoil environment settiongs\n RecoilEnv: Recoil_RecoilEnv,\n // Recoil Root\n RecoilRoot: RecoilRoot$2,\n useRecoilStoreID: useRecoilStoreID$1,\n useRecoilBridgeAcrossReactRoots_UNSTABLE: Recoil_useRecoilBridgeAcrossReactRoots,\n // Atoms/Selectors\n atom: Recoil_atom,\n selector: Recoil_selector,\n // Convenience Atoms/Selectors\n atomFamily: Recoil_atomFamily,\n selectorFamily: Recoil_selectorFamily,\n constSelector: Recoil_constSelector,\n errorSelector: Recoil_errorSelector,\n readOnlySelector: Recoil_readOnlySelector,\n // Concurrency Helpers for Atoms/Selectors\n noWait: noWait$1,\n waitForNone: waitForNone$1,\n waitForAny: waitForAny$1,\n waitForAll: waitForAll$1,\n waitForAllSettled: waitForAllSettled$1,\n // Hooks for Atoms/Selectors\n useRecoilValue: useRecoilValue$1,\n useRecoilValueLoadable: useRecoilValueLoadable$1,\n useRecoilState: useRecoilState$1,\n useRecoilStateLoadable: useRecoilStateLoadable$1,\n useSetRecoilState: useSetRecoilState$1,\n useResetRecoilState: useResetRecoilState$1,\n useGetRecoilValueInfo_UNSTABLE: Recoil_useGetRecoilValueInfo,\n useRecoilRefresher_UNSTABLE: Recoil_useRecoilRefresher,\n useRecoilValueLoadable_TRANSITION_SUPPORT_UNSTABLE: useRecoilValueLoadable_TRANSITION_SUPPORT_UNSTABLE$1,\n useRecoilValue_TRANSITION_SUPPORT_UNSTABLE: useRecoilValue_TRANSITION_SUPPORT_UNSTABLE$1,\n useRecoilState_TRANSITION_SUPPORT_UNSTABLE: useRecoilState_TRANSITION_SUPPORT_UNSTABLE$1,\n // Hooks for complex operations\n useRecoilCallback: useRecoilCallback$1,\n useRecoilTransaction_UNSTABLE: Recoil_useRecoilTransaction,\n // Snapshots\n useGotoRecoilSnapshot: useGotoRecoilSnapshot$1,\n useRecoilSnapshot: useRecoilSnapshot$1,\n useRecoilTransactionObserver_UNSTABLE: useRecoilTransactionObserver$1,\n snapshot_UNSTABLE: freshSnapshot$2,\n // Memory Management\n useRetain: Recoil_useRetain,\n retentionZone: retentionZone$1\n};\nvar Recoil_index_1 = Recoil_index.DefaultValue;\nvar Recoil_index_2 = Recoil_index.isRecoilValue;\nvar Recoil_index_3 = Recoil_index.RecoilLoadable;\nvar Recoil_index_4 = Recoil_index.RecoilEnv;\nvar Recoil_index_5 = Recoil_index.RecoilRoot;\nvar Recoil_index_6 = Recoil_index.useRecoilStoreID;\nvar Recoil_index_7 = Recoil_index.useRecoilBridgeAcrossReactRoots_UNSTABLE;\nvar Recoil_index_8 = Recoil_index.atom;\nvar Recoil_index_9 = Recoil_index.selector;\nvar Recoil_index_10 = Recoil_index.atomFamily;\nvar Recoil_index_11 = Recoil_index.selectorFamily;\nvar Recoil_index_12 = Recoil_index.constSelector;\nvar Recoil_index_13 = Recoil_index.errorSelector;\nvar Recoil_index_14 = Recoil_index.readOnlySelector;\nvar Recoil_index_15 = Recoil_index.noWait;\nvar Recoil_index_16 = Recoil_index.waitForNone;\nvar Recoil_index_17 = Recoil_index.waitForAny;\nvar Recoil_index_18 = Recoil_index.waitForAll;\nvar Recoil_index_19 = Recoil_index.waitForAllSettled;\nvar Recoil_index_20 = Recoil_index.useRecoilValue;\nvar Recoil_index_21 = Recoil_index.useRecoilValueLoadable;\nvar Recoil_index_22 = Recoil_index.useRecoilState;\nvar Recoil_index_23 = Recoil_index.useRecoilStateLoadable;\nvar Recoil_index_24 = Recoil_index.useSetRecoilState;\nvar Recoil_index_25 = Recoil_index.useResetRecoilState;\nvar Recoil_index_26 = Recoil_index.useGetRecoilValueInfo_UNSTABLE;\nvar Recoil_index_27 = Recoil_index.useRecoilRefresher_UNSTABLE;\nvar Recoil_index_28 = Recoil_index.useRecoilValueLoadable_TRANSITION_SUPPORT_UNSTABLE;\nvar Recoil_index_29 = Recoil_index.useRecoilValue_TRANSITION_SUPPORT_UNSTABLE;\nvar Recoil_index_30 = Recoil_index.useRecoilState_TRANSITION_SUPPORT_UNSTABLE;\nvar Recoil_index_31 = Recoil_index.useRecoilCallback;\nvar Recoil_index_32 = Recoil_index.useRecoilTransaction_UNSTABLE;\nvar Recoil_index_33 = Recoil_index.useGotoRecoilSnapshot;\nvar Recoil_index_34 = Recoil_index.useRecoilSnapshot;\nvar Recoil_index_35 = Recoil_index.useRecoilTransactionObserver_UNSTABLE;\nvar Recoil_index_36 = Recoil_index.snapshot_UNSTABLE;\nvar Recoil_index_37 = Recoil_index.useRetain;\nvar Recoil_index_38 = Recoil_index.retentionZone;\n\nexport default Recoil_index;\nexport { Recoil_index_1 as DefaultValue, Recoil_index_4 as RecoilEnv, Recoil_index_3 as RecoilLoadable, Recoil_index_5 as RecoilRoot, Recoil_index_8 as atom, Recoil_index_10 as atomFamily, Recoil_index_12 as constSelector, Recoil_index_13 as errorSelector, Recoil_index_2 as isRecoilValue, Recoil_index_15 as noWait, Recoil_index_14 as readOnlySelector, Recoil_index_38 as retentionZone, Recoil_index_9 as selector, Recoil_index_11 as selectorFamily, Recoil_index_36 as snapshot_UNSTABLE, Recoil_index_26 as useGetRecoilValueInfo_UNSTABLE, Recoil_index_33 as useGotoRecoilSnapshot, Recoil_index_7 as useRecoilBridgeAcrossReactRoots_UNSTABLE, Recoil_index_31 as useRecoilCallback, Recoil_index_27 as useRecoilRefresher_UNSTABLE, Recoil_index_34 as useRecoilSnapshot, Recoil_index_22 as useRecoilState, Recoil_index_23 as useRecoilStateLoadable, Recoil_index_30 as useRecoilState_TRANSITION_SUPPORT_UNSTABLE, Recoil_index_6 as useRecoilStoreID, Recoil_index_35 as useRecoilTransactionObserver_UNSTABLE, Recoil_index_32 as useRecoilTransaction_UNSTABLE, Recoil_index_20 as useRecoilValue, Recoil_index_21 as useRecoilValueLoadable, Recoil_index_28 as useRecoilValueLoadable_TRANSITION_SUPPORT_UNSTABLE, Recoil_index_29 as useRecoilValue_TRANSITION_SUPPORT_UNSTABLE, Recoil_index_25 as useResetRecoilState, Recoil_index_37 as useRetain, Recoil_index_24 as useSetRecoilState, Recoil_index_18 as waitForAll, Recoil_index_19 as waitForAllSettled, Recoil_index_17 as waitForAny, Recoil_index_16 as waitForNone };\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 canUseDOM from '../../../modules/canUseDom';\n\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 */\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'));\nvar ignoredProps = {\n elevation: true,\n overlayColor: true,\n resizeMode: true,\n tintColor: true\n};\nvar MONOSPACE_FONT_STACK = 'monospace,monospace';\nvar SYSTEM_FONT_STACK = '-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif';\nvar 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 marginHorizontal: ['marginRight', 'marginLeft'],\n marginVertical: ['marginTop', 'marginBottom'],\n overflow: ['overflowX', 'overflowY'],\n overscrollBehavior: ['overscrollBehaviorX', 'overscrollBehaviorY'],\n paddingHorizontal: ['paddingRight', 'paddingLeft'],\n paddingVertical: ['paddingTop', 'paddingBottom']\n};\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 = 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\nexport var createTransformValue = style => {\n var transform = style.transform;\n\n if (Array.isArray(style.transform)) {\n transform = style.transform.map(mapTransform).join(' ');\n }\n\n return transform;\n};\n/**\n * Reducer\n */\n\nvar createReactDOMStyle = (style, isInline) => {\n if (!style) {\n return emptyObject;\n }\n\n var resolvedStyle = {};\n\n for (var prop in style) {\n var value = style[prop];\n\n if ( // Ignore everything with a null value\n value == null || // Ignore some React Native styles\n ignoredProps[prop]) {\n continue;\n }\n\n if (prop === 'aspectRatio') {\n resolvedStyle[prop] = value.toString();\n } else if (prop === 'backgroundClip') {\n // TODO: remove once this issue is fixed\n // https://github.com/rofrischmann/inline-style-prefixer/issues/159\n if (value === 'text') {\n resolvedStyle.backgroundClip = value;\n resolvedStyle.WebkitBackgroundClip = value;\n }\n } else if (prop === 'flex') {\n if (value === -1) {\n resolvedStyle.flexGrow = 0;\n resolvedStyle.flexShrink = 1;\n resolvedStyle.flexBasis = 'auto';\n } else {\n resolvedStyle.flex = value;\n }\n } else if (prop === 'font') {\n resolvedStyle[prop] = value.replace('System', SYSTEM_FONT_STACK);\n } else if (prop === 'fontFamily') {\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 } else if (prop === 'fontVariant') {\n if (Array.isArray(value) && value.length > 0) {\n resolvedStyle.fontVariant = value.join(' ');\n }\n } else if (prop === 'textAlignVertical') {\n resolvedStyle.verticalAlign = value === 'center' ? 'middle' : value;\n } else if (prop === 'textDecorationLine') {\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 } else if (prop === 'transform' || prop === 'transformMatrix') {\n resolvedStyle.transform = createTransformValue(style);\n } else if (prop === 'writingDirection') {\n resolvedStyle.direction = value;\n } else {\n (function () {\n var value = normalizeValueWithProperty(style[prop], prop);\n var longFormProperties = STYLE_SHORT_FORM_EXPANSIONS[prop];\n\n if (isInline && prop === 'margin') {\n if (style.marginHorizontal == null) {\n resolvedStyle.marginLeft = value;\n resolvedStyle.marginRight = value;\n }\n\n if (style.marginVertical == null) {\n resolvedStyle.marginTop = value;\n resolvedStyle.marginBottom = value;\n }\n } else if (isInline && prop === 'padding') {\n if (style.paddingHorizontal == null) {\n resolvedStyle.paddingLeft = value;\n resolvedStyle.paddingRight = value;\n }\n\n if (style.paddingVertical == null) {\n resolvedStyle.paddingTop = value;\n resolvedStyle.paddingBottom = value;\n }\n } else if (longFormProperties) {\n longFormProperties.forEach((longForm, i) => {\n // The value of any longform property in the original styles takes\n // precedence over the shortform's value.\n if (style[longForm] == null) {\n resolvedStyle[longForm] = value;\n }\n });\n } else {\n resolvedStyle[prop] = Array.isArray(value) ? value.join(',') : value;\n }\n })();\n }\n }\n\n return resolvedStyle;\n};\n\nexport default createReactDOMStyle;","/* eslint-disable */\n\n/**\n * JS Implementation of MurmurHash2\n *\n * @author Gary Court\n * @see http://github.com/garycourt/murmurhash-js\n * @author Austin Appleby\n * @see http://sites.google.com/site/murmurhash/\n *\n * @param {string} str ASCII only\n * @param {number} seed Positive integer only\n * @return {number} 32-bit positive integer hash\n *\n * \n */\nfunction murmurhash2_32_gc(str, seed) {\n var l = str.length,\n h = seed ^ l,\n i = 0,\n k;\n\n while (l >= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k = (k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n k ^= k >>> 24;\n k = (k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16) ^ k;\n l -= 4;\n ++i;\n }\n\n switch (l) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n }\n\n h ^= h >>> 13;\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n h ^= h >>> 15;\n return h >>> 0;\n}\n\nvar hash = str => murmurhash2_32_gc(str, 1).toString(36);\n\nexport default hash;","/**\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 uppercasePattern = /[A-Z]/g;\nvar msPattern = /^ms-/;\nvar cache = {};\n\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase();\n}\n\nfunction hyphenateStyleName(name) {\n if (name in cache) {\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;","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 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 wm = ['Webkit', 'Moz'];\nvar wms = ['Webkit', 'ms'];\nvar wmms = ['Webkit', 'Moz', 'ms'];\nexport default {\n plugins: [backgroundClip, crossFade, cursor, filter, imageSet, logical, position, sizing, transition],\n prefixMap: {\n appearance: wmms,\n userSelect: wm,\n textEmphasisPosition: wms,\n textEmphasis: wms,\n textEmphasisStyle: wms,\n textEmphasisColor: wms,\n boxDecorationBreak: wms,\n clipPath: w,\n maskImage: wms,\n maskMode: wms,\n maskRepeat: wms,\n maskPosition: wms,\n maskClip: wms,\n maskOrigin: wms,\n maskSize: wms,\n maskComposite: wms,\n mask: wms,\n maskBorderSource: wms,\n maskBorderMode: wms,\n maskBorderSlice: wms,\n maskBorderWidth: wms,\n maskBorderOutset: wms,\n maskBorderRepeat: wms,\n maskBorder: wms,\n maskType: wms,\n textDecorationStyle: w,\n textDecorationSkip: w,\n textDecorationLine: w,\n textDecorationColor: w,\n filter: w,\n breakAfter: w,\n breakBefore: w,\n breakInside: w,\n columnCount: w,\n columnFill: w,\n columnGap: w,\n columnRule: w,\n columnRuleColor: w,\n columnRuleStyle: w,\n columnRuleWidth: w,\n columns: w,\n columnSpan: w,\n columnWidth: w,\n backdropFilter: w,\n hyphens: w,\n flowInto: w,\n flowFrom: w,\n regionFragment: w,\n textOrientation: w,\n tabSize: m,\n fontKerning: w,\n textSizeAdjust: 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 default prefixAll;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"animationKeyframes\"];\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 './hash';\nimport hyphenateStyleName from './hyphenateStyleName';\nimport normalizeValueWithProperty from './normalizeValueWithProperty';\nimport prefixStyles from '../../../modules/prefixStyles';\nvar cache = new Map();\nvar emptyObject = {};\nvar classicGroup = 1;\nvar atomicGroup = 2.2;\nvar customGroup = {\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};\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 = ['clear', 'float', 'textAlign'];\nexport function atomic(style) {\n var compiledStyle = {\n $$css: true\n };\n var compiledRules = [];\n\n function atomicCompile(prop, value) {\n var valueString = stringifyValueWithProperty(value, prop);\n var cacheKey = prop + valueString;\n var cachedResult = cache.get(cacheKey);\n var identifier;\n\n if (cachedResult != null) {\n identifier = cachedResult[0];\n compiledRules.push(cachedResult[1]);\n } else {\n identifier = createIdentifier('r', prop, value);\n var order = customGroup[prop] || atomicGroup;\n var rules = createAtomicRules(identifier, prop, value);\n var orderedRules = [rules, order];\n compiledRules.push(orderedRules);\n cache.set(cacheKey, [identifier, orderedRules]);\n }\n\n return identifier;\n }\n\n Object.keys(style).sort().forEach(prop => {\n var value = style[prop];\n\n if (value != null) {\n var localizeableValue; // BiDi flip values\n\n if (PROPERTIES_VALUE.indexOf(prop) > -1) {\n var _left = atomicCompile(prop, 'left');\n\n var _right = atomicCompile(prop, 'right');\n\n if (value === 'start') {\n localizeableValue = [_left, _right];\n } else if (value === 'end') {\n localizeableValue = [_right, _left];\n }\n } // BiDi flip properties\n\n\n var propPolyfill = PROPERTIES_I18N[prop];\n\n if (propPolyfill != null) {\n var ltr = atomicCompile(propPolyfill, value);\n var rtl = atomicCompile(PROPERTIES_FLIP[propPolyfill], value);\n localizeableValue = [ltr, rtl];\n } // BiDi flip transitionProperty value\n\n\n if (prop === 'transitionProperty') {\n var values = Array.isArray(value) ? value : [value];\n var polyfillIndices = [];\n\n for (var i = 0; i < values.length; i++) {\n var val = values[i];\n\n if (typeof val === 'string' && PROPERTIES_I18N[val] != null) {\n polyfillIndices.push(i);\n }\n }\n\n if (polyfillIndices.length > 0) {\n var ltrPolyfillValues = [...values];\n var rtlPolyfillValues = [...values];\n polyfillIndices.forEach(i => {\n var ltrVal = ltrPolyfillValues[i];\n\n if (typeof ltrVal === 'string') {\n var ltrPolyfill = PROPERTIES_I18N[ltrVal];\n var rtlPolyfill = PROPERTIES_FLIP[ltrPolyfill];\n ltrPolyfillValues[i] = ltrPolyfill;\n rtlPolyfillValues[i] = rtlPolyfill;\n\n var _ltr = atomicCompile(prop, ltrPolyfillValues);\n\n var _rtl = atomicCompile(prop, rtlPolyfillValues);\n\n localizeableValue = [_ltr, _rtl];\n }\n });\n }\n }\n\n if (localizeableValue == null) {\n localizeableValue = atomicCompile(prop, value);\n } else {\n compiledStyle['$$css$localize'] = true;\n }\n\n compiledStyle[prop] = localizeableValue;\n }\n });\n return [compiledStyle, compiledRules];\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 compiledStyle = {\n $$css: true\n };\n var compiledRules = [];\n\n var animationKeyframes = style.animationKeyframes,\n rest = _objectWithoutPropertiesLoose(style, _excluded);\n\n var identifier = createIdentifier('css', name, style);\n var selector = \".\" + identifier;\n var animationName;\n\n if (animationKeyframes != null) {\n var _processKeyframesValu = processKeyframesValue(animationKeyframes),\n animationNames = _processKeyframesValu[0],\n keyframesRules = _processKeyframesValu[1];\n\n animationName = animationNames.join(',');\n compiledRules.push(...keyframesRules);\n }\n\n var block = createDeclarationBlock(_objectSpread(_objectSpread({}, rest), {}, {\n animationName\n }));\n compiledRules.push(\"\" + selector + block);\n compiledStyle[identifier] = identifier;\n return [compiledStyle, [[compiledRules, classicGroup]]];\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(originalStyle, isRTL) {\n var style = originalStyle || emptyObject;\n var frozenProps = {};\n var nextStyle = {};\n\n for (var originalProp in style) {\n var originalValue = style[originalProp];\n var prop = originalProp;\n var value = originalValue;\n\n if (!Object.prototype.hasOwnProperty.call(style, originalProp) || originalValue == null) {\n continue;\n } // BiDi flip values\n\n\n if (PROPERTIES_VALUE.indexOf(originalProp) > -1) {\n if (originalValue === 'start') {\n value = isRTL ? 'right' : 'left';\n } else if (originalValue === 'end') {\n value = isRTL ? 'left' : 'right';\n }\n } // BiDi flip properties\n\n\n var propPolyfill = PROPERTIES_I18N[originalProp];\n\n if (propPolyfill != null) {\n prop = isRTL ? PROPERTIES_FLIP[propPolyfill] : propPolyfill;\n } // BiDi flip transitionProperty value\n\n\n if (originalProp === 'transitionProperty') {\n (function () {\n // $FlowFixMe\n var originalValues = Array.isArray(originalValue) ? originalValue : [originalValue];\n originalValues.forEach((val, i) => {\n if (typeof val === 'string') {\n var valuePolyfill = PROPERTIES_I18N[val];\n\n if (valuePolyfill != null) {\n originalValues[i] = isRTL ? PROPERTIES_FLIP[valuePolyfill] : valuePolyfill;\n }\n }\n });\n })();\n } // Create finalized style\n\n\n if (!frozenProps[prop]) {\n nextStyle[prop] = value;\n }\n\n if (PROPERTIES_I18N.hasOwnProperty(originalProp)) {\n frozenProps[prop] = true;\n }\n }\n\n return createReactDOMStyle(nextStyle, true);\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[0],\n keyframesRules = _processKeyframesValu2[1];\n\n var block = createDeclarationBlock({\n animationName: animationNames.join(',')\n });\n rules.push(\"\" + selector + block, ...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 _block6 = createDeclarationBlock({\n [property]: value\n });\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(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(v => prop + \":\" + v).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(stepName => {\n var rule = keyframes[stepName];\n var block = createDeclarationBlock(rule);\n return \"\" + stepName + block;\n }).join('') + '}';\n var rules = prefixes.map(prefix => {\n return \"@\" + prefix + \"keyframes \" + identifier + steps;\n });\n return [identifier, rules];\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(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[0],\n keyframesRules = _createKeyframes[1];\n\n animationNames.push(identifier);\n rules.push(...keyframesRules);\n }\n });\n return [animationNames, rules];\n}","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\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 { atomic, classic, inline } from './compiler';\nimport { createSheet } from './dom';\nimport { localizeStyle } from 'styleq/transform-localize-style';\nimport { preprocess } from './preprocess';\nimport { styleq } from 'styleq';\nimport { validate } from './validate';\nimport canUseDOM from '../../modules/canUseDom';\nvar staticStyleMap = new WeakMap();\nvar sheet = createSheet();\n\nfunction customStyleq(styles, isRTL) {\n return styleq.factory({\n transform(style) {\n var compiledStyle = staticStyleMap.get(style);\n\n if (compiledStyle != null) {\n return localizeStyle(compiledStyle, isRTL);\n }\n\n return style;\n }\n\n })(styles);\n}\n\nfunction insertRules(compiledOrderedRules) {\n compiledOrderedRules.forEach(_ref => {\n var rules = _ref[0],\n order = _ref[1];\n\n if (sheet != null) {\n rules.forEach(rule => {\n sheet.insert(rule, order);\n });\n }\n });\n}\n\nfunction compileAndInsertAtomic(style) {\n var _atomic = atomic(preprocess(style)),\n compiledStyle = _atomic[0],\n compiledOrderedRules = _atomic[1];\n\n insertRules(compiledOrderedRules);\n return compiledStyle;\n}\n\nfunction compileAndInsertReset(style, key) {\n var _classic = classic(style, key),\n compiledStyle = _classic[0],\n compiledOrderedRules = _classic[1];\n\n insertRules(compiledOrderedRules);\n return compiledStyle;\n}\n/* ----- API ----- */\n\n\nvar absoluteFillObject = {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n};\nvar absoluteFill = create({\n x: _objectSpread({}, absoluteFillObject)\n}).x;\n/**\n * create\n */\n\nfunction create(styles) {\n Object.keys(styles).forEach(key => {\n var styleObj = styles[key]; // Only compile at runtime if the style is not already compiled\n\n if (styleObj != null && styleObj.$$css !== true) {\n var compiledStyles;\n\n if (key.indexOf('$raw') > -1) {\n compiledStyles = compileAndInsertReset(styleObj, key.split('$raw')[0]);\n } else {\n if (process.env.NODE_ENV !== 'production') {\n validate(styleObj);\n styles[key] = Object.freeze(styleObj);\n }\n\n compiledStyles = compileAndInsertAtomic(styleObj);\n }\n\n staticStyleMap.set(styleObj, compiledStyles);\n }\n });\n return styles;\n}\n/**\n * compose\n */\n\n\nfunction 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 = [...arguments].map(a => flatten(a));\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/**\n * flatten\n */\n\n\nfunction flatten() {\n for (var _len = arguments.length, styles = new Array(_len), _key = 0; _key < _len; _key++) {\n styles[_key] = arguments[_key];\n }\n\n var flatArray = styles.flat(Infinity);\n var result = {};\n\n for (var i = 0; i < flatArray.length; i++) {\n var style = flatArray[i];\n\n if (style != null && typeof style === 'object') {\n // $FlowFixMe\n Object.assign(result, style);\n }\n }\n\n return result;\n}\n/**\n * getSheet\n */\n\n\nfunction getSheet() {\n return {\n id: sheet.id,\n textContent: sheet.getTextContent()\n };\n}\n/**\n * resolve\n */\n\n\nfunction StyleSheet(styles, options) {\n var isRTL = options != null && options.writingDirection === 'rtl';\n var styleProps = customStyleq(styles, isRTL);\n\n if (Array.isArray(styleProps) && styleProps[1] != null) {\n styleProps[1] = inline(preprocess(styleProps[1]), isRTL);\n }\n\n return styleProps;\n}\n\nStyleSheet.absoluteFill = absoluteFill;\nStyleSheet.absoluteFillObject = absoluteFillObject;\nStyleSheet.create = create;\nStyleSheet.compose = compose;\nStyleSheet.flatten = flatten;\nStyleSheet.getSheet = getSheet; // `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\nStyleSheet.hairlineWidth = 1;\n\nif (canUseDOM && window.__REACT_DEVTOOLS_GLOBAL_HOOK__) {\n window.__REACT_DEVTOOLS_GLOBAL_HOOK__.resolveRNStyle = StyleSheet.flatten;\n}\n\nvar stylesheet = StyleSheet;\nexport default stylesheet;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _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, toPropertyKey(descriptor.key), descriptor);\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}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableRest = require(\"./nonIterableRest.js\");\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : 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}\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"hrefAttrs\", \"onLayout\", \"onMoveShouldSetResponder\", \"onMoveShouldSetResponderCapture\", \"onResponderEnd\", \"onResponderGrant\", \"onResponderMove\", \"onResponderReject\", \"onResponderRelease\", \"onResponderStart\", \"onResponderTerminate\", \"onResponderTerminationRequest\", \"onScrollShouldSetResponder\", \"onScrollShouldSetResponderCapture\", \"onSelectionChangeShouldSetResponder\", \"onSelectionChangeShouldSetResponderCapture\", \"onStartShouldSetResponder\", \"onStartShouldSetResponderCapture\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 * 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';\nimport { useLocaleContext, getLocaleDirection } from '../../modules/useLocale';\nvar forwardPropsList = Object.assign({}, forwardedProps.defaultProps, forwardedProps.accessibilityProps, forwardedProps.clickProps, 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 = props => pick(props, forwardPropsList);\n\nvar View = /*#__PURE__*/React.forwardRef((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 rest = _objectWithoutPropertiesLoose(props, _excluded);\n\n if (process.env.NODE_ENV !== 'production') {\n React.Children.toArray(props.children).forEach(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\n var _useLocaleContext = useLocaleContext(),\n contextDirection = _useLocaleContext.direction;\n\n useElementLayout(hostRef, onLayout);\n useResponderEvents(hostRef, {\n onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture,\n onResponderEnd,\n onResponderGrant,\n onResponderMove,\n onResponderReject,\n onResponderRelease,\n onResponderStart,\n onResponderTerminate,\n onResponderTerminationRequest,\n onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder,\n onStartShouldSetResponderCapture\n });\n var component = 'div';\n var langDirection = props.lang != null ? getLocaleDirection(props.lang) : null;\n var componentDirection = props.dir || langDirection;\n var writingDirection = componentDirection || contextDirection;\n var supportedProps = pickProps(rest);\n supportedProps.dir = componentDirection;\n supportedProps.style = [styles.view$raw, hasTextAncestor && styles.inline, props.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 writingDirection\n });\n});\nView.displayName = 'View';\nvar styles = StyleSheet.create({\n view$raw: {\n alignItems: 'stretch',\n backgroundColor: 'transparent',\n border: '0 solid black',\n boxSizing: 'border-box',\n display: 'flex',\n flexBasis: 'auto',\n flexDirection: 'column',\n flexShrink: 0,\n listStyle: 'none',\n margin: 0,\n minHeight: 0,\n minWidth: 0,\n padding: 0,\n position: 'relative',\n textDecoration: 'none',\n zIndex: 0\n },\n inline: {\n display: 'inline-flex'\n }\n});\nexport default View;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 = (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(mapping => {\n NativeAnimatedHelper.API.addAnimatedEventToView(viewTag, eventName, mapping);\n });\n }\n\n return {\n detach() {\n if (viewTag != null) {\n eventMappings.forEach(mapping => {\n NativeAnimatedHelper.API.removeAnimatedEventFromView(viewTag, eventName, // $FlowFixMe[incompatible-call]\n mapping.animatedValueTag);\n });\n }\n }\n\n };\n}\n\nfunction validateMapping(argMapping, args) {\n var 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((mapping, idx) => {\n validate(mapping, args[idx], 'arg' + idx);\n });\n}\n\nexport class AnimatedEvent {\n constructor(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 __addListener(callback) {\n this._listeners.push(callback);\n }\n\n __removeListener(callback) {\n this._listeners = this._listeners.filter(listener => listener !== callback);\n }\n\n __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 __detach(viewTag, eventName) {\n invariant(this.__isNative, 'Only native driven events need to be detached.');\n this._attachedEvent && this._attachedEvent.detach();\n }\n\n __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(...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 = (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((mapping, idx) => {\n traverse(mapping, args[idx], 'arg' + idx);\n });\n\n _this._callListeners(...args);\n };\n }\n\n _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(listener => listener(...args));\n }\n\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 AnimatedNode from './AnimatedNode';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\n\nclass AnimatedTransform extends AnimatedWithChildren {\n constructor(transforms) {\n super();\n this._transforms = transforms;\n }\n\n __makeNative() {\n this._transforms.forEach(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 super.__makeNative();\n }\n\n __getValue() {\n return this._transforms.map(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 __getAnimatedValue() {\n return this._transforms.map(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 __attach() {\n this._transforms.forEach(transform => {\n for (var key in transform) {\n var value = transform[key];\n\n if (value instanceof AnimatedNode) {\n value.__addChild(this);\n }\n }\n });\n }\n\n __detach() {\n this._transforms.forEach(transform => {\n for (var key in transform) {\n var value = transform[key];\n\n if (value instanceof AnimatedNode) {\n value.__removeChild(this);\n }\n }\n });\n\n super.__detach();\n }\n\n __getNativeConfig() {\n var transConfigs = [];\n\n this._transforms.forEach(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}\n\nexport default AnimatedTransform;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedTransform from './AnimatedTransform';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport StyleSheet from '../../../../exports/StyleSheet';\nvar flattenStyle = StyleSheet.flatten;\n\nclass AnimatedStyle extends AnimatedWithChildren {\n constructor(style) {\n super();\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 } // Recursively get values for nested styles (like iOS's shadowOffset)\n\n\n _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 __getValue() {\n return this._walkStyleAndGetValues(this._style);\n } // Recursively get animated values for nested styles (like iOS's shadowOffset)\n\n\n _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 __getAnimatedValue() {\n return this._walkStyleAndGetAnimatedValues(this._style);\n }\n\n __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 __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 super.__detach();\n }\n\n __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 super.__makeNative();\n }\n\n __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}\n\nexport default AnimatedStyle;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\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\nclass AnimatedProps extends AnimatedNode {\n constructor(props, callback) {\n super();\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\n __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 __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 __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 __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 super.__detach();\n }\n\n update() {\n this._callback();\n }\n\n __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 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 __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 __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 __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 __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}\n\nexport default AnimatedProps;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 _extends from \"@babel/runtime/helpers/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"style\"],\n _excluded2 = [\"style\"];\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 class AnimatedComponent extends React.Component {\n constructor() {\n super(...arguments);\n this._invokeAnimatedPropsCallbackOnMount = false;\n this._eventDetachers = [];\n this._animatedComponentId = animatedComponentNextId++ + \":animatedComponent\";\n\n this._isFabric = () => {\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 = () => {\n if (this._isFabric()) {\n NativeAnimatedHelper.API.setWaitingForIdentifier(this._animatedComponentId);\n }\n };\n\n this._markUpdateComplete = () => {\n if (this._isFabric()) {\n NativeAnimatedHelper.API.unsetWaitingForIdentifier(this._animatedComponentId);\n }\n };\n\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 } 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: () => this.props.forwardedRef,\n 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 = () => {\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 }\n\n _attachNativeEvents() {\n var _this$_component,\n _this = 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 = _this.props[key];\n\n if (prop instanceof AnimatedEvent && prop.__isNative) {\n prop.__attach(scrollableNode, key);\n\n _this._eventDetachers.push(() => prop.__detach(scrollableNode, key));\n }\n };\n\n for (var key in this.props) {\n _loop(key);\n }\n }\n\n _detachNativeEvents() {\n this._eventDetachers.forEach(remove => remove());\n\n this._eventDetachers = [];\n }\n\n _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 render() {\n var _ref = this._propsAnimated.__getValue() || {},\n _ref$style = _ref.style,\n style = _ref$style === void 0 ? {} : _ref$style,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n var _ref2 = this.props.passthroughAnimatedPropExplicitValues || {},\n _ref2$style = _ref2.style,\n passthruStyle = _ref2$style === void 0 ? {} : _ref2$style,\n passthruProps = _objectWithoutPropertiesLoose(_ref2, _excluded2);\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 UNSAFE_componentWillMount() {\n this._waitForUpdate();\n\n this._attachProps(this.props);\n }\n\n 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 UNSAFE_componentWillReceiveProps(newProps) {\n this._waitForUpdate();\n\n this._attachProps(newProps);\n }\n\n 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 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 }\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 _extends from \"@babel/runtime/helpers/extends\";\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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((props, ref) => /*#__PURE__*/React.createElement(FlatList, _extends({\n scrollEventThrottle: 0.0001\n}, props, {\n ref: ref\n})));\nexport default createAnimatedComponent(FlatListWithEventThrottle);","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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});","import _extends from \"@babel/runtime/helpers/extends\";\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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((props, ref) => /*#__PURE__*/React.createElement(ScrollView, _extends({\n scrollEventThrottle: 0.0001\n}, props, {\n ref: ref\n})));\nexport default createAnimatedComponent(ScrollViewWithEventThrottle, {\n collapsable: false\n});","import _extends from \"@babel/runtime/helpers/extends\";\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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((props, ref) => /*#__PURE__*/React.createElement(SectionList, _extends({\n scrollEventThrottle: 0.0001\n}, props, {\n ref: ref\n})));\nexport default createAnimatedComponent(SectionListWithEventThrottle);","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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) Meta Platforms, Inc. and affiliates.\n *\n * This source 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) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nclass AnimatedAddition extends AnimatedWithChildren {\n constructor(a, b) {\n super();\n this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n }\n\n __makeNative() {\n this._a.__makeNative();\n\n this._b.__makeNative();\n\n super.__makeNative();\n }\n\n __getValue() {\n return this._a.__getValue() + this._b.__getValue();\n }\n\n interpolate(config) {\n return new AnimatedInterpolation(this, config);\n }\n\n __attach() {\n this._a.__addChild(this);\n\n this._b.__addChild(this);\n }\n\n __detach() {\n this._a.__removeChild(this);\n\n this._b.__removeChild(this);\n\n super.__detach();\n }\n\n __getNativeConfig() {\n return {\n type: 'addition',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()]\n };\n }\n\n}\n\nexport default AnimatedAddition;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nclass AnimatedDiffClamp extends AnimatedWithChildren {\n constructor(a, min, max) {\n super();\n this._a = a;\n this._min = min;\n this._max = max;\n this._value = this._lastValue = this._a.__getValue();\n }\n\n __makeNative() {\n this._a.__makeNative();\n\n super.__makeNative();\n }\n\n interpolate(config) {\n return new AnimatedInterpolation(this, config);\n }\n\n __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 __attach() {\n this._a.__addChild(this);\n }\n\n __detach() {\n this._a.__removeChild(this);\n\n super.__detach();\n }\n\n __getNativeConfig() {\n return {\n type: 'diffclamp',\n input: this._a.__getNativeTag(),\n min: this._min,\n max: this._max\n };\n }\n\n}\n\nexport default AnimatedDiffClamp;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nclass AnimatedDivision extends AnimatedWithChildren {\n constructor(a, b) {\n super();\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 }\n\n __makeNative() {\n this._a.__makeNative();\n\n this._b.__makeNative();\n\n super.__makeNative();\n }\n\n __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 interpolate(config) {\n return new AnimatedInterpolation(this, config);\n }\n\n __attach() {\n this._a.__addChild(this);\n\n this._b.__addChild(this);\n }\n\n __detach() {\n this._a.__removeChild(this);\n\n this._b.__removeChild(this);\n\n super.__detach();\n }\n\n __getNativeConfig() {\n return {\n type: 'division',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()]\n };\n }\n\n}\n\nexport default AnimatedDivision;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nclass AnimatedModulo extends AnimatedWithChildren {\n constructor(a, modulus) {\n super();\n this._a = a;\n this._modulus = modulus;\n }\n\n __makeNative() {\n this._a.__makeNative();\n\n super.__makeNative();\n }\n\n __getValue() {\n return (this._a.__getValue() % this._modulus + this._modulus) % this._modulus;\n }\n\n interpolate(config) {\n return new AnimatedInterpolation(this, config);\n }\n\n __attach() {\n this._a.__addChild(this);\n }\n\n __detach() {\n this._a.__removeChild(this);\n\n super.__detach();\n }\n\n __getNativeConfig() {\n return {\n type: 'modulus',\n input: this._a.__getNativeTag(),\n modulus: this._modulus\n };\n }\n\n}\n\nexport default AnimatedModulo;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nclass AnimatedMultiplication extends AnimatedWithChildren {\n constructor(a, b) {\n super();\n this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n }\n\n __makeNative() {\n this._a.__makeNative();\n\n this._b.__makeNative();\n\n super.__makeNative();\n }\n\n __getValue() {\n return this._a.__getValue() * this._b.__getValue();\n }\n\n interpolate(config) {\n return new AnimatedInterpolation(this, config);\n }\n\n __attach() {\n this._a.__addChild(this);\n\n this._b.__addChild(this);\n }\n\n __detach() {\n this._a.__removeChild(this);\n\n this._b.__removeChild(this);\n\n super.__detach();\n }\n\n __getNativeConfig() {\n return {\n type: 'multiplication',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()]\n };\n }\n\n}\n\nexport default AnimatedMultiplication;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nclass AnimatedSubtraction extends AnimatedWithChildren {\n constructor(a, b) {\n super();\n this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n }\n\n __makeNative() {\n this._a.__makeNative();\n\n this._b.__makeNative();\n\n super.__makeNative();\n }\n\n __getValue() {\n return this._a.__getValue() - this._b.__getValue();\n }\n\n interpolate(config) {\n return new AnimatedInterpolation(this, config);\n }\n\n __attach() {\n this._a.__addChild(this);\n\n this._b.__addChild(this);\n }\n\n __detach() {\n this._a.__removeChild(this);\n\n this._b.__removeChild(this);\n\n super.__detach();\n }\n\n __getNativeConfig() {\n return {\n type: 'subtraction',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()]\n };\n }\n\n}\n\nexport default AnimatedSubtraction;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedNode from './AnimatedNode';\nimport { generateNewAnimationId, shouldUseNativeDriver } from '../NativeAnimatedHelper';\n\nclass AnimatedTracking extends AnimatedNode {\n constructor(value, parent, animationClass, animationConfig, callback) {\n super();\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\n __makeNative() {\n this.__isNative = true;\n\n this._parent.__makeNative();\n\n super.__makeNative();\n\n this._value.__makeNative();\n }\n\n __getValue() {\n return this._parent.__getValue();\n }\n\n __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 __detach() {\n this._parent.__removeChild(this);\n\n super.__detach();\n }\n\n update() {\n this._value.animate(new this._animationClass(_objectSpread(_objectSpread({}, this._animationConfig), {}, {\n toValue: this._animationConfig.toValue.__getValue()\n })), this._callback);\n }\n\n __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,\n toValue: this._parent.__getNativeTag(),\n value: this._value.__getNativeTag()\n };\n }\n\n}\n\nexport default AnimatedTracking;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\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(...arguments);\n callback && callback(...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\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\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\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((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((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((animation, idx) => {\n !hasEnded[idx] && animation.stop();\n hasEnded[idx] = true;\n });\n },\n reset: function reset() {\n animations.forEach((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((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(...arguments);\n listener(...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,\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,\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,\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,\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,\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,\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,\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,\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,\n\n /**\n * Starts an animation after the given delay.\n *\n * See https://reactnative.dev/docs/animated.html#delay\n */\n 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,\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,\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,\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,\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,\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,\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,\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,\n 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) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\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: () => {},\n stop: () => {},\n reset: () => {},\n _startNativeLoop: () => {},\n _isUsingNativeDriver: () => {\n return false;\n }\n};\n\nvar spring = function spring(value, config) {\n var anyValue = value;\n return _objectSpread(_objectSpread({}, emptyAnimation), {}, {\n 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: 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,\n timing,\n 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,\n sequence,\n parallel,\n stagger,\n loop,\n event,\n createAnimatedComponent,\n attachNativeEvent,\n forkEvent: AnimatedImplementation.forkEvent,\n unforkEvent: AnimatedImplementation.unforkEvent,\n Event: AnimatedEvent,\n __PropsOnlyForTests: AnimatedProps\n};","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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,\n Image,\n ScrollView,\n SectionList,\n Text,\n 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;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\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 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}\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose.js\");\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\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 return target;\n}\nmodule.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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: obj => 'web' in obj ? obj.web : obj.default,\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;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\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 return assertThisInitialized(self);\n}\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function 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 if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\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 function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}\nmodule.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\nvar colorString = require('color-string');\nvar convert = require('color-convert');\n\nvar _slice = [].slice;\n\nvar 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\nvar hashedModelKeys = {};\nObject.keys(convert).forEach(function (model) {\n\thashedModelKeys[_slice.call(convert[model].labels).sort().join('')] = model;\n});\n\nvar limiters = {};\n\nfunction Color(obj, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj, 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\tvar i;\n\tvar channels;\n\n\tif (obj == 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 (obj instanceof Color) {\n\t\tthis.model = obj.model;\n\t\tthis.color = obj.color.slice();\n\t\tthis.valpha = obj.valpha;\n\t} else if (typeof obj === 'string') {\n\t\tvar result = colorString.get(obj);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + obj);\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 (obj.length) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tvar newArr = _slice.call(obj, 0, channels);\n\t\tthis.color = zeroArray(newArr, channels);\n\t\tthis.valpha = typeof obj[channels] === 'number' ? obj[channels] : 1;\n\t} else if (typeof obj === 'number') {\n\t\t// this is always RGB - can be converted later on.\n\t\tobj &= 0xFFFFFF;\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(obj >> 16) & 0xFF,\n\t\t\t(obj >> 8) & 0xFF,\n\t\t\tobj & 0xFF\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tvar keys = Object.keys(obj);\n\t\tif ('alpha' in obj) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof obj.alpha === 'number' ? obj.alpha : 0;\n\t\t}\n\n\t\tvar hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(obj));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tvar labels = convert[this.model].labels;\n\t\tvar color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(obj[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\tvar 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: function () {\n\t\treturn this.string();\n\t},\n\n\ttoJSON: function () {\n\t\treturn this[this.model]();\n\t},\n\n\tstring: function (places) {\n\t\tvar self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString: function (places) {\n\t\tvar self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray: function () {\n\t\treturn this.valpha === 1 ? this.color.slice() : this.color.concat(this.valpha);\n\t},\n\n\tobject: function () {\n\t\tvar result = {};\n\t\tvar channels = convert[this.model].channels;\n\t\tvar labels = convert[this.model].labels;\n\n\t\tfor (var 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: function () {\n\t\tvar 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: function () {\n\t\tvar 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: function (places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color(this.color.map(roundToPlace(places)).concat(this.valpha), this.model);\n\t},\n\n\talpha: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(this.color.concat(Math.max(0, Math.min(1, val))), 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, function (val) { return ((val % 360) + 360) % 360; }), // eslint-disable-line brace-style\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(100)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(100)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.rgb().color;\n\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((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: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar 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: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.rgb().color;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight: function () {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = this.rgb();\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\t\treturn rgb;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale: function () {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar rgb = this.rgb().color;\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(val, val, val);\n\t},\n\n\tfade: function (ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer: function (ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.hsl();\n\t\tvar 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: function (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\t\tvar color1 = mixinColor.rgb();\n\t\tvar color2 = this.rgb();\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t}\n};\n\n// model conversion methods and static constructors\nObject.keys(convert).forEach(function (model) {\n\tif (skippedModels.indexOf(model) !== -1) {\n\t\treturn;\n\t}\n\n\tvar channels = convert[model].channels;\n\n\t// conversion methods\n\tColor.prototype[model] = function () {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (arguments.length) {\n\t\t\treturn new Color(arguments, model);\n\t\t}\n\n\t\tvar newAlpha = typeof arguments[channels] === 'number' ? channels : this.valpha;\n\t\treturn new Color(assertArray(convert[this.model][model].raw(this.color)).concat(newAlpha), model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (color) {\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(_slice.call(arguments), channels);\n\t\t}\n\t\treturn new Color(color, model);\n\t};\n});\n\nfunction roundTo(num, places) {\n\treturn Number(num.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (num) {\n\t\treturn roundTo(num, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tmodel.forEach(function (m) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t});\n\n\tmodel = model[0];\n\n\treturn function (val) {\n\t\tvar result;\n\n\t\tif (arguments.length) {\n\t\t\tif (modifier) {\n\t\t\t\tval = modifier(val);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = val;\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(val) {\n\treturn Array.isArray(val) ? val : [val];\n}\n\nfunction zeroArray(arr, length) {\n\tfor (var i = 0; i < length; i++) {\n\t\tif (typeof arr[i] !== 'number') {\n\t\t\tarr[i] = 0;\n\t\t}\n\t}\n\n\treturn arr;\n}\n\nmodule.exports = Color;\n","// 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","var superPropBase = require(\"./superPropBase.js\");\nfunction _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n module.exports = _get = Reflect.get.bind(), 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 if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n return desc.value;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n }\n return _get.apply(this, arguments);\n}\nmodule.exports = _get, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import { createTheming } from '@callstack/react-theme-provider';\nimport color from 'color';\nimport { MD2DarkTheme, MD2LightTheme, MD3DarkTheme, MD3LightTheme } from '../styles/themes';\nexport const DefaultTheme = MD3LightTheme;\nexport const {\n ThemeProvider,\n withTheme,\n useTheme: useAppTheme\n} = createTheming(MD3LightTheme);\nexport function useTheme(overrides) {\n return useAppTheme(overrides);\n}\nexport const useInternalTheme = themeOverrides => useAppTheme(themeOverrides);\nexport const withInternalTheme = WrappedComponent => withTheme(WrappedComponent);\nexport const defaultThemesByVersion = {\n 2: {\n light: MD2LightTheme,\n dark: MD2DarkTheme\n },\n 3: {\n light: MD3LightTheme,\n dark: MD3DarkTheme\n }\n};\nexport const getTheme = function () {\n let isDark = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n let isV3 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n const themeVersion = isV3 ? 3 : 2;\n const scheme = isDark ? 'dark' : 'light';\n return defaultThemesByVersion[themeVersion][scheme];\n};\n\n// eslint-disable-next-line no-redeclare\n\n// eslint-disable-next-line no-redeclare\n\n// eslint-disable-next-line no-redeclare\n\n// eslint-disable-next-line no-redeclare\nexport function adaptNavigationTheme(themes) {\n const {\n reactNavigationLight,\n reactNavigationDark,\n materialLight,\n materialDark\n } = themes;\n const getAdaptedTheme = (navigationTheme, MD3Theme) => {\n return {\n ...navigationTheme,\n colors: {\n ...navigationTheme.colors,\n primary: MD3Theme.colors.primary,\n background: MD3Theme.colors.background,\n card: MD3Theme.colors.elevation.level2,\n text: MD3Theme.colors.onSurface,\n border: MD3Theme.colors.outline,\n notification: MD3Theme.colors.error\n }\n };\n };\n const MD3Themes = {\n light: materialLight || MD3LightTheme,\n dark: materialDark || MD3DarkTheme\n };\n if (reactNavigationLight && reactNavigationDark) {\n const modes = ['light', 'dark'];\n const NavigationThemes = {\n light: reactNavigationLight,\n dark: reactNavigationDark\n };\n const {\n light: adaptedLight,\n dark: adaptedDark\n } = modes.reduce((prev, curr) => {\n return {\n ...prev,\n [curr]: getAdaptedTheme(NavigationThemes[curr], MD3Themes[curr])\n };\n }, {\n light: reactNavigationLight,\n dark: reactNavigationDark\n });\n return {\n LightTheme: adaptedLight,\n DarkTheme: adaptedDark\n };\n }\n if (reactNavigationDark) {\n return {\n DarkTheme: getAdaptedTheme(reactNavigationDark, MD3Themes.dark)\n };\n }\n return {\n LightTheme: getAdaptedTheme(reactNavigationLight, MD3Themes.light)\n };\n}\nexport const getDynamicThemeElevations = scheme => {\n const elevationValues = ['transparent', 0.05, 0.08, 0.11, 0.12, 0.14];\n return elevationValues.reduce((elevations, elevationValue, index) => {\n return {\n ...elevations,\n [`level${index}`]: index === 0 ? elevationValue : color(scheme.surface).mix(color(scheme.primary), elevationValue).rgb().string()\n };\n }, {});\n};\n//# sourceMappingURL=theming.js.map","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\nvar iterableToArray = require(\"./iterableToArray.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","//! moment.js\n//! version : 2.30.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n var flags = null,\n parsedParts = false,\n isNowValid = m._d && !isNaN(m._d.getTime());\n if (isNowValid) {\n flags = getParsingFlags(m);\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n isNowValid =\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n }\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {\n D: 'date',\n dates: 'date',\n date: 'date',\n d: 'day',\n days: 'day',\n day: 'day',\n e: 'weekday',\n weekdays: 'weekday',\n weekday: 'weekday',\n E: 'isoWeekday',\n isoweekdays: 'isoWeekday',\n isoweekday: 'isoWeekday',\n DDD: 'dayOfYear',\n dayofyears: 'dayOfYear',\n dayofyear: 'dayOfYear',\n h: 'hour',\n hours: 'hour',\n hour: 'hour',\n ms: 'millisecond',\n milliseconds: 'millisecond',\n millisecond: 'millisecond',\n m: 'minute',\n minutes: 'minute',\n minute: 'minute',\n M: 'month',\n months: 'month',\n month: 'month',\n Q: 'quarter',\n quarters: 'quarter',\n quarter: 'quarter',\n s: 'second',\n seconds: 'second',\n second: 'second',\n gg: 'weekYear',\n weekyears: 'weekYear',\n weekyear: 'weekYear',\n GG: 'isoWeekYear',\n isoweekyears: 'isoWeekYear',\n isoweekyear: 'isoWeekYear',\n w: 'week',\n weeks: 'week',\n week: 'week',\n W: 'isoWeek',\n isoweeks: 'isoWeek',\n isoweek: 'isoWeek',\n y: 'year',\n years: 'year',\n year: 'year',\n };\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {\n date: 9,\n day: 11,\n weekday: 11,\n isoWeekday: 11,\n dayOfYear: 4,\n hour: 13,\n millisecond: 16,\n minute: 14,\n month: 8,\n quarter: 7,\n second: 15,\n weekYear: 1,\n isoWeekYear: 1,\n week: 5,\n isoWeek: 5,\n year: 1,\n };\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n match1to2NoLeadingZero = /^[1-9]\\d?/, // 1-99\n match1to2HasZero = /^([1-9]\\d|\\d)/, // 0-99\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n if (!mom.isValid()) {\n return NaN;\n }\n\n var d = mom._d,\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds();\n case 'Seconds':\n return isUTC ? d.getUTCSeconds() : d.getSeconds();\n case 'Minutes':\n return isUTC ? d.getUTCMinutes() : d.getMinutes();\n case 'Hours':\n return isUTC ? d.getUTCHours() : d.getHours();\n case 'Date':\n return isUTC ? d.getUTCDate() : d.getDate();\n case 'Day':\n return isUTC ? d.getUTCDay() : d.getDay();\n case 'Month':\n return isUTC ? d.getUTCMonth() : d.getMonth();\n case 'FullYear':\n return isUTC ? d.getUTCFullYear() : d.getFullYear();\n default:\n return NaN; // Just in case\n }\n }\n\n function set$1(mom, unit, value) {\n var d, isUTC, year, month, date;\n\n if (!mom.isValid() || isNaN(value)) {\n return;\n }\n\n d = mom._d;\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return void (isUTC\n ? d.setUTCMilliseconds(value)\n : d.setMilliseconds(value));\n case 'Seconds':\n return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value));\n case 'Minutes':\n return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value));\n case 'Hours':\n return void (isUTC ? d.setUTCHours(value) : d.setHours(value));\n case 'Date':\n return void (isUTC ? d.setUTCDate(value) : d.setDate(value));\n // case 'Day': // Not real\n // return void (isUTC ? d.setUTCDay(value) : d.setDay(value));\n // case 'Month': // Not used because we need to pass two variables\n // return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value));\n case 'FullYear':\n break; // See below ...\n default:\n return; // Just in case\n }\n\n year = value;\n month = mom.month();\n date = mom.date();\n date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date;\n void (isUTC\n ? d.setUTCFullYear(year, month, date)\n : d.setFullYear(year, month, date));\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // PARSING\n\n addRegexToken('M', match1to2, match1to2NoLeadingZero);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n var month = value,\n date = mom.date();\n\n date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month));\n void (mom._isUTC\n ? mom._d.setUTCMonth(month, date)\n : mom._d.setMonth(month, date));\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n shortP,\n longP;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortP = regexEscape(this.monthsShort(mom, ''));\n longP = regexEscape(this.months(mom, ''));\n shortPieces.push(shortP);\n longPieces.push(longP);\n mixedPieces.push(longP);\n mixedPieces.push(shortP);\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // PARSING\n\n addRegexToken('w', match1to2, match1to2NoLeadingZero);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2, match1to2NoLeadingZero);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var day = get(this, 'Day');\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2, match1to2HasZero);\n addRegexToken('h', match1to2, match1to2NoLeadingZero);\n addRegexToken('k', match1to2, match1to2NoLeadingZero);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n // Ensure name is available and function returns boolean\n return !!(name && name.match('^[^/\\\\\\\\]*$'));\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n erasName,\n erasAbbr,\n erasNarrow,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n erasName = regexEscape(eras[i].name);\n erasAbbr = regexEscape(eras[i].abbr);\n erasNarrow = regexEscape(eras[i].narrow);\n\n namePieces.push(erasName);\n abbrPieces.push(erasAbbr);\n narrowPieces.push(erasNarrow);\n mixedPieces.push(erasName);\n mixedPieces.push(erasAbbr);\n mixedPieces.push(erasNarrow);\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday() + this.localeData()._week.dow,\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // PARSING\n\n addRegexToken('D', match1to2, match1to2NoLeadingZero);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // PARSING\n\n addRegexToken('m', match1to2, match1to2HasZero);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // PARSING\n\n addRegexToken('s', match1to2, match1to2HasZero);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y'),\n valueOf$1 = asMilliseconds;\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.30.1';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n'use strict';\n\nvar 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;","var defineProperty = require(\"./defineProperty.js\");\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nmodule.exports = _objectSpread2, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","export const transparent = 'rgba(255, 255, 255, 0)';\nexport const red50 = '#ffebee';\nexport const red100 = '#ffcdd2';\nexport const red200 = '#ef9a9a';\nexport const red300 = '#e57373';\nexport const red400 = '#ef5350';\nexport const red500 = '#f44336';\nexport const red600 = '#e53935';\nexport const red700 = '#d32f2f';\nexport const red800 = '#c62828';\nexport const red900 = '#b71c1c';\nexport const redA100 = '#ff8a80';\nexport const redA200 = '#ff5252';\nexport const redA400 = '#ff1744';\nexport const redA700 = '#d50000';\nexport const pink50 = '#fce4ec';\nexport const pink100 = '#f8bbd0';\nexport const pink200 = '#f48fb1';\nexport const pink300 = '#f06292';\nexport const pink400 = '#ec407a';\nexport const pink500 = '#e91e63';\nexport const pink600 = '#d81b60';\nexport const pink700 = '#c2185b';\nexport const pink800 = '#ad1457';\nexport const pink900 = '#880e4f';\nexport const pinkA100 = '#ff80ab';\nexport const pinkA200 = '#ff4081';\nexport const pinkA400 = '#f50057';\nexport const pinkA700 = '#c51162';\nexport const purple50 = '#f3e5f5';\nexport const purple100 = '#e1bee7';\nexport const purple200 = '#ce93d8';\nexport const purple300 = '#ba68c8';\nexport const purple400 = '#ab47bc';\nexport const purple500 = '#9c27b0';\nexport const purple600 = '#8e24aa';\nexport const purple700 = '#7b1fa2';\nexport const purple800 = '#6a1b9a';\nexport const purple900 = '#4a148c';\nexport const purpleA100 = '#ea80fc';\nexport const purpleA200 = '#e040fb';\nexport const purpleA400 = '#d500f9';\nexport const purpleA700 = '#aa00ff';\nexport const deepPurple50 = '#ede7f6';\nexport const deepPurple100 = '#d1c4e9';\nexport const deepPurple200 = '#b39ddb';\nexport const deepPurple300 = '#9575cd';\nexport const deepPurple400 = '#7e57c2';\nexport const deepPurple500 = '#673ab7';\nexport const deepPurple600 = '#5e35b1';\nexport const deepPurple700 = '#512da8';\nexport const deepPurple800 = '#4527a0';\nexport const deepPurple900 = '#311b92';\nexport const deepPurpleA100 = '#b388ff';\nexport const deepPurpleA200 = '#7c4dff';\nexport const deepPurpleA400 = '#651fff';\nexport const deepPurpleA700 = '#6200ea';\nexport const indigo50 = '#e8eaf6';\nexport const indigo100 = '#c5cae9';\nexport const indigo200 = '#9fa8da';\nexport const indigo300 = '#7986cb';\nexport const indigo400 = '#5c6bc0';\nexport const indigo500 = '#3f51b5';\nexport const indigo600 = '#3949ab';\nexport const indigo700 = '#303f9f';\nexport const indigo800 = '#283593';\nexport const indigo900 = '#1a237e';\nexport const indigoA100 = '#8c9eff';\nexport const indigoA200 = '#536dfe';\nexport const indigoA400 = '#3d5afe';\nexport const indigoA700 = '#304ffe';\nexport const blue50 = '#e3f2fd';\nexport const blue100 = '#bbdefb';\nexport const blue200 = '#90caf9';\nexport const blue300 = '#64b5f6';\nexport const blue400 = '#42a5f5';\nexport const blue500 = '#2196f3';\nexport const blue600 = '#1e88e5';\nexport const blue700 = '#1976d2';\nexport const blue800 = '#1565c0';\nexport const blue900 = '#0d47a1';\nexport const blueA100 = '#82b1ff';\nexport const blueA200 = '#448aff';\nexport const blueA400 = '#2979ff';\nexport const blueA700 = '#2962ff';\nexport const lightBlue50 = '#e1f5fe';\nexport const lightBlue100 = '#b3e5fc';\nexport const lightBlue200 = '#81d4fa';\nexport const lightBlue300 = '#4fc3f7';\nexport const lightBlue400 = '#29b6f6';\nexport const lightBlue500 = '#03a9f4';\nexport const lightBlue600 = '#039be5';\nexport const lightBlue700 = '#0288d1';\nexport const lightBlue800 = '#0277bd';\nexport const lightBlue900 = '#01579b';\nexport const lightBlueA100 = '#80d8ff';\nexport const lightBlueA200 = '#40c4ff';\nexport const lightBlueA400 = '#00b0ff';\nexport const lightBlueA700 = '#0091ea';\nexport const cyan50 = '#e0f7fa';\nexport const cyan100 = '#b2ebf2';\nexport const cyan200 = '#80deea';\nexport const cyan300 = '#4dd0e1';\nexport const cyan400 = '#26c6da';\nexport const cyan500 = '#00bcd4';\nexport const cyan600 = '#00acc1';\nexport const cyan700 = '#0097a7';\nexport const cyan800 = '#00838f';\nexport const cyan900 = '#006064';\nexport const cyanA100 = '#84ffff';\nexport const cyanA200 = '#18ffff';\nexport const cyanA400 = '#00e5ff';\nexport const cyanA700 = '#00b8d4';\nexport const teal50 = '#e0f2f1';\nexport const teal100 = '#b2dfdb';\nexport const teal200 = '#80cbc4';\nexport const teal300 = '#4db6ac';\nexport const teal400 = '#26a69a';\nexport const teal500 = '#009688';\nexport const teal600 = '#00897b';\nexport const teal700 = '#00796b';\nexport const teal800 = '#00695c';\nexport const teal900 = '#004d40';\nexport const tealA100 = '#a7ffeb';\nexport const tealA200 = '#64ffda';\nexport const tealA400 = '#1de9b6';\nexport const tealA700 = '#00bfa5';\nexport const green50 = '#e8f5e9';\nexport const green100 = '#c8e6c9';\nexport const green200 = '#a5d6a7';\nexport const green300 = '#81c784';\nexport const green400 = '#66bb6a';\nexport const green500 = '#4caf50';\nexport const green600 = '#43a047';\nexport const green700 = '#388e3c';\nexport const green800 = '#2e7d32';\nexport const green900 = '#1b5e20';\nexport const greenA100 = '#b9f6ca';\nexport const greenA200 = '#69f0ae';\nexport const greenA400 = '#00e676';\nexport const greenA700 = '#00c853';\nexport const lightGreen50 = '#f1f8e9';\nexport const lightGreen100 = '#dcedc8';\nexport const lightGreen200 = '#c5e1a5';\nexport const lightGreen300 = '#aed581';\nexport const lightGreen400 = '#9ccc65';\nexport const lightGreen500 = '#8bc34a';\nexport const lightGreen600 = '#7cb342';\nexport const lightGreen700 = '#689f38';\nexport const lightGreen800 = '#558b2f';\nexport const lightGreen900 = '#33691e';\nexport const lightGreenA100 = '#ccff90';\nexport const lightGreenA200 = '#b2ff59';\nexport const lightGreenA400 = '#76ff03';\nexport const lightGreenA700 = '#64dd17';\nexport const lime50 = '#f9fbe7';\nexport const lime100 = '#f0f4c3';\nexport const lime200 = '#e6ee9c';\nexport const lime300 = '#dce775';\nexport const lime400 = '#d4e157';\nexport const lime500 = '#cddc39';\nexport const lime600 = '#c0ca33';\nexport const lime700 = '#afb42b';\nexport const lime800 = '#9e9d24';\nexport const lime900 = '#827717';\nexport const limeA100 = '#f4ff81';\nexport const limeA200 = '#eeff41';\nexport const limeA400 = '#c6ff00';\nexport const limeA700 = '#aeea00';\nexport const yellow50 = '#fffde7';\nexport const yellow100 = '#fff9c4';\nexport const yellow200 = '#fff59d';\nexport const yellow300 = '#fff176';\nexport const yellow400 = '#ffee58';\nexport const yellow500 = '#ffeb3b';\nexport const yellow600 = '#fdd835';\nexport const yellow700 = '#fbc02d';\nexport const yellow800 = '#f9a825';\nexport const yellow900 = '#f57f17';\nexport const yellowA100 = '#ffff8d';\nexport const yellowA200 = '#ffff00';\nexport const yellowA400 = '#ffea00';\nexport const yellowA700 = '#ffd600';\nexport const amber50 = '#fff8e1';\nexport const amber100 = '#ffecb3';\nexport const amber200 = '#ffe082';\nexport const amber300 = '#ffd54f';\nexport const amber400 = '#ffca28';\nexport const amber500 = '#ffc107';\nexport const amber600 = '#ffb300';\nexport const amber700 = '#ffa000';\nexport const amber800 = '#ff8f00';\nexport const amber900 = '#ff6f00';\nexport const amberA100 = '#ffe57f';\nexport const amberA200 = '#ffd740';\nexport const amberA400 = '#ffc400';\nexport const amberA700 = '#ffab00';\nexport const orange50 = '#fff3e0';\nexport const orange100 = '#ffe0b2';\nexport const orange200 = '#ffcc80';\nexport const orange300 = '#ffb74d';\nexport const orange400 = '#ffa726';\nexport const orange500 = '#ff9800';\nexport const orange600 = '#fb8c00';\nexport const orange700 = '#f57c00';\nexport const orange800 = '#ef6c00';\nexport const orange900 = '#e65100';\nexport const orangeA100 = '#ffd180';\nexport const orangeA200 = '#ffab40';\nexport const orangeA400 = '#ff9100';\nexport const orangeA700 = '#ff6d00';\nexport const deepOrange50 = '#fbe9e7';\nexport const deepOrange100 = '#ffccbc';\nexport const deepOrange200 = '#ffab91';\nexport const deepOrange300 = '#ff8a65';\nexport const deepOrange400 = '#ff7043';\nexport const deepOrange500 = '#ff5722';\nexport const deepOrange600 = '#f4511e';\nexport const deepOrange700 = '#e64a19';\nexport const deepOrange800 = '#d84315';\nexport const deepOrange900 = '#bf360c';\nexport const deepOrangeA100 = '#ff9e80';\nexport const deepOrangeA200 = '#ff6e40';\nexport const deepOrangeA400 = '#ff3d00';\nexport const deepOrangeA700 = '#dd2c00';\nexport const brown50 = '#efebe9';\nexport const brown100 = '#d7ccc8';\nexport const brown200 = '#bcaaa4';\nexport const brown300 = '#a1887f';\nexport const brown400 = '#8d6e63';\nexport const brown500 = '#795548';\nexport const brown600 = '#6d4c41';\nexport const brown700 = '#5d4037';\nexport const brown800 = '#4e342e';\nexport const brown900 = '#3e2723';\nexport const blueGrey50 = '#eceff1';\nexport const blueGrey100 = '#cfd8dc';\nexport const blueGrey200 = '#b0bec5';\nexport const blueGrey300 = '#90a4ae';\nexport const blueGrey400 = '#78909c';\nexport const blueGrey500 = '#607d8b';\nexport const blueGrey600 = '#546e7a';\nexport const blueGrey700 = '#455a64';\nexport const blueGrey800 = '#37474f';\nexport const blueGrey900 = '#263238';\nexport const grey50 = '#fafafa';\nexport const grey100 = '#f5f5f5';\nexport const grey200 = '#eeeeee';\nexport const grey300 = '#e0e0e0';\nexport const grey400 = '#bdbdbd';\nexport const grey500 = '#9e9e9e';\nexport const grey600 = '#757575';\nexport const grey700 = '#616161';\nexport const grey800 = '#424242';\nexport const grey900 = '#212121';\nexport const black = '#000000';\nexport const white = '#ffffff';\n//# sourceMappingURL=colors.js.map","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","import React, { createContext, useContext, useMemo } from 'react';\n\nexport type Spacing = number | string | undefined;\n\nexport type SpacingFunc = (size?: number | string) => Spacing;\n\nexport const defaultSpacingFunc: SpacingFunc = (space) => space;\n\nexport const SpacingFuncContext = createContext(defaultSpacingFunc);\n\nexport const useSpacingFunc = () => useContext(SpacingFuncContext);\n\nexport const useSpacing = (size?: number | string) => {\n const spacingFunc = useSpacingFunc();\n return useMemo(() => spacingFunc(size), [spacingFunc, size]);\n};\n\nexport interface SpacingFuncProviderProps {\n spacingFunc?: SpacingFunc;\n}\n\nexport const SpacingFuncProvider: React.FC = ({\n children,\n spacingFunc = defaultSpacingFunc,\n}) => (\n \n {children}\n \n);\n","import React, { useMemo } from 'react';\nimport { View, ViewProps, ViewStyle } from 'react-native';\nimport { useSpacingFunc } from './SpacingFuncContext';\n\nexport interface BoxProps extends ViewProps {\n /**\n * Child to render\n */\n as?: React.ReactElement;\n\n /**\n * Shorthand for the `height` style property.\n */\n h?: ViewStyle['height'];\n\n /**\n * Shorthand for the `minHeight` style property.\n */\n minH?: ViewStyle['minHeight'];\n\n /**\n * Shorthand for the `maxHeight` style property.\n */\n maxH?: ViewStyle['maxHeight'];\n\n /**\n * Shorthand for the `width` style property.\n */\n w?: ViewStyle['width'];\n\n /**\n * Shorthand for the `minWidth` style property.\n */\n minW?: ViewStyle['minWidth'];\n\n /**\n * Shorthand for the `maxWidth` style property.\n */\n maxW?: ViewStyle['maxWidth'];\n\n /**\n * Shorthand for the `margin` style property.\n */\n m?: ViewStyle['margin'];\n\n /**\n * Shorthand for the `marginTop` style property.\n */\n mt?: ViewStyle['marginTop'];\n\n /**\n * Shorthand for the `marginRight` style property.\n */\n mr?: ViewStyle['marginRight'];\n\n /**\n * Shorthand for the `marginBottom` style property.\n */\n mb?: ViewStyle['marginBottom'];\n\n /**\n * Shorthand for the `marginLeft` style property.\n */\n ml?: ViewStyle['marginLeft'];\n\n /**\n * Shorthand for the `marginStart` style property.\n */\n ms?: ViewStyle['marginStart'];\n\n /**\n * Shorthand for the `marginEnd` style property.\n */\n me?: ViewStyle['marginEnd'];\n\n /**\n * Shorthand for the `marginHorizontal` style property.\n */\n mh?: ViewStyle['marginHorizontal'];\n\n /**\n * Shorthand for the `marginVertical` style property.\n */\n mv?: ViewStyle['marginVertical'];\n\n /**\n * Shorthand for the `padding` style property.\n */\n p?: ViewStyle['padding'];\n\n /**\n * Shorthand for the `paddingTop` style property.\n */\n pt?: ViewStyle['paddingTop'];\n\n /**\n * Shorthand for the `paddingRight` style property.\n */\n pr?: ViewStyle['paddingRight'];\n\n /**\n * Shorthand for the `paddingBottom` style property.\n */\n pb?: ViewStyle['paddingBottom'];\n\n /**\n * Shorthand for the `paddingLeft` style property.\n */\n pl?: ViewStyle['paddingLeft'];\n\n /**\n * Shorthand for the `paddingStart` style property.\n */\n ps?: ViewStyle['paddingStart'];\n\n /**\n * Shorthand for the `paddingEnd` style property.\n */\n pe?: ViewStyle['paddingEnd'];\n\n /**\n * Shorthand for the `paddingHorizontal` style property.\n */\n ph?: ViewStyle['paddingHorizontal'];\n\n /**\n * Shorthand for the `paddingVertical` style property.\n */\n pv?: ViewStyle['paddingVertical'];\n\n /**\n * Shorthand for the `borderStyle` style property.\n */\n borderStyle?: ViewStyle['borderStyle'];\n\n /**\n * Shorthand for the `borderWidth` style property.\n */\n border?: ViewStyle['borderWidth'];\n\n /**\n * Shorthand for the `borderTopWidth` style property.\n */\n borderTop?: ViewStyle['borderTopWidth'];\n\n /**\n * Shorthand for the `borderRightWidth` style property.\n */\n borderRight?: ViewStyle['borderRightWidth'];\n\n /**\n * Shorthand for the `borderBottomWidth` style property.\n */\n borderBottom?: ViewStyle['borderBottomWidth'];\n\n /**\n * Shorthand for the `borderLeftWidth` style property.\n */\n borderLeft?: ViewStyle['borderLeftWidth'];\n\n /**\n * Shorthand for the `borderStartWidth` style property.\n */\n borderStart?: ViewStyle['borderStartWidth'];\n\n /**\n * Shorthand for the `borderEndWidth` style property.\n */\n borderEnd?: ViewStyle['borderEndWidth'];\n\n /**\n * Shorthand for the `borderColor` style property.\n */\n borderColor?: ViewStyle['borderColor'];\n\n /**\n * Shorthand for the `borderTopColor` style property.\n */\n borderTopColor?: ViewStyle['borderTopColor'];\n\n /**\n * Shorthand for the `borderRightColor` style property.\n */\n borderRightColor?: ViewStyle['borderRightColor'];\n\n /**\n * Shorthand for the `borderBottomColor` style property.\n */\n borderBottomColor?: ViewStyle['borderBottomColor'];\n\n /**\n * Shorthand for the `borderLeftColor` style property.\n */\n borderLeftColor?: ViewStyle['borderLeftColor'];\n\n /**\n * Shorthand for the `borderStartColor` style property.\n */\n borderStartColor?: ViewStyle['borderStartColor'];\n\n /**\n * Shorthand for the `borderEndColor` style property.\n */\n borderEndColor?: ViewStyle['borderEndColor'];\n\n /**\n * Shorthand for the `borderRadius` style property.\n */\n radius?: ViewStyle['borderRadius'];\n\n /**\n * Shorthand for the `borderTopLeftRadius` style property.\n */\n topLeftRadius?: ViewStyle['borderTopLeftRadius'];\n\n /**\n * Shorthand for the `borderTopRightRadius` style property.\n */\n topRightRadius?: ViewStyle['borderTopRightRadius'];\n\n /**\n * Shorthand for the `borderBottomLeftRadius` style property.\n */\n bottomLeftRadius?: ViewStyle['borderTopLeftRadius'];\n\n /**\n * Shorthand for the `borderBottomRightRadius` style property.\n */\n bottomRightRadius?: ViewStyle['borderBottomRightRadius'];\n\n /**\n * Shorthand for the `borderTopStartRadius` style property.\n */\n topStartRadius?: ViewStyle['borderTopStartRadius'];\n\n /**\n * Shorthand for the `borderTopEndRadius` style property.\n */\n topEndRadius?: ViewStyle['borderTopEndRadius'];\n\n /**\n * Shorthand for the `borderBottomStartRadius` style property.\n */\n bottomStartRadius?: ViewStyle['borderBottomStartRadius'];\n\n /**\n * Shorthand for the `borderBottomEndRadius` style property.\n */\n bottomEndRadius?: ViewStyle['borderBottomEndRadius'];\n\n /**\n * Shorthand for the `position` style property.\n */\n position?: ViewStyle['position'];\n\n /**\n * Shorthand for the `top` style property.\n */\n top?: ViewStyle['top'];\n\n /**\n * Shorthand for the `right` style property.\n */\n right?: ViewStyle['right'];\n\n /**\n * Shorthand for the `bottom` style property.\n */\n bottom?: ViewStyle['bottom'];\n\n /**\n * Shorthand for the `left` style property.\n */\n left?: ViewStyle['left'];\n\n /**\n * Shorthand for the `start` style property.\n */\n start?: ViewStyle['start'];\n\n /**\n * Shorthand for the `end` style property.\n */\n end?: ViewStyle['end'];\n\n /**\n * Shorthand for the `backgroundColor` style property.\n */\n bg?: ViewStyle['backgroundColor'];\n\n /**\n * Shorthand for the `opacity` style property.\n */\n opacity?: ViewStyle['opacity'];\n\n /**\n * Shorthand for the `zIndex` style property.\n */\n zIndex?: ViewStyle['zIndex'];\n\n /**\n * Shorthand for the `overflow` style property.\n */\n overflow?: ViewStyle['overflow'];\n}\n\nconst Box: React.FC = ({\n as,\n h,\n minH,\n maxH,\n w,\n minW,\n maxW,\n m,\n mt,\n mr,\n mb,\n ml,\n ms,\n me,\n mh,\n mv,\n p,\n pt,\n pr,\n pb,\n pl,\n ps,\n pe,\n ph,\n pv,\n borderStyle,\n border,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n borderStart,\n borderEnd,\n borderColor,\n borderTopColor,\n borderRightColor,\n borderBottomColor,\n borderLeftColor,\n borderStartColor,\n borderEndColor,\n radius,\n topLeftRadius,\n topRightRadius,\n bottomLeftRadius,\n bottomRightRadius,\n topStartRadius,\n topEndRadius,\n bottomStartRadius,\n bottomEndRadius,\n position,\n top,\n right,\n bottom,\n left,\n start,\n end,\n bg,\n opacity,\n zIndex,\n overflow,\n style,\n ...rest\n}) => {\n const spacingFunc = useSpacingFunc();\n\n const boxStyle = useMemo(() => {\n const styleObj: ViewStyle = {};\n\n styleObj.height = spacingFunc(h);\n styleObj.minHeight = spacingFunc(minH);\n styleObj.maxHeight = spacingFunc(maxH);\n styleObj.width = spacingFunc(w);\n styleObj.minWidth = spacingFunc(minW);\n styleObj.maxWidth = spacingFunc(maxW);\n styleObj.margin = spacingFunc(m);\n styleObj.marginTop = spacingFunc(mt);\n styleObj.marginRight = spacingFunc(mr);\n styleObj.marginBottom = spacingFunc(mb);\n styleObj.marginLeft = spacingFunc(ml);\n styleObj.marginStart = spacingFunc(ms);\n styleObj.marginEnd = spacingFunc(me);\n styleObj.marginHorizontal = spacingFunc(mh);\n styleObj.marginVertical = spacingFunc(mv);\n styleObj.padding = spacingFunc(p);\n styleObj.paddingTop = spacingFunc(pt);\n styleObj.paddingRight = spacingFunc(pr);\n styleObj.paddingBottom = spacingFunc(pb);\n styleObj.paddingLeft = spacingFunc(pl);\n styleObj.paddingStart = spacingFunc(ps);\n styleObj.paddingEnd = spacingFunc(pe);\n styleObj.paddingHorizontal = spacingFunc(ph);\n styleObj.paddingVertical = spacingFunc(pv);\n\n styleObj.borderStyle = borderStyle;\n styleObj.borderWidth = border;\n styleObj.borderTopWidth = borderTop;\n styleObj.borderRightWidth = borderRight;\n styleObj.borderBottomWidth = borderBottom;\n styleObj.borderLeftWidth = borderLeft;\n styleObj.borderStartWidth = borderStart;\n styleObj.borderEndWidth = borderEnd;\n styleObj.borderColor = borderColor;\n styleObj.borderTopColor = borderTopColor;\n styleObj.borderRightColor = borderRightColor;\n styleObj.borderBottomColor = borderBottomColor;\n styleObj.borderLeftColor = borderLeftColor;\n styleObj.borderStartColor = borderStartColor;\n styleObj.borderEndColor = borderEndColor;\n styleObj.borderRadius = radius;\n styleObj.borderTopLeftRadius = topLeftRadius;\n styleObj.borderTopRightRadius = topRightRadius;\n styleObj.borderBottomLeftRadius = bottomLeftRadius;\n styleObj.borderBottomRightRadius = bottomRightRadius;\n styleObj.borderTopStartRadius = topStartRadius;\n styleObj.borderTopEndRadius = topEndRadius;\n styleObj.borderBottomStartRadius = bottomStartRadius;\n styleObj.borderBottomEndRadius = bottomEndRadius;\n styleObj.position = position;\n styleObj.top = top;\n styleObj.right = right;\n styleObj.bottom = bottom;\n styleObj.left = left;\n styleObj.start = start;\n styleObj.end = end;\n styleObj.backgroundColor = bg;\n styleObj.opacity = opacity;\n styleObj.zIndex = zIndex;\n styleObj.overflow = overflow;\n\n return styleObj;\n }, [\n h,\n minH,\n maxH,\n w,\n minW,\n maxW,\n m,\n mt,\n mr,\n mb,\n ml,\n ms,\n me,\n mh,\n mv,\n p,\n pt,\n pr,\n pb,\n pl,\n ps,\n pe,\n ph,\n pv,\n borderStyle,\n border,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n borderStart,\n borderEnd,\n borderColor,\n borderTopColor,\n borderRightColor,\n borderBottomColor,\n borderLeftColor,\n borderStartColor,\n borderEndColor,\n radius,\n topLeftRadius,\n topRightRadius,\n bottomLeftRadius,\n bottomRightRadius,\n topStartRadius,\n topEndRadius,\n bottomStartRadius,\n bottomEndRadius,\n position,\n top,\n right,\n bottom,\n left,\n start,\n end,\n bg,\n opacity,\n zIndex,\n overflow,\n spacingFunc,\n ]);\n\n if (as) {\n return React.cloneElement(as, {\n style: [boxStyle, style, as.props.style],\n ...rest,\n });\n }\n\n return ;\n};\n\nexport default Box;\n\n// export interface FlexStyle {\n// backfaceVisibility?: \"visible\" | \"hidden\";\n// aspectRatio?: number;\n// display?: \"none\" | \"flex\";\n// elevation?: number;\n// direction?: \"inherit\" | \"ltr\" | \"rtl\";\n// }\n\n// color, space, size, borderWidth, borderRadius\n","import React from 'react';\nimport { StyleProp, View, ViewStyle } from 'react-native';\nimport chroma from 'chroma-js';\nimport { useTheme } from './base/ThemeContext';\n\nexport interface DividerProps {\n color?: string | undefined;\n\n inset?: number | undefined;\n\n leadingInset?: number | undefined;\n\n trailingInset?: number | undefined;\n\n style?: StyleProp | undefined;\n}\n\nconst Divider: React.FC = ({ color, inset, leadingInset, trailingInset, style }) => {\n const { palette } = useTheme();\n return (\n \n );\n};\n\nexport default Divider;\n","import React, { useMemo } from 'react';\nimport type { FlexStyle, ViewStyle } from 'react-native';\nimport type { BoxProps } from './Box';\nimport Box from './Box';\n\nexport interface FlexProps extends BoxProps {\n /**\n * Shorthand for the `flex` style property.\n * If `true` is passed, the `flex` style property will be set to `1`.\n */\n fill?: boolean | number;\n\n /**\n * Shorthand for `{ flexDirection: \"row\" }`.\n */\n inline?: boolean;\n\n /**\n * Shorthand for `{ justifyContent: \"center\", alignItems: \"center\" }`.\n */\n center?: boolean;\n\n /**\n * Shorthand for the `flexDirection` style property.\n */\n direction?: FlexStyle['flexDirection'];\n\n /**\n * Shorthand for the `justifyContent` style property.\n * If `center` prop is set to `true`, `justifyContent` will be forced to `center`.\n */\n justify?: 'start' | 'end' | 'center' | 'between' | 'around' | 'evenly';\n\n /**\n * Shorthand for the `alignItems` style property.\n * If `center` prop is set to `true`, `alignItems` will be forced to `center`.\n */\n items?: 'start' | 'end' | 'center' | 'stretch' | 'baseline';\n\n /**\n * Shorthand for the `alignSelf` style property.\n */\n self?: 'auto' | 'start' | 'end' | 'center' | 'stretch' | 'baseline';\n\n /**\n * Shorthand for the `alignContent` style property.\n */\n content?: 'start' | 'end' | 'center' | 'stretch' | 'between' | 'around';\n\n /**\n * Shorthand for the `flexWrap` style property.\n * If `true` is passed, the `flexWrap` style property will be set to `wrap`.\n */\n wrap?: boolean | FlexStyle['flexWrap'];\n\n /**\n * Shorthand for the `flexBasis` style property.\n */\n basis?: FlexStyle['flexBasis'];\n\n /**\n * Shorthand for the `flexGrow` style property.\n */\n grow?: FlexStyle['flexGrow'];\n\n /**\n * Shorthand for the `flexShrink` style property.\n */\n shrink?: FlexStyle['flexShrink'];\n}\n\nconst Flex: React.FC = ({\n fill,\n inline,\n center,\n direction,\n justify,\n items,\n self,\n content,\n wrap,\n basis,\n grow,\n shrink,\n style,\n ...rest\n}) => {\n const flex = useMemo(\n () => (typeof fill === 'boolean' ? (fill ? 1 : undefined) : fill),\n [fill]\n );\n\n const flexDirection = useMemo(\n () => (inline ? 'row' : direction),\n [inline, direction]\n );\n\n const justifyContent = useMemo(() => {\n if (center) return 'center';\n switch (justify) {\n case 'start':\n return 'flex-start';\n case 'end':\n return 'flex-end';\n case 'between':\n return 'space-between';\n case 'around':\n return 'space-around';\n case 'evenly':\n return 'space-evenly';\n default:\n return justify;\n }\n }, [center, justify]);\n\n const alignItems = useMemo(() => {\n if (center) return 'center';\n switch (items) {\n case 'start':\n return 'flex-start';\n case 'end':\n return 'flex-end';\n default:\n return items;\n }\n }, [center, items]);\n\n const alignSelf = useMemo(() => {\n switch (self) {\n case 'start':\n return 'flex-start';\n case 'end':\n return 'flex-end';\n default:\n return self;\n }\n }, [self]);\n\n const alignContent = useMemo(() => {\n switch (content) {\n case 'start':\n return 'flex-start';\n case 'end':\n return 'flex-end';\n case 'between':\n return 'space-between';\n case 'around':\n return 'space-around';\n default:\n return content;\n }\n }, [content]);\n\n const flexWrap = useMemo(\n () => (typeof wrap === 'boolean' ? (wrap ? 'wrap' : undefined) : wrap),\n [wrap]\n );\n\n const flexStyle = useMemo(\n (): ViewStyle => ({\n flex,\n flexDirection,\n justifyContent,\n alignItems,\n alignSelf,\n alignContent,\n flexWrap,\n flexBasis: basis,\n flexGrow: grow,\n flexShrink: shrink,\n }),\n [\n flex,\n flexDirection,\n justifyContent,\n alignItems,\n alignSelf,\n alignContent,\n flexWrap,\n basis,\n grow,\n shrink,\n ]\n );\n\n return ;\n};\n\nexport default Flex;\n\nexport const Spacer: React.FC = (props) => {\n return ;\n};\n","import React from 'react';\n\n/**\n * Gets only the valid children of a component,\n * and ignores any nullish or falsy child.\n *\n * @param children the children\n */\nexport function getValidChildren(children: React.ReactNode) {\n return React.Children.toArray(children).filter((child) =>\n React.isValidElement(child)\n ) as React.ReactElement[];\n}\n","import React, { useMemo } from 'react';\nimport type { ImageStyle, StyleProp, TextStyle, ViewStyle } from 'react-native';\nimport { getValidChildren } from './utilities';\n\ntype Style = StyleProp;\n\ntype ChildrenStyle = Style | ((index: number, length: number) => Style);\n\ntype ChildrenStyleProp = ChildrenStyle | Array;\n\nexport interface SelectorProps {\n /**\n * A style object to apply to each child.\n */\n childrenStyle?: ChildrenStyleProp;\n}\n\nconst Selector: React.FC = ({ childrenStyle, children }) => {\n const styles = useMemo(\n () =>\n Array.isArray(childrenStyle)\n ? childrenStyle.flat(Infinity)\n : [childrenStyle],\n [childrenStyle]\n );\n\n const validChildren = getValidChildren(children);\n\n return (\n <>\n {validChildren.map((child, index) =>\n React.cloneElement(child, {\n style: [\n child.props.style,\n styles.map((style) =>\n typeof style === 'function'\n ? style(index, validChildren.length)\n : style\n ),\n ],\n })\n )}\n \n );\n};\n\nexport default Selector;\n\nexport const select =\n (selector: (index: number, length: number) => boolean) =>\n (style: Style) =>\n (index: number, length: number) =>\n selector(index, length) ? style : null;\n\nexport const firstChild = select((index) => index === 0);\n\nexport const notFirstChild = select((index) => index !== 0);\n\nexport const lastChild = select((index, length) => index === length - 1);\n\nexport const notLastChild = select((index, length) => index !== length - 1);\n\nexport const even = select((index) => index % 2 === 0);\n\nexport const odd = select((index) => index % 2 !== 0);\n","import React, { useMemo } from 'react';\nimport { StyleProp, View, ViewStyle } from 'react-native';\nimport type { FlexProps } from './Flex';\nimport Flex from './Flex';\nimport type { SelectorProps } from './Selector';\nimport Selector, { notLastChild } from './Selector';\nimport Divider from './Divider';\nimport { useSpacing } from './SpacingFuncContext';\nimport { getValidChildren } from './utilities';\n\nexport interface StackProps extends FlexProps, SelectorProps {\n /**\n * The spacing between items in the stack.\n *\n * @default 0\n */\n spacing?: number;\n\n /**\n * If `true`, each stack item will show a divider.\n *\n * @default false\n */\n divider?: React.ReactElement;\n\n /**\n * A style object to apply to each divider.\n */\n dividerStyle?: StyleProp;\n\n /**\n * If `true`, the children will be wrapped in a `Box` and the `Box` will take the spacing properties.\n *\n * @default false\n */\n shouldWrapChildren?: boolean;\n}\n\nconst Stack: React.FC = ({\n spacing = 0,\n divider = false,\n dividerStyle,\n shouldWrapChildren = false,\n childrenStyle,\n children,\n ...rest\n}) => {\n const spacingValue = useSpacing(spacing);\n\n const direction = useMemo(() => {\n return rest.inline ? 'row' : rest.direction || 'column';\n }, [rest.inline, rest.direction]);\n\n const spacingStyle = useMemo(() => {\n switch (direction) {\n case 'column':\n return { marginBottom: spacingValue };\n case 'row':\n return { marginEnd: spacingValue };\n case 'column-reverse':\n return { marginTop: spacingValue };\n case 'row-reverse':\n return { marginStart: spacingValue };\n }\n }, [spacingValue, direction]);\n\n const shouldUseChildren = !shouldWrapChildren && !divider;\n\n const validChildren = getValidChildren(children);\n\n const clones = shouldUseChildren\n ? validChildren\n : validChildren.map((child, index) => {\n const key = typeof child.key !== 'undefined' ? child.key : index;\n const isLast = index + 1 === validChildren.length;\n const wrappedChild = {child};\n const _child = shouldWrapChildren ? wrappedChild : child;\n\n if (!divider) return _child;\n\n const dividerElement = React.isValidElement(divider) ? (\n divider\n ) : (\n \n );\n\n const clonedDivider = React.cloneElement(dividerElement, {\n key: `${key}-divider`,\n style: [dividerElement.props.style, dividerStyle],\n });\n\n const _divider = isLast ? null : clonedDivider;\n\n return [_child, _divider];\n });\n\n return (\n \n \n {clones}\n \n \n );\n};\n\nexport default Stack;\n\nconst StackItem: React.FC = (props) => ;\n\nexport interface HStackProps extends Omit {\n reverse?: boolean;\n}\n\nexport const HStack: React.FC = ({ reverse, ...rest }) => {\n return ;\n};\n\nexport interface VStackProps extends Omit {\n reverse?: boolean;\n}\n\nexport const VStack: React.FC = ({ reverse, ...rest }) => {\n return ;\n};\n","import React from 'react';\nimport { View } from 'react-native';\nimport type { FlexProps } from './Flex';\nimport Flex from './Flex';\nimport type { SelectorProps } from './Selector';\nimport Selector from './Selector';\nimport { useSpacing } from './SpacingFuncContext';\nimport { getValidChildren } from './utilities';\n\nexport interface WrapProps extends FlexProps, SelectorProps {\n /**\n * The space between each child (even if it wraps).\n *\n * @default 0\n */\n spacing?: number;\n\n /**\n * If `true`, the children will be wrapped in a `Box` and the `Box` will take the spacing properties.\n *\n * @default false\n */\n shouldWrapChildren?: boolean;\n}\n\nconst Wrap: React.FC = ({\n spacing = 0,\n shouldWrapChildren = false,\n childrenStyle,\n children,\n ...rest\n}) => {\n const spacingValue = useSpacing(spacing);\n\n const validChildren = getValidChildren(children);\n\n const clones = !shouldWrapChildren\n ? validChildren\n : validChildren.map((child, index) => {\n const key = typeof child.key !== 'undefined' ? child.key : index;\n return {child};\n });\n\n return (\n \n \n {clones}\n \n \n );\n};\n\nexport default Wrap;\n\nconst WrapItem: React.FC = (props) => ;\n","import { Platform } from 'react-native';\nimport type { Theme } from './ThemeContext';\n\nexport const defaultTheme: Theme = {\n colorScheme: 'light',\n elevations: {\n 0: Platform.select({\n android: {\n elevation: 0,\n },\n default: {\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 0,\n },\n shadowOpacity: 0,\n shadowRadius: 0,\n },\n web: {\n boxShadow: 'none',\n },\n }),\n 1: Platform.select({\n android: {\n elevation: 1,\n },\n default: {\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 1,\n },\n shadowOpacity: 0.18,\n shadowRadius: 1.0,\n },\n web: {\n boxShadow: '0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12)',\n },\n }),\n 2: Platform.select({\n android: {\n elevation: 2,\n },\n default: {\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 1,\n },\n shadowOpacity: 0.2,\n shadowRadius: 1.41,\n },\n web: {\n boxShadow: '0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12)',\n },\n }),\n 3: Platform.select({\n android: {\n elevation: 3,\n },\n default: {\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 1,\n },\n shadowOpacity: 0.22,\n shadowRadius: 2.22,\n },\n web: {\n boxShadow: '0px 3px 3px -2px rgba(0,0,0,0.2),0px 3px 4px 0px rgba(0,0,0,0.14),0px 1px 8px 0px rgba(0,0,0,0.12)',\n },\n }),\n 4: Platform.select({\n android: {\n elevation: 4,\n },\n default: {\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 2,\n },\n shadowOpacity: 0.23,\n shadowRadius: 2.62,\n },\n web: {\n boxShadow:\n '0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12)',\n },\n }),\n 5: Platform.select({\n android: {\n elevation: 5,\n },\n default: {\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 2,\n },\n shadowOpacity: 0.25,\n shadowRadius: 3.84,\n },\n web: {\n boxShadow:\n '0px 3px 5px -1px rgba(0,0,0,0.2),0px 5px 8px 0px rgba(0,0,0,0.14),0px 1px 14px 0px rgba(0,0,0,0.12)',\n },\n }),\n 6: Platform.select({\n android: {\n elevation: 6,\n },\n default: {\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 3,\n },\n shadowOpacity: 0.27,\n shadowRadius: 4.65,\n },\n web: {\n boxShadow:\n '0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12)',\n },\n }),\n 7: Platform.select({\n android: {\n elevation: 7,\n },\n default: {\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 3,\n },\n shadowOpacity: 0.29,\n shadowRadius: 4.65,\n },\n web: {\n boxShadow:\n '0px 4px 5px -2px rgba(0,0,0,0.2),0px 7px 10px 1px rgba(0,0,0,0.14),0px 2px 16px 1px rgba(0,0,0,0.12)',\n },\n }),\n 8: Platform.select({\n android: {\n elevation: 8,\n },\n default: {\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 4,\n },\n shadowOpacity: 0.3,\n shadowRadius: 4.65,\n },\n web: {\n boxShadow:\n '0px 5px 5px -3px rgba(0,0,0,0.2),0px 8px 10px 1px rgba(0,0,0,0.14),0px 3px 14px 2px rgba(0,0,0,0.12)',\n },\n }),\n 9: Platform.select({\n android: {\n elevation: 9,\n },\n default: {\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 4,\n },\n shadowOpacity: 0.32,\n shadowRadius: 5.46,\n },\n web: {\n boxShadow:\n '0px 5px 6px -3px rgba(0,0,0,0.2),0px 9px 12px 1px rgba(0,0,0,0.14),0px 3px 16px 2px rgba(0,0,0,0.12)',\n },\n }),\n 10: Platform.select({\n android: {\n elevation: 10,\n },\n default: {\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 5,\n },\n shadowOpacity: 0.34,\n shadowRadius: 6.27,\n },\n web: {\n boxShadow:\n '0px 6px 6px -3px rgba(0,0,0,0.2),0px 10px 14px 1px rgba(0,0,0,0.14),0px 4px 18px 3px rgba(0,0,0,0.12)',\n },\n }),\n 11: Platform.select({\n android: {\n elevation: 11,\n },\n default: {\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 5,\n },\n shadowOpacity: 0.36,\n shadowRadius: 6.68,\n },\n web: {\n boxShadow:\n '0px 6px 7px -4px rgba(0,0,0,0.2),0px 11px 15px 1px rgba(0,0,0,0.14),0px 4px 20px 3px rgba(0,0,0,0.12)',\n },\n }),\n 12: Platform.select({\n android: {\n elevation: 12,\n },\n default: {\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 6,\n },\n shadowOpacity: 0.37,\n shadowRadius: 7.49,\n },\n web: {\n boxShadow:\n '0px 7px 8px -4px rgba(0,0,0,0.2),0px 12px 17px 2px rgba(0,0,0,0.14),0px 5px 22px 4px rgba(0,0,0,0.12)',\n },\n }),\n 13: Platform.select({\n android: {\n elevation: 13,\n },\n default: {\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 6,\n },\n shadowOpacity: 0.39,\n shadowRadius: 8.3,\n },\n web: {\n boxShadow:\n '0px 7px 8px -4px rgba(0,0,0,0.2),0px 13px 19px 2px rgba(0,0,0,0.14),0px 5px 24px 4px rgba(0,0,0,0.12)',\n },\n }),\n 14: Platform.select({\n android: {\n elevation: 14,\n },\n default: {\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 7,\n },\n shadowOpacity: 0.41,\n shadowRadius: 9.11,\n },\n web: {\n boxShadow:\n '0px 7px 9px -4px rgba(0,0,0,0.2),0px 14px 21px 2px rgba(0,0,0,0.14),0px 5px 26px 4px rgba(0,0,0,0.12)',\n },\n }),\n 15: Platform.select({\n android: {\n elevation: 15,\n },\n default: {\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 7,\n },\n shadowOpacity: 0.43,\n shadowRadius: 9.51,\n },\n web: {\n boxShadow:\n '0px 8px 9px -5px rgba(0,0,0,0.2),0px 15px 22px 2px rgba(0,0,0,0.14),0px 6px 28px 5px rgba(0,0,0,0.12)',\n },\n }),\n 16: Platform.select({\n android: {\n elevation: 16,\n },\n default: {\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 8,\n },\n shadowOpacity: 0.44,\n shadowRadius: 10.32,\n },\n web: {\n boxShadow:\n '0px 8px 10px -5px rgba(0,0,0,0.2),0px 16px 24px 2px rgba(0,0,0,0.14),0px 6px 30px 5px rgba(0,0,0,0.12)',\n },\n }),\n 17: Platform.select({\n android: {\n elevation: 17,\n },\n default: {\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 8,\n },\n shadowOpacity: 0.46,\n shadowRadius: 11.14,\n },\n web: {\n boxShadow:\n '0px 8px 11px -5px rgba(0,0,0,0.2),0px 17px 26px 2px rgba(0,0,0,0.14),0px 6px 32px 5px rgba(0,0,0,0.12)',\n },\n }),\n 18: Platform.select({\n android: {\n elevation: 18,\n },\n default: {\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 9,\n },\n shadowOpacity: 0.48,\n shadowRadius: 11.95,\n },\n web: {\n boxShadow:\n '0px 9px 11px -5px rgba(0,0,0,0.2),0px 18px 28px 2px rgba(0,0,0,0.14),0px 7px 34px 6px rgba(0,0,0,0.12)',\n },\n }),\n 19: Platform.select({\n android: {\n elevation: 19,\n },\n default: {\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 9,\n },\n shadowOpacity: 0.5,\n shadowRadius: 12.35,\n },\n web: {\n boxShadow:\n '0px 9px 12px -6px rgba(0,0,0,0.2),0px 19px 29px 2px rgba(0,0,0,0.14),0px 7px 36px 6px rgba(0,0,0,0.12)',\n },\n }),\n 20: Platform.select({\n android: {\n elevation: 20,\n },\n default: {\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 10,\n },\n shadowOpacity: 0.51,\n shadowRadius: 13.16,\n },\n web: {\n boxShadow:\n '0px 10px 13px -6px rgba(0,0,0,0.2),0px 20px 31px 3px rgba(0,0,0,0.14),0px 8px 38px 7px rgba(0,0,0,0.12)',\n },\n }),\n 21: Platform.select({\n android: {\n elevation: 21,\n },\n default: {\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 10,\n },\n shadowOpacity: 0.53,\n shadowRadius: 13.97,\n },\n web: {\n boxShadow:\n '0px 10px 13px -6px rgba(0,0,0,0.2),0px 21px 33px 3px rgba(0,0,0,0.14),0px 8px 40px 7px rgba(0,0,0,0.12)',\n },\n }),\n 22: Platform.select({\n android: {\n elevation: 22,\n },\n default: {\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 11,\n },\n shadowOpacity: 0.55,\n shadowRadius: 14.78,\n },\n web: {\n boxShadow:\n '0px 10px 14px -6px rgba(0,0,0,0.2),0px 22px 35px 3px rgba(0,0,0,0.14),0px 8px 42px 7px rgba(0,0,0,0.12)',\n },\n }),\n 23: Platform.select({\n android: {\n elevation: 23,\n },\n default: {\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 11,\n },\n shadowOpacity: 0.57,\n shadowRadius: 15.19,\n },\n web: {\n boxShadow:\n '0px 11px 14px -7px rgba(0,0,0,0.2),0px 23px 36px 3px rgba(0,0,0,0.14),0px 9px 44px 8px rgba(0,0,0,0.12)',\n },\n }),\n 24: Platform.select({\n android: {\n elevation: 24,\n },\n default: {\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 12,\n },\n shadowOpacity: 0.58,\n shadowRadius: 16.0,\n },\n web: {\n boxShadow:\n '0px 11px 15px -7px rgba(0,0,0,0.2),0px 24px 38px 3px rgba(0,0,0,0.14),0px 9px 46px 8px rgba(0,0,0,0.12)',\n },\n }),\n },\n palette: {\n primary: { main: '#6200EE', on: '#FFFFFF' },\n secondary: { main: '#03DAC6', on: '#000000' },\n background: { main: '#FFFFFF', on: '#000000' },\n surface: { main: '#FFFFFF', on: '#000000' },\n error: { main: '#B00020', on: '#FFFFFF' },\n },\n shapes: {\n small: {\n borderTopStartRadius: 4,\n borderTopEndRadius: 4,\n borderBottomStartRadius: 4,\n borderBottomEndRadius: 4,\n },\n medium: {\n borderTopStartRadius: 4,\n borderTopEndRadius: 4,\n borderBottomStartRadius: 4,\n borderBottomEndRadius: 4,\n },\n large: {\n borderTopStartRadius: 0,\n borderTopEndRadius: 0,\n borderBottomStartRadius: 0,\n borderBottomEndRadius: 0,\n },\n },\n typography: {\n h1: {\n fontWeight: '300',\n fontSize: 96,\n letterSpacing: -1.5,\n },\n h2: {\n fontWeight: '300',\n fontSize: 60,\n letterSpacing: -0.5,\n },\n h3: {\n fontSize: 48,\n },\n h4: {\n fontSize: 34,\n letterSpacing: 0.25,\n },\n h5: {\n fontSize: 24,\n },\n h6: {\n fontWeight: '500',\n fontSize: 20,\n letterSpacing: 0.15,\n },\n subtitle1: {\n fontSize: 16,\n letterSpacing: 0.15,\n },\n subtitle2: {\n fontWeight: '500',\n fontSize: 14,\n letterSpacing: 0.1,\n },\n body1: {\n fontSize: 16,\n letterSpacing: 0.5,\n },\n body2: {\n fontSize: 14,\n letterSpacing: 0.25,\n },\n button: {\n fontWeight: '500',\n fontSize: 14,\n letterSpacing: 1.25,\n textTransform: 'uppercase',\n },\n caption: {\n fontSize: 12,\n letterSpacing: 0.4,\n },\n overline: {\n fontSize: 10,\n letterSpacing: 1.5,\n textTransform: 'uppercase',\n },\n },\n};\n\nexport const darkTheme: Theme = {\n ...defaultTheme,\n colorScheme: 'dark',\n palette: {\n primary: { main: '#BB86FC', on: '#000000' },\n secondary: { main: '#03DAC6', on: '#000000' },\n background: { main: '#121212', on: '#FFFFFF' },\n surface: { main: '#121212', on: '#FFFFFF' },\n error: { main: '#CF6679', on: '#000000' },\n },\n};\n","import React, { createContext, useContext, useMemo } from 'react';\nimport { ImageStyle, TextStyle, useColorScheme, ViewStyle } from 'react-native';\nimport { darkTheme, defaultTheme } from './defaultTheme';\n\nexport type ColorScheme = 'light' | 'dark';\n\nexport type Elevation =\n | 0\n | 1\n | 2\n | 3\n | 4\n | 5\n | 6\n | 7\n | 8\n | 9\n | 10\n | 11\n | 12\n | 13\n | 14\n | 15\n | 16\n | 17\n | 18\n | 19\n | 20\n | 21\n | 22\n | 23\n | 24;\n\nexport type Elevations = Record;\n\nexport type PaletteColorName = 'primary' | 'secondary' | 'background' | 'surface' | 'error' | string;\n\nexport type PaletteColor = { main: string; on: string };\n\nexport type Palette = Record;\n\nexport type ShapeCategory = 'small' | 'medium' | 'large';\n\nexport interface ShapeBorderRadius {\n borderTopStartRadius: number;\n borderTopEndRadius: number;\n borderBottomStartRadius: number;\n borderBottomEndRadius: number;\n}\n\nexport type Shapes = Record;\n\nexport type TypographyVariant =\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6'\n | 'subtitle1'\n | 'subtitle2'\n | 'body1'\n | 'body2'\n | 'button'\n | 'caption'\n | 'overline';\n\nexport type Typography = Record;\n\nexport interface Theme {\n colorScheme: ColorScheme;\n elevations: Elevations;\n palette: Palette;\n shapes: Shapes;\n typography: Typography;\n}\n\nexport interface ThemeProviderProps {\n theme?: Theme;\n}\n\nexport const ThemeContext = createContext(defaultTheme);\n\nexport const useTheme = () => useContext(ThemeContext);\n\nexport const ThemeProvider: React.FC = ({ theme, children }) => {\n const colorScheme = useColorScheme();\n\n const value = useMemo(\n () => (theme ? theme : colorScheme === 'dark' ? darkTheme : defaultTheme),\n [colorScheme, theme]\n );\n\n return {children};\n};\n","import { useMemo } from 'react';\nimport chroma from 'chroma-js';\nimport { PaletteColor, useTheme } from '../base/ThemeContext';\n\nexport type Color =\n | 'primary'\n | 'secondary'\n | 'background'\n | 'surface'\n | 'error'\n | 'on-primary'\n | 'on-secondary'\n | 'on-background'\n | 'on-surface'\n | 'on-error'\n | string;\n\nexport const usePaletteColor = (main: Color, on?: Color): PaletteColor => {\n const { palette } = useTheme();\n\n return useMemo(() => {\n let _main = main;\n if (palette[main]) _main = palette[main].main;\n else if (main.startsWith('on-') && palette[main.replace('on-', '')]) _main = palette[main.replace('on-', '')].on;\n\n let _on: string;\n if (on) {\n if (palette[on]) _on = palette[on].main;\n else if (on.startsWith('on-') && palette[on.replace('on-', '')]) _on = palette[on.replace('on-', '')].on;\n else _on = on;\n } else {\n _on = chroma.contrast(_main, 'white') > 4.5 ? '#FFFFFF' : '#000000';\n }\n\n return { main: _main, on: _on };\n }, [palette, main, on]);\n};\n","import React, { createContext, useContext } from 'react';\nimport { Color, usePaletteColor } from '../hooks/use-palette-color';\n\nexport type IconComponent = React.ComponentType;\n\nexport interface IconComponentProviderProps {\n IconComponent?: IconComponent | null;\n}\n\nexport const IconComponentContext = createContext(null);\n\nexport const useIconComponent = () => useContext(IconComponentContext);\n\nexport const IconComponentProvider: React.FC = ({ IconComponent, children }) => {\n return {children};\n};\n\nexport interface IconProps {\n name: string;\n\n size?: number;\n\n color?: Color;\n\n [key: string]: any;\n}\n\nexport const Icon: React.FC = ({ color = 'on-background', ...rest }) => {\n const IconComponent = useIconComponent();\n if (!IconComponent) {\n throw new Error('`IconComponent` is undefined. Seems like you forgot to wrap your component with `Provider`.');\n }\n const { main } = usePaletteColor(color);\n return ;\n};\n","import React, { createContext, Dispatch, SetStateAction, useContext, useEffect, useMemo, useState } from 'react';\nimport { StyleSheet, View } from 'react-native';\n\nexport const PortalContext = createContext<{\n portals: PortalProps[];\n setPortals: Dispatch>;\n} | null>(null);\n\nexport const usePortalContext = () => {\n const portal = useContext(PortalContext);\n if (!portal) {\n throw new Error('usePortalContext must be used within a PortalContext');\n }\n return portal;\n};\n\nexport const PortalProvider: React.FC = ({ children }) => {\n const [portals, setPortals] = useState([]);\n\n return {children};\n};\n\nexport const Outlet: React.FC = () => {\n const { portals } = usePortalContext();\n\n return (\n \n {portals.map(({ key, children }) => (\n \n {children}\n \n ))}\n \n );\n};\n\nexport interface PortalProps {\n key?: React.Key;\n\n children?: React.ReactNode;\n}\n\nexport const Portal: React.FC = ({ key, children }) => {\n const { setPortals } = usePortalContext();\n\n const _key = useMemo(() => key ?? `${Date.now() + Math.random()}`, [key]);\n\n useEffect(() => {\n setPortals((portals) => [...portals, { key: _key, children }]);\n\n return () => {\n setPortals((portals) => portals.filter((p) => p.key !== _key));\n };\n }, [_key, setPortals, children]);\n\n return null;\n};\n","import React, { createContext, useContext, useMemo } from 'react';\nimport { useWindowDimensions } from 'react-native';\n\nexport type WindowSizeClass = 'base' | 'sm' | 'md' | 'lg' | 'xl';\n\nexport type WindowSizes = Record;\n\nexport const defaultWindowSizes: WindowSizes = { base: 0, sm: 600, md: 905, lg: 1240, xl: 1440 };\n\nexport interface WindowSizeClassProviderProps {\n windowSizes?: WindowSizes;\n}\n\nexport const WindowSizeClassContext = createContext('base');\n\nexport const useWindowSizeClass = () => useContext(WindowSizeClassContext);\n\nexport const WindowSizeClassProvider: React.FC = ({\n windowSizes = defaultWindowSizes,\n children,\n}) => {\n const { width } = useWindowDimensions();\n\n const windowSizeClass: WindowSizeClass = useMemo(() => {\n if (width >= windowSizes.base && width < windowSizes.sm) return 'base';\n if (width >= windowSizes.sm && width < windowSizes.md) return 'sm';\n if (width >= windowSizes.md && width < windowSizes.lg) return 'md';\n if (width >= windowSizes.lg && width < windowSizes.xl) return 'lg';\n return 'xl';\n }, [width, windowSizes]);\n\n return {children};\n};\n","import React from 'react';\nimport { SpacingFuncProvider, SpacingFuncProviderProps } from 'react-native-flex-layout';\nimport { ThemeProvider, ThemeProviderProps } from './ThemeContext';\nimport { WindowSizeClassProvider, WindowSizeClassProviderProps } from './WindowSizeClassContext';\nimport { IconComponentProvider, IconComponentProviderProps } from './IconComponentContext';\nimport { Outlet, PortalProvider } from './PortalContext';\n\nexport type ProviderProps = ThemeProviderProps &\n WindowSizeClassProviderProps &\n SpacingFuncProviderProps &\n IconComponentProviderProps;\n\nexport const Provider: React.FC = ({ theme, windowSizes, spacingFunc, IconComponent, children }) => (\n \n \n \n \n \n {children}\n \n \n \n \n \n \n);\n","import { useEffect, useMemo } from 'react';\nimport { Animated, Platform, StyleProp, ViewStyle } from 'react-native';\nimport { Elevation, useTheme } from '../base/ThemeContext';\n\nconst inputRange = Array.from(Array(25).keys());\n\nexport const useAnimatedElevation = (elevation: Elevation): StyleProp => {\n const animated = useMemo(() => new Animated.Value(elevation), []);\n\n useEffect(() => {\n if (Platform.OS === 'web') return;\n Animated.timing(animated, {\n toValue: elevation,\n duration: 200,\n useNativeDriver: true,\n }).start();\n }, [elevation]);\n\n const { elevations } = useTheme();\n\n return useMemo(\n () => [\n Platform.select({\n android: { elevation: animated },\n default: {\n shadowColor: elevations[elevation].shadowColor,\n shadowOffset: {\n width: animated.interpolate({\n inputRange,\n outputRange: Object.values(elevations).map((e) => e.shadowOffset?.width ?? 0),\n }),\n height: animated.interpolate({\n inputRange,\n outputRange: Object.values(elevations).map((e) => e.shadowOffset?.height ?? 0),\n }),\n },\n shadowOpacity: animated.interpolate({\n inputRange,\n outputRange: Object.values(elevations).map((e) => e.shadowOpacity ?? 0),\n }),\n shadowRadius: animated.interpolate({\n inputRange,\n outputRange: Object.values(elevations).map((e) => e.shadowRadius ?? 0),\n }),\n },\n web: {\n boxShadow: (elevations[elevation] as any).boxShadow,\n transition:\n 'background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms',\n },\n }),\n Platform.select({\n default: {},\n web: {},\n }),\n ],\n [elevation, elevations]\n );\n};\n","import { useCallback, useState } from 'react';\n\ntype InitialState = boolean | (() => boolean);\n\n/**\n * React hook to manage boolean (on - off) states\n *\n * @param initialState the initial boolean state value\n */\nexport const useBoolean = (initialState: InitialState = false) => {\n const [value, setValue] = useState(initialState);\n\n const on = useCallback(() => {\n setValue(true);\n }, []);\n\n const off = useCallback(() => {\n setValue(false);\n }, []);\n\n const toggle = useCallback(() => {\n setValue((prev) => !prev);\n }, []);\n\n return [value, { on, off, toggle }] as const;\n};\n","import { useCallback } from 'react';\nimport { useWindowSizeClass, WindowSizeClass } from '../base/WindowSizeClassContext';\n\nexport type WindowSizeQuery = Partial> & { base: T };\n\nconst classes: WindowSizeClass[] = ['base', 'sm', 'md', 'lg', 'xl'];\n\nexport type WindowSize = (query: WindowSizeQuery) => T;\n\nexport const useWindowSize = (): WindowSize => {\n const windowSizeClass = useWindowSizeClass();\n\n return useCallback(\n (query) => {\n const keys = Object.keys(query) as WindowSizeClass[];\n\n let nearest = windowSizeClass;\n while (!keys.includes(nearest)) {\n nearest = classes[classes.indexOf(nearest) - 1];\n }\n return query[nearest]!;\n },\n [windowSizeClass]\n );\n};\n","import { useTheme } from '../base/ThemeContext';\nimport { useMemo } from 'react';\nimport chroma from 'chroma-js';\n\nexport const useSurfaceScale = () => {\n const { palette } = useTheme();\n\n return useMemo(() => chroma.scale([palette.surface.main, palette.surface.on]), [palette.surface]);\n};\n","import { useMemo } from 'react';\nimport chroma from 'chroma-js';\nimport { Elevation, useTheme } from '../base/ThemeContext';\nimport { useSurfaceScale } from './use-surface-scale';\n\nconst domain = [0, 1, 2, 3, 4, 6, 8, 12, 16, 24].map((n) => (n / 24) * 100);\n\nexport const useSurfaceColor = () => {\n const { colorScheme } = useTheme();\n const surfaceScale = useSurfaceScale();\n\n return useMemo(() => {\n if (colorScheme === 'light') return chroma.scale([surfaceScale(0)]);\n return chroma\n .scale([0, 0.05, 0.07, 0.08, 0.09, 0.11, 0.12, 0.14, 0.15, 0.1].map((c) => surfaceScale(c)))\n .domain(domain);\n }, [colorScheme, surfaceScale]);\n};\n\nexport const useSurfaceColorValue = (elevation: Elevation) => {\n const surfaceScale = useSurfaceColor();\n\n return useMemo(() => surfaceScale(elevation).hex(), [surfaceScale, elevation]);\n};\n","import { DependencyList, useMemo } from 'react';\nimport type { ImageStyle, TextStyle, ViewStyle } from 'react-native';\nimport type chroma from 'chroma-js';\nimport { SpacingFunc, useSpacingFunc } from 'react-native-flex-layout';\nimport { Theme, useTheme } from '../base/ThemeContext';\nimport { useWindowSizeClass, WindowSizeClass } from '../base/WindowSizeClassContext';\nimport { useWindowSize, WindowSize } from './use-window-size';\nimport { useSurfaceScale } from './use-surface-scale';\nimport { useSurfaceColor } from './use-surface-color';\n\ntype NamedStyles = { [P in keyof T]: ViewStyle | TextStyle | ImageStyle };\n\nexport const useStyles = >(\n factory: (\n utils: Theme & {\n surfaceScale: chroma.Scale;\n surfaceColor: chroma.Scale;\n windowSizeClass: WindowSizeClass;\n windowSize: WindowSize;\n spacing: SpacingFunc;\n }\n ) => T,\n deps?: DependencyList | undefined\n): T => {\n const theme = useTheme();\n const surfaceScale = useSurfaceScale();\n const surfaceColor = useSurfaceColor();\n const windowSizeClass = useWindowSizeClass();\n const windowSize = useWindowSize();\n const spacing = useSpacingFunc();\n\n return useMemo(\n () => factory({ ...theme, surfaceScale, surfaceColor, windowSizeClass, windowSize, spacing }),\n [factory, theme, surfaceScale, surfaceColor, windowSizeClass, windowSize, spacing, deps]\n );\n};\n","import { useMemo } from 'react';\nimport { useWindowSize, WindowSize } from './use-window-size';\n\nexport const useWindowSizeValue: WindowSize = (query) => {\n const windowSize = useWindowSize();\n\n return useMemo(() => windowSize(query), [windowSize, query]);\n};\n","import React from 'react';\nimport {\n ActivityIndicator as RNActivityIndicator,\n ActivityIndicatorProps as RNActivityIndicatorProps,\n} from 'react-native';\nimport { Color, usePaletteColor } from './hooks/use-palette-color';\n\nexport interface ActivityIndicatorProps extends Omit {\n /**\n * The color of the spinner.\n *\n * @default \"primary\"\n */\n color?: Color;\n}\n\nconst ActivityIndicator: React.FC = ({ color = 'primary', ...rest }) => {\n const { main } = usePaletteColor(color);\n return ;\n};\n\nexport default ActivityIndicator;\n","import React from 'react';\nimport { Animated, StyleProp, ViewProps, ViewStyle } from 'react-native';\nimport type { Elevation, ShapeCategory } from './base/ThemeContext';\nimport { useStyles } from './hooks/use-styles';\n\nexport interface SurfaceProps extends Omit {\n /**\n * The relative size of the surface.\n */\n category?: ShapeCategory;\n\n /**\n * The elevation of the surface.\n *\n * @default 0\n */\n elevation?: Elevation;\n\n style?: Animated.WithAnimatedValue>;\n}\n\nconst Surface: React.FC = ({ category, elevation = 0, style, ...rest }) => {\n const styles = useStyles(\n ({ elevations, shapes, surfaceColor }) => ({\n surface: {\n ...elevations[elevation],\n ...(category ? shapes[category] : {}),\n backgroundColor: surfaceColor(elevation).hex(),\n },\n }),\n [category, elevation]\n );\n\n return ;\n};\n\nexport default Surface;\n","import React from 'react';\nimport { Text as RNText, TextProps as RNTextProps } from 'react-native';\nimport { TypographyVariant, useTheme } from './base/ThemeContext';\nimport { Color, usePaletteColor } from './hooks/use-palette-color';\n\nexport interface TextProps extends RNTextProps {\n /**\n * The variant of the text.\n *\n * @default \"body1\"\n */\n variant?: TypographyVariant;\n\n /**\n * The color of the text.\n *\n * @default \"on-background\"\n */\n color?: Color;\n}\n\nconst Text: React.FC = ({ variant = 'body1', color = 'on-background', style, ...rest }) => {\n const { typography } = useTheme();\n const palette = usePaletteColor(color);\n\n return ;\n};\n\nexport default Text;\n","import React from 'react';\nimport { Platform, StyleProp, StyleSheet, TextStyle, View, ViewStyle } from 'react-native';\nimport Surface, { SurfaceProps } from './Surface';\nimport Text from './Text';\nimport { useSurfaceColorValue } from './hooks/use-surface-color';\nimport { Color, usePaletteColor } from './hooks/use-palette-color';\nimport { useTheme } from './base/ThemeContext';\n\nexport interface AppBarProps extends SurfaceProps {\n /**\n * Whether you want to place the AppBar at the top or the bottom of the screen.\n *\n * @default \"top\"\n */\n variant?: 'top' | 'bottom';\n\n /**\n * The primary text to display in the AppBar.\n */\n title?: string | React.ReactNode | ((props: { color: string }) => React.ReactNode | null) | null;\n\n /**\n * The secondary text to display in the AppBar.\n */\n subtitle?: string | React.ReactNode | ((props: { color: string }) => React.ReactNode | null) | null;\n\n /**\n * Whether the `title` and `subtitle` should be centered.\n *\n * @default false\n */\n centerTitle?: boolean;\n\n /**\n * The element displayed before the `title`.\n */\n leading?: React.ReactNode | ((props: { color: string; size: number }) => React.ReactNode | null) | null;\n\n /**\n * The element displayed after the `title`.\n */\n trailing?: React.ReactNode | ((props: { color: string; size: number }) => React.ReactNode | null) | null;\n\n /**\n * The fill color of the AppBar's background.\n *\n * @default \"primary\"\n */\n color?: Color;\n\n /**\n * The color of the AppBar's content (title, subtitle, icons, etc.).\n */\n tintColor?: Color;\n\n /**\n * Whether the AppBar's background is transparent.\n *\n * @default false\n */\n transparent?: boolean;\n\n /**\n * If `true`, the `color` prop will be applied in dark mode.\n *\n * @default false\n */\n enableColorOnDark?: boolean;\n\n /**\n * The style of the content container view.\n */\n contentContainerStyle?: StyleProp;\n\n /**\n * The style of the title and subtitle container view.\n */\n titleContentStyle?: StyleProp;\n\n /**\n * The style of the title text.\n */\n titleStyle?: StyleProp;\n\n /**\n * The style of the subtitle text.\n */\n subtitleStyle?: StyleProp;\n\n /**\n * The style of the leading element container view.\n */\n leadingContainerStyle?: StyleProp;\n\n /**\n * The style of the trailing element container view.\n */\n trailingContainerStyle?: StyleProp;\n}\n\nconst AppBar: React.FC = ({\n variant = 'top',\n title,\n subtitle,\n centerTitle = false,\n leading,\n trailing,\n color = 'primary',\n tintColor,\n transparent = false,\n enableColorOnDark = false,\n style,\n contentContainerStyle,\n titleContentStyle,\n titleStyle,\n subtitleStyle,\n leadingContainerStyle,\n trailingContainerStyle,\n children,\n ...props\n}) => {\n const theme = useTheme();\n\n const surfaceColor = useSurfaceColorValue(variant === 'top' ? 4 : 8);\n\n const palette = usePaletteColor(theme.colorScheme === 'dark' && !enableColorOnDark ? surfaceColor : color, tintColor);\n\n const titleElement =\n typeof title === 'string' ? (\n \n {title}\n \n ) : typeof title === 'function' ? (\n title({ color: palette.on })\n ) : (\n title\n );\n\n const subtitleElement =\n typeof subtitle === 'string' ? (\n \n {subtitle}\n \n ) : typeof subtitle === 'function' ? (\n subtitle({ color: palette.on })\n ) : (\n subtitle\n );\n\n const leadingElement = typeof leading === 'function' ? leading({ color: palette.on, size: 24 }) : leading;\n\n const trailingElement = typeof trailing === 'function' ? trailing({ color: palette.on, size: 24 }) : trailing;\n\n return (\n \n \n {leadingElement && {leadingElement}}\n \n {titleElement}\n {subtitleElement}\n \n {trailingElement && {trailingElement}}\n \n {children}\n \n );\n};\n\nconst styles = StyleSheet.create({\n contentContainer: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n height: Platform.select({ ios: 44, web: 64, default: 56 }),\n paddingHorizontal: 16,\n },\n leadingContainer: {\n marginStart: -12,\n marginEnd: 20,\n },\n trailingContainer: {\n marginStart: 20,\n marginEnd: -12,\n },\n titleContainer: {\n flex: 1,\n justifyContent: 'center',\n },\n centeredTitleContainer: {\n justifyContent: 'center',\n alignItems: 'center',\n },\n});\n\nexport default AppBar;\n","import React from 'react';\nimport {\n Image,\n ImageSourcePropType,\n ImageStyle,\n StyleProp,\n StyleSheet,\n TextStyle,\n View,\n ViewStyle,\n} from 'react-native';\nimport Text from './Text';\nimport { Color, usePaletteColor } from './hooks/use-palette-color';\nimport { useStyles } from './hooks/use-styles';\n\nexport interface AvatarProps {\n label?: string | React.ReactElement | ((props: { color: string }) => React.ReactElement | null) | null;\n\n image?: ImageSourcePropType | React.ReactElement | ((props: { size: number }) => React.ReactElement | null) | null;\n\n icon?: React.ReactElement | ((props: { color: string; size: number }) => React.ReactElement | null) | null;\n\n size?: number;\n\n color?: Color;\n\n tintColor?: Color;\n\n initials?: boolean;\n\n uppercase?: boolean;\n\n autoColor?: boolean;\n\n style?: StyleProp;\n\n contentContainerStyle?: StyleProp;\n\n imageContainerStyle?: StyleProp;\n\n labelStyle?: StyleProp;\n\n imageStyle?: StyleProp;\n}\n\nconst Avatar: React.FC = ({\n label,\n image,\n icon,\n size = 56,\n color = 'secondary',\n tintColor,\n initials = true,\n uppercase = true,\n autoColor = false,\n style,\n contentContainerStyle,\n imageContainerStyle,\n labelStyle,\n imageStyle,\n}) => {\n const palette = usePaletteColor(autoColor ? getColor(typeof label === 'string' ? label : '') : color, tintColor);\n\n const styles = useStyles(\n () => ({\n container: {\n width: size,\n height: size,\n backgroundColor: palette.main,\n borderRadius: size / 2,\n },\n contentContainer: {\n ...StyleSheet.absoluteFillObject,\n justifyContent: 'center',\n alignItems: 'center',\n },\n label: {\n fontSize: size / 2,\n color: palette.on,\n textTransform: uppercase ? 'uppercase' : 'none',\n },\n image: {\n width: size,\n height: size,\n borderRadius: size / 2,\n },\n }),\n [size, uppercase, palette]\n );\n\n const getLabel = () => {\n switch (typeof label) {\n case 'string':\n return (\n \n {initials ? getInitials(label) : label}\n \n );\n case 'function':\n return label({ color: palette.on });\n default:\n return label;\n }\n };\n\n const getImage = () => {\n if (!image || React.isValidElement(image)) return image;\n if (typeof image === 'function') return image({ size });\n return ;\n };\n\n const getIcon = () => {\n if (typeof icon === 'function') return icon({ color: palette.on, size: size / 2 });\n return icon;\n };\n\n return (\n \n {(label || icon) && (\n {label ? getLabel() : icon && getIcon()}\n )}\n {image && {getImage()}}\n \n );\n};\n\nfunction getColor(label: string) {\n let hash = 0;\n let i;\n for (i = 0; i < label.length; i += 1) {\n hash = label.charCodeAt(i) + ((hash << 5) - hash);\n }\n let color = '#';\n for (i = 0; i < 3; i += 1) {\n const value = (hash >> (i * 8)) & 0xff;\n color += `00${value.toString(16)}`.substr(-2);\n }\n return color;\n}\n\nfunction getInitials(label: string) {\n const namesArray = label.trim().split(' ');\n if (namesArray.length === 1) return `${namesArray[0].charAt(0)}`;\n else return `${namesArray[0].charAt(0)}${namesArray[namesArray.length - 1].charAt(0)}`;\n}\n\nexport default Avatar;\n","import React, { useEffect, useRef, useState } from 'react';\nimport { Animated, StyleProp, useWindowDimensions, View, ViewProps, ViewStyle } from 'react-native';\nimport Surface from './Surface';\nimport { useStyles } from './hooks/use-styles';\n\nexport interface BackdropProps {\n revealed?: boolean;\n\n header?: React.ReactElement | null;\n\n headerHeight?: number;\n\n backLayer?: React.ReactElement | null;\n\n backLayerHeight?: number;\n\n subheader?: React.ReactElement | null;\n\n subheaderHeight?: number;\n\n style?: StyleProp;\n\n headerContainerStyle?: StyleProp;\n\n backLayerContainerStyle?: StyleProp;\n\n frontLayerContainerStyle?: Animated.AnimatedProps['style'];\n\n subheaderContainerStyle?: StyleProp;\n}\n\nconst Backdrop: React.FC = ({\n revealed = false,\n header,\n headerHeight,\n backLayer,\n backLayerHeight,\n subheader,\n subheaderHeight,\n style,\n headerContainerStyle,\n backLayerContainerStyle,\n frontLayerContainerStyle,\n subheaderContainerStyle,\n children,\n}) => {\n const [currentHeaderHeight, setCurrentHeaderHeight] = useState(headerHeight ?? 0);\n const [currentBackLayerHeight, setCurrentBackLayerHeight] = useState(backLayerHeight ?? 0);\n const [currentSubheaderHeight, setCurrentSubheaderHeight] = useState(subheaderHeight ?? 0);\n\n const styles = useStyles(({ palette }) => ({\n container: {\n flex: 1,\n backgroundColor: palette.primary.main,\n overflow: 'hidden',\n },\n frontLayer: {\n position: 'absolute',\n start: 0,\n end: 0,\n bottom: 0,\n backgroundColor: palette.surface.main,\n borderTopStartRadius: 16,\n borderTopEndRadius: 16,\n borderBottomStartRadius: 0,\n borderBottomEndRadius: 0,\n elevation: 1,\n },\n }));\n\n const animated = useRef(new Animated.Value(revealed ? 1 : 0)).current;\n\n useEffect(() => {\n Animated.timing(animated, {\n toValue: revealed ? 1 : 0,\n duration: 300,\n useNativeDriver: true,\n }).start();\n }, [revealed]);\n\n const dimensions = useWindowDimensions();\n\n const translateY = animated.interpolate({\n inputRange: [0, 1],\n outputRange: [\n 0,\n dimensions.height < currentHeaderHeight + currentBackLayerHeight\n ? dimensions.height - currentHeaderHeight - currentSubheaderHeight\n : currentBackLayerHeight,\n ],\n });\n\n return (\n \n {\n if (!headerHeight) setCurrentHeaderHeight(e.nativeEvent.layout.height);\n }}\n >\n {header}\n \n\n {\n if (!backLayerHeight) setCurrentBackLayerHeight(e.nativeEvent.layout.height);\n }}\n >\n {backLayer}\n \n\n \n {subheader && (\n {\n if (!subheaderHeight) setCurrentSubheaderHeight(e.nativeEvent.layout.height);\n }}\n >\n {subheader}\n \n )}\n\n {children}\n \n \n );\n};\n\nexport default Backdrop;\n","import React from 'react';\nimport { StyleProp, View, ViewStyle } from 'react-native';\nimport Text from './Text';\nimport Divider from './Divider';\nimport { Color, usePaletteColor } from './hooks/use-palette-color';\nimport { useStyles } from './hooks/use-styles';\n\nexport interface BackdropSubheaderProps {\n title?: string | React.ReactElement;\n\n leading?: React.ReactElement | ((props: { color: string; size: number }) => React.ReactElement | null) | null;\n\n trailing?: React.ReactElement | ((props: { color: string; size: number }) => React.ReactElement | null) | null;\n\n divider?: boolean | React.ReactElement;\n\n color?: Color;\n\n style?: StyleProp;\n\n contentContainerStyle?: StyleProp;\n\n titleContainerStyle?: StyleProp;\n\n leadingContainerStyle?: StyleProp;\n\n trailingContainerStyle?: StyleProp;\n}\n\nconst BackdropSubheader: React.FC = ({\n title,\n leading,\n trailing,\n divider = true,\n color = 'on-surface',\n style,\n contentContainerStyle,\n titleContainerStyle,\n leadingContainerStyle,\n trailingContainerStyle,\n}) => {\n const palette = usePaletteColor(color);\n\n const styles = useStyles(() => ({\n container: {\n marginHorizontal: 16,\n },\n contentContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n paddingVertical: 12,\n },\n titleContainer: {\n flex: 1,\n },\n leadingContainer: {\n marginEnd: 16,\n },\n trailingContainer: {\n marginStart: 16,\n },\n }));\n\n return (\n \n \n {!!leading && (\n \n {typeof leading === 'function' ? leading({ color: palette.main, size: 24 }) : leading}\n \n )}\n \n {typeof title === 'string' ? (\n \n {title}\n \n ) : (\n title\n )}\n \n {!!trailing && (\n \n {typeof trailing === 'function' ? trailing({ color: palette.main, size: 24 }) : trailing}\n \n )}\n \n {typeof divider === 'boolean' ? divider && : divider}\n \n );\n};\n\nexport default BackdropSubheader;\n","import React, { useEffect, useMemo, useRef } from 'react';\nimport { Animated, StyleProp, TextStyle, ViewProps } from 'react-native';\nimport Text from './Text';\nimport { Color, usePaletteColor } from './hooks/use-palette-color';\nimport { useStyles } from './hooks/use-styles';\n\nexport interface BadgeProps {\n label?: number | string | React.ReactElement | ((props: { color: string }) => React.ReactElement | null) | null;\n\n showZero?: boolean;\n\n max?: number;\n\n visible?: boolean;\n\n color?: Color;\n\n tintColor?: Color;\n\n style?: Animated.AnimatedProps['style'];\n\n labelStyle?: StyleProp;\n}\n\nconst Badge: React.FC = ({\n label,\n showZero = false,\n max = 99,\n visible = true,\n color = 'secondary',\n tintColor,\n style,\n labelStyle,\n children,\n}) => {\n const palette = usePaletteColor(color, tintColor);\n\n const styles = useStyles(\n () => ({\n container: {\n minWidth: 20,\n height: 20,\n justifyContent: 'center',\n alignItems: 'center',\n paddingHorizontal: 6,\n backgroundColor: palette.main,\n borderRadius: 10,\n },\n }),\n [palette]\n );\n\n const isVisible = useMemo(() => (label === 0 ? visible && showZero : visible), [label, showZero, visible]);\n\n const animated = useRef(new Animated.Value(isVisible ? 1 : 0)).current;\n\n useEffect(() => {\n Animated.timing(animated, {\n toValue: isVisible ? 1 : 0,\n duration: 200,\n useNativeDriver: true,\n }).start();\n }, [isVisible]);\n\n const getLabel = () => {\n switch (typeof label) {\n case 'number':\n case 'string':\n return (\n \n {typeof label === 'number' && label > max ? `${max}+` : label}\n \n );\n case 'function':\n return label({ color: palette.on });\n default:\n return label;\n }\n };\n\n return (\n \n {getLabel()}\n {children}\n \n );\n};\n\nexport default Badge;\n","import React from 'react';\nimport { StyleProp, TextStyle, View, ViewStyle } from 'react-native';\nimport Text from './Text';\nimport Divider from './Divider';\nimport { useStyles } from './hooks/use-styles';\n\nexport interface BannerProps {\n text: string | React.ReactElement | null;\n\n illustration?: React.ReactElement | ((props: { size: number }) => React.ReactElement | null) | null;\n\n buttons: React.ReactElement | React.ReactElement[] | null;\n\n style?: StyleProp;\n\n contentContainerStyle?: StyleProp;\n\n illustrationContainerStyle?: StyleProp;\n\n textContainerStyle?: StyleProp;\n\n textStyle?: StyleProp;\n\n actionsContainerStyle?: StyleProp;\n}\n\nconst Banner: React.FC = ({\n text,\n illustration,\n buttons,\n style,\n contentContainerStyle,\n illustrationContainerStyle,\n textContainerStyle,\n textStyle,\n actionsContainerStyle,\n}) => {\n const styles = useStyles(\n ({ palette }) => ({\n container: {\n backgroundColor: palette.surface.main,\n },\n contentContainer: {\n flexDirection: 'row',\n marginTop: 24,\n marginBottom: 4,\n marginHorizontal: 16,\n },\n illustrationContainer: {\n marginEnd: 16,\n },\n textContainer: {\n flex: 1,\n },\n text: {\n color: palette.surface.on,\n },\n actionsContainer: {\n flexDirection: 'row',\n justifyContent: 'flex-end',\n alignItems: 'center',\n margin: 8,\n },\n }),\n []\n );\n\n return (\n \n \n {illustration && (\n \n {typeof illustration === 'function' ? illustration({ size: 40 }) : illustration}\n \n )}\n \n {typeof text === 'string' ? (\n \n {text}\n \n ) : (\n text\n )}\n \n \n \n {Array.isArray(buttons)\n ? buttons.map((button, index) => (\n \n {button}\n {index !== buttons.length - 1 && }\n \n ))\n : buttons}\n \n \n \n );\n};\n\nexport default Banner;\n","import React, { useCallback, useState } from 'react';\nimport {\n Animated,\n Easing,\n GestureResponderEvent,\n LayoutChangeEvent,\n NativeSyntheticEvent,\n Platform,\n Pressable as RNPressable,\n PressableProps as RNPressableProps,\n StyleSheet,\n TargetedEvent,\n View,\n} from 'react-native';\nimport chroma from 'chroma-js';\nimport { Color, usePaletteColor } from './hooks/use-palette-color';\n\nexport interface PressableProps extends RNPressableProps {\n pressEffect?: 'none' | 'highlight' | 'ripple' | 'android-ripple';\n\n pressEffectColor?: Color;\n\n onMouseEnter?: (event: NativeSyntheticEvent) => void;\n\n onMouseLeave?: (event: NativeSyntheticEvent) => void;\n\n style?: any;\n}\n\nconst Pressable: React.FC = ({\n pressEffect = Platform.select({ android: 'android-ripple', web: 'ripple', default: 'highlight' }),\n pressEffectColor = 'on-background',\n onLayout,\n onPressIn,\n onPressOut,\n onFocus,\n onBlur,\n android_ripple,\n onMouseEnter,\n onMouseLeave,\n children,\n ...rest\n}) => {\n const { main: color } = usePaletteColor(pressEffectColor);\n\n const [size, setSize] = useState({ width: 0, height: 0 });\n\n const [ripples, setRipples] = useState<{ key: string; style: any }[]>([]);\n\n const handleLayout = useCallback(\n (event: LayoutChangeEvent) => {\n const { width, height } = event.nativeEvent.layout;\n setSize({ width, height });\n onLayout?.(event);\n },\n [onLayout]\n );\n\n const [pressed, setPressed] = useState(false);\n\n const handlePressIn = useCallback(\n (event: GestureResponderEvent) => {\n setPressed(true);\n onPressIn?.(event);\n\n if (pressEffect === 'ripple') {\n const { locationX, locationY } = event.nativeEvent;\n\n const x = (locationX ?? size.width / 2) - 0.5;\n const y = (locationY ?? size.height / 2) - 0.5;\n\n const scale = new Animated.Value(0);\n const opacity = new Animated.Value(1);\n\n const ripple = {\n key: `${Date.now() + Math.random()}`,\n style: { start: x, top: y, transform: [{ scale }], opacity },\n };\n\n setRipples((prevState) => [...prevState, ripple]);\n\n Animated.timing(scale, {\n toValue: Math.max(\n size.width * 1.25 + Math.abs(size.width / 2 - x) * 2,\n size.height * 1.25 + Math.abs(size.height / 2 - y) * 2\n ),\n easing: Easing.out(Easing.ease),\n duration: 400,\n useNativeDriver: false,\n }).start();\n }\n },\n [onPressIn, pressEffect, size]\n );\n\n const handlePressOut = useCallback(\n (event: GestureResponderEvent) => {\n setPressed(false);\n onPressOut?.(event);\n\n if (pressEffect === 'ripple') {\n Animated.timing(ripples[ripples.length - 1].style.opacity, {\n toValue: 0,\n easing: Easing.out(Easing.ease),\n duration: 400,\n useNativeDriver: false,\n }).start(() => {\n setRipples((prevState) => prevState.slice(1));\n });\n }\n },\n [pressEffect, ripples, onPressOut]\n );\n\n const [focused, setFocused] = useState(false);\n\n const handleFocus = useCallback(\n (event: NativeSyntheticEvent) => {\n setFocused(true);\n onFocus?.(event);\n },\n [onFocus]\n );\n\n const handleBlur = useCallback(\n (event: NativeSyntheticEvent) => {\n setFocused(false);\n onBlur?.(event);\n },\n [onBlur]\n );\n\n const [hovered, setHovered] = useState(false);\n\n const handleMouseEnter = useCallback(\n (event: NativeSyntheticEvent) => {\n setHovered(true);\n onMouseEnter?.(event);\n },\n [onMouseEnter]\n );\n\n const handleMouseLeave = useCallback(\n (event: NativeSyntheticEvent) => {\n setHovered(false);\n onMouseLeave?.(event);\n },\n [onMouseLeave]\n );\n\n return (\n \n \n\n {focused && !rest.disabled && (\n \n )}\n\n {pressEffect === 'highlight' && pressed && (\n \n )}\n\n {pressEffect === 'ripple' && ripples.length !== 0 && (\n \n {ripples.map((ripple) => (\n \n ))}\n \n )}\n\n {children}\n \n );\n};\n\nconst styles = StyleSheet.create({\n effectContainer: {\n overflow: 'hidden',\n },\n ripple: {\n position: 'absolute',\n width: 1,\n height: 1,\n borderRadius: 0.5,\n },\n});\n\nexport default Pressable;\n","import React, { useCallback, useMemo, useState } from 'react';\nimport {\n GestureResponderEvent,\n NativeSyntheticEvent,\n StyleProp,\n StyleSheet,\n TargetedEvent,\n TextStyle,\n View,\n ViewStyle,\n} from 'react-native';\nimport Surface, { SurfaceProps } from './Surface';\nimport Text from './Text';\nimport ActivityIndicator from './ActivityIndicator';\nimport Pressable, { PressableProps } from './Pressable';\nimport { Color, usePaletteColor } from './hooks/use-palette-color';\nimport { useSurfaceScale } from './hooks/use-surface-scale';\nimport { useStyles } from './hooks/use-styles';\nimport { useAnimatedElevation } from './hooks/use-animated-elevation';\n\nexport interface ButtonProps extends Omit, Omit {\n /**\n * The text content of the button.\n */\n title: string | React.ReactNode | ((props: { color: string }) => React.ReactNode | null) | null;\n\n /**\n * The element placed before the `title`.\n */\n leading?: React.ReactNode | ((props: { color: string; size: number }) => React.ReactNode | null) | null;\n\n /**\n * The element placed after the `title`.\n */\n trailing?: React.ReactNode | ((props: { color: string; size: number }) => React.ReactNode | null) | null;\n\n /**\n * The style of the button.\n * - `text`: Text buttons are typically used for less important actions (low emphasis).\n * - `outlined`: Outlined buttons are used for more emphasis than text buttons due to the stroke (medium emphasis).\n * - `contained`: Contained buttons have more emphasis, as they use a color fill and shadow (high emphasis).\n *\n * @default \"contained\"\n */\n variant?: 'text' | 'outlined' | 'contained';\n\n /**\n * The main color of the button.\n * for `contained` buttons, this is the background color.\n * for `outlined` and `text` buttons, this is the color of the content (text, icons, etc.).\n *\n * @default \"primary\"\n */\n color?: Color;\n\n /**\n * The color of the `contained` buttons content (text, icons, etc.). No effect on `outlined` and `text` buttons.\n */\n tintColor?: Color;\n\n /**\n * Smaller horizontal padding, useful for `text` buttons in a row.\n *\n * @default false\n */\n compact?: boolean;\n\n /**\n * If `true`, no shadow is used. No effect on `outlined` and `text` buttons.\n *\n * @default false\n */\n disableElevation?: boolean;\n\n /**\n * If `false`, the button title is not rendered in upper case. No effect if you pass a React.Node as the `title` prop.\n *\n * @default true\n */\n uppercase?: boolean;\n\n /**\n * Whether to show a loading indicator.\n *\n * @default false\n */\n loading?: boolean;\n\n /**\n * The place where the loading indicator should appear.\n * - `leading`: The indicator will replace the `leading` element.\n * - `trailing`: The indicator will replace the `trailing` element.\n * - `overlay`: The indicator will be added as an overlay over the button.\n *\n * @default \"leading\"\n */\n loadingIndicatorPosition?: 'leading' | 'trailing' | 'overlay';\n\n /**\n * A React.Node to replace the default loading indicator. Also, you can pass a string to show a text (e.g. \"Loading...\").\n */\n loadingIndicator?: string | React.ReactNode | ((props: { color: string }) => React.ReactNode | null) | null;\n\n /**\n * The style of the button's pressable component container.\n */\n pressableContainerStyle?: StyleProp;\n\n /**\n * The style of the button's container.\n */\n contentContainerStyle?: PressableProps['style'];\n\n /**\n * The style of the button's text. No effect if you pass a React.Node as the `title` prop.\n */\n titleStyle?: StyleProp;\n\n /**\n * The style of the button's leading element container.\n */\n leadingContainerStyle?: StyleProp;\n\n /**\n * The style of the button's trailing element container.\n */\n trailingContainerStyle?: StyleProp;\n\n /**\n * The style of the button's loading indicator overlay view. No effect if `loadingIndicatorPosition` is not `overlay`.\n */\n loadingOverlayContainerStyle?: StyleProp;\n}\n\nconst Button: React.FC = ({\n title,\n leading,\n trailing,\n variant = 'contained',\n color = 'primary',\n tintColor,\n compact = false,\n disableElevation = false,\n uppercase = true,\n loading = false,\n loadingIndicatorPosition = 'leading',\n loadingIndicator,\n\n style,\n pressableContainerStyle,\n contentContainerStyle,\n titleStyle,\n leadingContainerStyle,\n trailingContainerStyle,\n loadingOverlayContainerStyle,\n\n pressEffect,\n pressEffectColor,\n onPress,\n onPressIn,\n onPressOut,\n onLongPress,\n onBlur,\n onFocus,\n onMouseEnter,\n onMouseLeave,\n delayLongPress,\n disabled,\n hitSlop,\n pressRetentionOffset,\n android_disableSound,\n android_ripple,\n testOnly_pressed,\n\n ...rest\n}) => {\n const surfaceScale = useSurfaceScale();\n\n const p = usePaletteColor(\n disabled ? surfaceScale(0.12).hex() : color,\n disabled ? surfaceScale(0.35).hex() : tintColor\n );\n\n const contentColor = useMemo(\n () => (variant === 'contained' ? p.on : disabled ? p.on : p.main),\n [variant, p, disabled]\n );\n\n const hasLeading = useMemo(\n () => !!leading || (loading && loadingIndicatorPosition === 'leading'),\n [leading, loading, loadingIndicatorPosition]\n );\n\n const hasTrailing = useMemo(\n () => !!trailing || (loading && loadingIndicatorPosition === 'trailing'),\n [trailing, loading, loadingIndicatorPosition]\n );\n\n const styles = useStyles(\n ({ shapes }) => ({\n container: {\n backgroundColor: variant === 'contained' ? p.main : 'transparent',\n },\n outline: {\n ...shapes.small,\n borderWidth: 1,\n borderColor: surfaceScale(0.12).hex(),\n },\n pressableContainer: {\n ...shapes.small,\n overflow: 'hidden',\n },\n pressable: {\n minWidth: 64,\n height: 36,\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n paddingStart: hasLeading ? (compact ? 6 : 12) : compact ? 8 : 16,\n paddingEnd: hasTrailing ? (compact ? 6 : 12) : compact ? 8 : 16,\n },\n titleStyle: {\n textTransform: uppercase ? 'uppercase' : 'none',\n opacity: loading && loadingIndicatorPosition === 'overlay' ? 0 : 1,\n },\n leadingContainer: {\n marginEnd: compact ? 6 : 8,\n opacity: loading && loadingIndicatorPosition === 'overlay' ? 0 : 1,\n },\n trailingContainer: {\n marginStart: compact ? 6 : 8,\n opacity: loading && loadingIndicatorPosition === 'overlay' ? 0 : 1,\n },\n loadingOverlayContainer: {\n ...StyleSheet.absoluteFillObject,\n justifyContent: 'center',\n alignItems: 'center',\n },\n }),\n [variant, uppercase, compact, loading, loadingIndicatorPosition, p, hasLeading, hasTrailing, surfaceScale]\n );\n\n const getTitle = () => {\n switch (typeof title) {\n case 'string':\n return (\n \n {title}\n \n );\n case 'function':\n return title({ color: contentColor });\n default:\n return title;\n }\n };\n\n const getLoadingIndicator = () => {\n if (!loadingIndicator) return ;\n switch (typeof loadingIndicator) {\n case 'string':\n return (\n \n {loadingIndicator}\n \n );\n case 'function':\n return loadingIndicator({ color: contentColor });\n default:\n return loadingIndicator;\n }\n };\n\n const getLeading = () => {\n if (loading && loadingIndicatorPosition === 'leading') return getLoadingIndicator();\n return typeof leading === 'function' ? leading({ color: contentColor, size: 18 }) : leading;\n };\n\n const getTrailing = () => {\n if (loading && loadingIndicatorPosition === 'trailing') return getLoadingIndicator();\n return typeof trailing === 'function' ? trailing({ color: contentColor, size: 18 }) : trailing;\n };\n\n const [hovered, setHovered] = useState(false);\n\n const handleMouseEnter = useCallback(\n (event: NativeSyntheticEvent) => {\n onMouseEnter?.(event);\n setHovered(true);\n },\n [onMouseEnter]\n );\n\n const handleMouseLeave = useCallback(\n (event: NativeSyntheticEvent) => {\n onMouseLeave?.(event);\n setHovered(false);\n },\n [onMouseLeave]\n );\n\n const [pressed, setPressed] = useState(false);\n\n const handlePressIn = useCallback(\n (event: GestureResponderEvent) => {\n onPressIn?.(event);\n setPressed(true);\n },\n [onPressIn]\n );\n\n const handlePressOut = useCallback(\n (event: GestureResponderEvent) => {\n onPressOut?.(event);\n setPressed(false);\n },\n [onPressOut]\n );\n\n const animatedElevation = useAnimatedElevation(\n variant === 'contained' && !disableElevation && !disabled ? (pressed ? 8 : hovered ? 4 : 2) : 0\n );\n\n return (\n \n \n \n {hasLeading && {getLeading()}}\n {getTitle()}\n {hasTrailing && {getTrailing()}}\n\n {loading && loadingIndicatorPosition === 'overlay' && (\n {getLoadingIndicator()}\n )}\n \n \n {variant === 'outlined' && }\n \n );\n};\n\nexport default Button;\n","import React, { useMemo } from 'react';\nimport { StyleProp, StyleSheet, TextStyle, View, ViewProps, ViewStyle } from 'react-native';\nimport chroma from 'chroma-js';\nimport Pressable, { PressableProps } from './Pressable';\nimport Text from './Text';\nimport { Color, usePaletteColor } from './hooks/use-palette-color';\nimport { useTheme } from './base/ThemeContext';\n\nexport interface ChipProps extends Omit, Omit {\n /**\n * The text to display in the chip.\n */\n label: string | React.ReactNode | ((props: { color: string }) => React.ReactNode | null) | null;\n\n /**\n * The element placed before the `label`.\n */\n leading?: React.ReactNode | ((props: { color: string; size: number }) => React.ReactNode | null) | null;\n\n /**\n * The element placed after the `label`.\n */\n trailing?: React.ReactNode | ((props: { color: string; size: number }) => React.ReactNode | null) | null;\n\n /**\n * The variant of the chip.\n * - `filled`: A filled chip.\n * - `outlined`: A solid background with a border.\n *\n * @default \"filled\"\n */\n variant?: 'filled' | 'outlined';\n\n /**\n * The color of the chip.\n */\n color?: Color;\n\n /**\n * The style of the chip's container.\n */\n contentContainerStyle?: PressableProps['style'];\n\n /**\n * The style of the chip's label.\n */\n labelStyle?: StyleProp;\n\n /**\n * The style of the chip's leading element.\n */\n leadingContainerStyle?: StyleProp;\n\n /**\n * The style of the chip's trailing element.\n */\n trailingContainerStyle?: StyleProp;\n}\n\nconst Chip: React.FC = ({\n label,\n leading,\n trailing,\n variant = 'filled',\n color = 'on-surface',\n style,\n contentContainerStyle,\n labelStyle,\n leadingContainerStyle,\n trailingContainerStyle,\n children,\n\n pressEffect,\n pressEffectColor,\n onPress,\n onPressIn,\n onPressOut,\n onLongPress,\n onBlur,\n onFocus,\n onMouseEnter,\n onMouseLeave,\n delayLongPress,\n disabled,\n hitSlop,\n pressRetentionOffset,\n android_disableSound,\n android_ripple,\n testOnly_pressed,\n ...rest\n}) => {\n const theme = useTheme();\n\n const palette = usePaletteColor(color, theme.palette.surface.main);\n\n const scale = useMemo(() => chroma.scale([palette.on, palette.main]), [palette]);\n\n const labelElement =\n typeof label === 'string' ? (\n \n {label}\n \n ) : typeof label === 'function' ? (\n label({ color: scale(0.87).hex() })\n ) : (\n label\n );\n\n const leadingElement = typeof leading === 'function' ? leading({ color: scale(0.66).hex(), size: 24 }) : leading;\n\n const trailingElement = typeof trailing === 'function' ? trailing({ color: scale(0.66).hex(), size: 18 }) : trailing;\n\n return (\n \n \n {leadingElement && {leadingElement}}\n {labelElement}\n {children}\n {trailingElement && {trailingElement}}\n\n {variant === 'outlined' && (\n \n )}\n \n \n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n borderRadius: 16,\n overflow: 'hidden',\n },\n contentContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n paddingHorizontal: 12,\n height: 32,\n },\n leadingContainer: {\n marginStart: -8,\n marginEnd: 8,\n },\n trailingContainer: {\n marginStart: 8,\n marginEnd: -4,\n },\n outline: {\n borderWidth: 1,\n borderRadius: 16,\n },\n});\n\nexport default Chip;\n","import React, { useEffect, useMemo, useState } from 'react';\nimport { Animated, Easing, Platform, StyleSheet, TouchableWithoutFeedback } from 'react-native';\nimport { Portal } from './base/PortalContext';\nimport Surface from './Surface';\n\nexport interface DialogProps {\n visible?: boolean;\n\n onDismiss?: () => void;\n}\n\nconst Dialog: React.FC = ({ visible = false, onDismiss, children }) => {\n const [portalVisible, setPortalVisible] = useState(visible);\n\n const animatedValue = useMemo(() => new Animated.Value(visible ? 1 : 0), []);\n\n useEffect(() => {\n if (visible) setPortalVisible(true);\n\n Animated.timing(animatedValue, {\n toValue: visible ? 1 : 0,\n duration: 225,\n easing: Easing.out(Easing.cubic),\n useNativeDriver: Platform.OS !== 'android',\n }).start(() => {\n if (!visible) setPortalVisible(false);\n });\n }, [visible]);\n\n if (!portalVisible) return null;\n\n return (\n \n \n \n \n \n \n {children}\n \n \n \n );\n};\n\nconst styles = StyleSheet.create({\n backdrop: {\n backgroundColor: 'rgba(0,0,0,.5)',\n },\n container: {\n justifyContent: 'center',\n alignItems: 'center',\n },\n surface: {\n width: 280,\n marginHorizontal: 40,\n },\n});\n\nexport default Dialog;\n","import React from 'react';\nimport { StyleSheet } from 'react-native';\nimport { HStack } from 'react-native-flex-layout';\n\nexport interface DialogActionsProps {}\n\nconst DialogActions: React.FC = ({ children }) => {\n return (\n \n {children}\n \n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n margin: 8,\n },\n});\n\nexport default DialogActions;\n","import React, { useMemo } from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport chroma from 'chroma-js';\nimport { useSurfaceColorValue } from './hooks/use-surface-color';\nimport { useTheme } from './base/ThemeContext';\n\nexport interface DialogContentProps {}\n\nconst DialogContent: React.FC = ({ children }) => {\n const theme = useTheme();\n\n const backgroundColor = useSurfaceColorValue(24);\n\n const scale = useMemo(\n () => chroma.scale([backgroundColor, theme.palette.surface.on]),\n [backgroundColor, theme.palette.surface.on]\n );\n\n return {children};\n};\n\nconst styles = StyleSheet.create({\n container: {\n paddingHorizontal: 24,\n paddingBottom: 20,\n // borderTopWidth: 1,\n // borderBottomWidth: 1,\n },\n});\n\nexport default DialogContent;\n","import React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport Text from './Text';\nimport { useTheme } from './base/ThemeContext';\n\nexport interface DialogHeaderProps {\n title: string | React.ReactNode | ((props: { color: string }) => React.ReactNode | null) | null;\n}\n\nconst DialogHeader: React.FC = ({ title }) => {\n const theme = useTheme();\n\n const titleElement =\n typeof title === 'string' ? (\n \n {title}\n \n ) : typeof title === 'function' ? (\n title({ color: theme.palette.surface.on })\n ) : (\n title\n );\n\n return {titleElement};\n};\n\nconst styles = StyleSheet.create({\n container: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n height: 64,\n paddingHorizontal: 24,\n },\n});\n\nexport default DialogHeader;\n","import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { Animated, GestureResponderEvent, StyleProp, StyleSheet, TextStyle, View, ViewStyle } from 'react-native';\nimport Surface, { SurfaceProps } from './Surface';\nimport Pressable, { PressableProps } from './Pressable';\nimport Text from './Text';\nimport ActivityIndicator from './ActivityIndicator';\nimport { Color, usePaletteColor } from './hooks/use-palette-color';\nimport { useStyles } from './hooks/use-styles';\nimport { useAnimatedElevation } from './hooks/use-animated-elevation';\n\nexport interface FABProps extends Omit, Omit {\n icon?: React.ReactElement | ((props: { color: string; size: number }) => React.ReactElement | null) | null;\n\n label?: string | React.ReactElement | ((props: { color: string }) => React.ReactElement | null) | null;\n\n variant?: 'standard' | 'extended';\n\n size?: 'default' | 'mini';\n\n color?: Color;\n\n tintColor?: Color;\n\n loading?: boolean;\n\n loadingIndicator?: string | React.ReactElement | ((props: { color: string }) => React.ReactElement | null) | null;\n\n loadingIndicatorPosition?: 'icon' | 'overlay';\n\n visible?: boolean;\n\n pressableContainerStyle?: StyleProp;\n\n contentContainerStyle?: PressableProps['style'];\n\n iconContainerStyle?: StyleProp;\n\n labelContainerStyle?: StyleProp;\n\n labelStyle?: StyleProp;\n\n loadingOverlayContainerStyle?: StyleProp;\n}\n\nconst FAB: React.FC = ({\n icon,\n label,\n variant = 'standard',\n size = 'default',\n color = 'secondary',\n tintColor,\n loading = false,\n loadingIndicator,\n loadingIndicatorPosition = 'icon',\n visible = true,\n style,\n pressableContainerStyle,\n contentContainerStyle,\n iconContainerStyle,\n labelContainerStyle,\n labelStyle,\n loadingOverlayContainerStyle,\n\n pressEffect,\n pressEffectColor,\n onPress,\n onPressIn,\n onPressOut,\n onLongPress,\n onBlur,\n onFocus,\n onMouseEnter,\n onMouseLeave,\n delayLongPress,\n disabled,\n hitSlop,\n pressRetentionOffset,\n android_disableSound,\n android_ripple,\n testOnly_pressed,\n ...rest\n}) => {\n const palette = usePaletteColor(color, tintColor);\n\n const hasIcon = useMemo(\n () => icon || (loading && loadingIndicatorPosition === 'icon'),\n [icon, loading, loadingIndicatorPosition]\n );\n\n const styles = useStyles(\n () => ({\n container: {\n backgroundColor: palette.main,\n borderRadius: size === 'default' ? 28 : 20,\n },\n pressableContainer: {\n borderRadius: size === 'default' ? 28 : 20,\n overflow: 'hidden',\n },\n pressable: {\n flexDirection: 'row',\n alignItems: 'center',\n paddingStart:\n variant === 'extended'\n ? hasIcon\n ? size === 'default'\n ? 12\n : 6\n : size === 'default'\n ? 20\n : 10\n : size === 'default'\n ? 16\n : 8,\n paddingEnd: variant === 'extended' ? (size === 'default' ? 20 : 10) : size === 'default' ? 16 : 8,\n paddingVertical: size === 'default' ? 16 : 8,\n },\n iconContainer: {\n justifyContent: 'center',\n alignItems: 'center',\n width: 24,\n height: 24,\n },\n labelContainer: {\n marginStart: hasIcon ? (size === 'default' ? 12 : 6) : 0,\n },\n loadingOverlayContainer: {\n ...StyleSheet.absoluteFillObject,\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: palette.main,\n },\n }),\n [variant, size, palette, hasIcon]\n );\n\n const animated = useRef(new Animated.Value(visible ? 1 : 0)).current;\n\n useEffect(() => {\n Animated.timing(animated, {\n toValue: visible ? 1 : 0,\n duration: 200,\n useNativeDriver: false,\n }).start();\n }, [visible]);\n\n const getLoadingIndicator = () => {\n if (!loadingIndicator) return ;\n switch (typeof loadingIndicator) {\n case 'string':\n return (\n \n {loadingIndicator}\n \n );\n case 'function':\n return loadingIndicator({ color: palette.on });\n default:\n return loadingIndicator;\n }\n };\n\n const getIcon = () => {\n if (loading && loadingIndicatorPosition === 'icon') return getLoadingIndicator();\n return typeof icon === 'function' ? icon({ color: palette.on, size: 24 }) : icon;\n };\n\n const getLabel = () => {\n switch (typeof label) {\n case 'string':\n return (\n \n {label}\n \n );\n case 'function':\n return label({ color: palette.on });\n default:\n return label;\n }\n };\n\n const [pressed, setPressed] = useState(false);\n\n const handlePressIn = useCallback(\n (event: GestureResponderEvent) => {\n onPressIn?.(event);\n setPressed(true);\n },\n [onPressIn]\n );\n\n const handlePressOut = useCallback(\n (event: GestureResponderEvent) => {\n onPressOut?.(event);\n setPressed(false);\n },\n [onPressOut]\n );\n\n const animatedElevation = useAnimatedElevation(pressed ? 12 : 6);\n\n return (\n \n \n \n {hasIcon && {getIcon()}}\n {variant === 'extended' && {getLabel()}}\n\n {loading && loadingIndicatorPosition === 'overlay' && (\n {getLoadingIndicator()}\n )}\n \n \n \n );\n};\n\nexport default FAB;\n","import React from 'react';\nimport { StyleSheet, View, ViewProps } from 'react-native';\nimport Pressable, { PressableProps } from './Pressable';\nimport { Color, usePaletteColor } from './hooks/use-palette-color';\n\nexport interface IconButtonProps extends Omit, Omit {\n /**\n * The element to render as the icon.\n */\n icon?: React.ReactNode | ((props: { color: string; size: number }) => React.ReactNode | null) | null;\n\n /**\n * The color of the icon and the press effect.\n *\n * @default \"on-background\"\n */\n color?: Color;\n\n /**\n * The style of the icon's container view.\n */\n contentContainerStyle?: PressableProps['style'];\n}\n\nconst styles = StyleSheet.create({\n container: {\n width: 48,\n height: 48,\n borderRadius: 48 / 2,\n overflow: 'hidden',\n },\n contentContainer: {\n justifyContent: 'center',\n alignItems: 'center',\n },\n});\n\nconst IconButton: React.FC = ({\n icon,\n color = 'on-background',\n style,\n contentContainerStyle,\n\n pressEffect,\n pressEffectColor,\n onPress,\n onPressIn,\n onPressOut,\n onLongPress,\n onBlur,\n onFocus,\n onMouseEnter,\n onMouseLeave,\n delayLongPress,\n disabled,\n hitSlop,\n pressRetentionOffset,\n android_disableSound,\n android_ripple,\n testOnly_pressed,\n ...rest\n}) => {\n const palette = usePaletteColor(color);\n return (\n \n \n {icon ? (typeof icon === 'function' ? icon({ color: palette.main, size: 24 }) : icon) : null}\n \n \n );\n};\n\nexport default IconButton;\n","import React from 'react';\nimport { View } from 'react-native';\nimport Divider from './Divider';\nimport Text from './Text';\nimport type { SurfaceProps } from './Surface';\nimport Pressable, { PressableProps } from './Pressable';\nimport { useSurfaceScale } from './hooks/use-surface-scale';\n\nexport interface ListItemProps extends Omit, Omit {\n title?: string;\n\n secondaryText?: string;\n\n overline?: string;\n\n meta?: string;\n\n leadingMode?: 'icon' | 'avatar' | 'image';\n\n leading?: React.ReactElement;\n\n trailing?: React.ReactElement | ((props: { color: string; size: number }) => React.ReactElement | null) | null;\n}\n\nconst ListItem: React.FC = ({\n title,\n secondaryText,\n overline,\n meta,\n leadingMode = 'icon',\n leading,\n trailing,\n\n pressEffect,\n pressEffectColor,\n onPress,\n onPressIn,\n onPressOut,\n onLongPress,\n onBlur,\n onFocus,\n onMouseEnter,\n onMouseLeave,\n delayLongPress,\n disabled,\n hitSlop,\n pressRetentionOffset,\n android_disableSound,\n android_ripple,\n testOnly_pressed,\n}) => {\n const scale = useSurfaceScale();\n\n return (\n \n \n {leading && (\n \n {leading}\n \n )}\n \n {overline && (\n \n {overline}\n \n )}\n \n {title && (\n \n {title}\n \n )}\n {meta && (\n \n {meta}\n \n )}\n \n {secondaryText && (\n \n {secondaryText}\n \n )}\n \n {trailing && (\n \n {typeof trailing === 'function' ? trailing({ color: scale(0.87).hex(), size: 24 }) : trailing}\n \n )}\n \n \n \n );\n};\n\nexport default ListItem;\n","import React from 'react';\nimport Surface, { SurfaceProps } from './Surface';\nimport Text from './Text';\nimport { View } from 'react-native';\nimport { useTheme } from './base/ThemeContext';\nimport { useSurfaceScale } from './hooks/use-surface-scale';\n\nexport interface SnackbarProps extends SurfaceProps {\n message: string;\n\n action?: React.ReactElement;\n}\n\nconst Snackbar: React.FC = ({ message, action, style, ...rest }) => {\n const { palette } = useTheme();\n const surfaceScale = useSurfaceScale();\n return (\n \n \n {message}\n \n {action}\n \n );\n};\n\nexport default Snackbar;\n","import React from 'react';\nimport { Switch as RNSwitch, SwitchProps as RNSwitchProps } from 'react-native';\n\nexport interface SwitchProps extends RNSwitchProps {}\n\nconst Switch: React.FC = ({ ...rest }) => {\n return ;\n};\n\nexport default Switch;\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport {\n Animated,\n Easing,\n NativeSyntheticEvent,\n StyleProp,\n StyleSheet,\n TargetedEvent,\n TextInput as RNTextInput,\n TextInputFocusEventData,\n TextInputProps as RNTextInputProps,\n View,\n ViewStyle,\n} from 'react-native';\nimport Text from './Text';\nimport { Color, usePaletteColor } from './hooks/use-palette-color';\nimport { useTheme } from './base/ThemeContext';\nimport { useSurfaceScale } from './hooks/use-surface-scale';\nimport { useStyles } from './hooks/use-styles';\n\nexport interface TextInputProps extends RNTextInputProps {\n /**\n * The variant to use.\n *\n * @default \"filled\"\n */\n variant?: 'filled' | 'outlined' | 'standard';\n\n /**\n * The label to display.\n */\n label?: string;\n\n /**\n * The element placed before the text input.\n */\n leading?: React.ReactNode | ((props: { color: string; size: number }) => React.ReactNode | null) | null;\n\n /**\n * The element placed after the text input.\n */\n trailing?: React.ReactNode | ((props: { color: string; size: number }) => React.ReactNode | null) | null;\n\n /**\n * The color of the text input's content (e.g. label, icons, selection).\n *\n * @default \"primary\"\n */\n color?: Color;\n\n /**\n * The helper text to display.\n */\n helperText?: string;\n\n /**\n * Callback function to call when user moves pointer over the input.\n */\n onMouseEnter?: (event: NativeSyntheticEvent) => void;\n\n /**\n * Callback function to call when user moves pointer away from the input.\n */\n onMouseLeave?: (event: NativeSyntheticEvent) => void;\n\n /**\n * The style of the container view.\n */\n style?: StyleProp;\n\n /**\n * The style of the text input container view.\n */\n inputContainerStyle?: StyleProp;\n\n /**\n * The style of the text input.\n */\n inputStyle?: RNTextInputProps['style'];\n\n /**\n * The style of the text input's leading element container.\n */\n leadingContainerStyle?: StyleProp;\n\n /**\n * The style of the text input's trailing element container.\n */\n trailingContainerStyle?: StyleProp;\n}\n\nconst TextInput: React.FC = React.forwardRef(\n (\n {\n variant = 'filled',\n label,\n leading,\n trailing,\n color = 'primary',\n helperText,\n onMouseEnter,\n onMouseLeave,\n style,\n inputContainerStyle,\n inputStyle,\n leadingContainerStyle,\n trailingContainerStyle,\n\n placeholder,\n onFocus,\n onBlur,\n ...rest\n },\n ref\n ) => {\n const theme = useTheme();\n\n const surfaceScale = useSurfaceScale();\n\n const palette = usePaletteColor(color);\n\n const leadingNode =\n typeof leading === 'function' ? leading({ color: surfaceScale(0.62).hex(), size: 24 }) : leading;\n\n const trailingNode =\n typeof trailing === 'function'\n ? trailing({\n color: surfaceScale(0.62).hex(),\n size: 24,\n })\n : trailing;\n\n const [hovered, setHovered] = useState(false);\n\n const handleMouseEnter = useCallback(\n (event: NativeSyntheticEvent) => {\n onMouseEnter?.(event);\n setHovered(true);\n },\n [onMouseEnter]\n );\n\n const handleMouseLeave = useCallback(\n (event: NativeSyntheticEvent) => {\n onMouseLeave?.(event);\n setHovered(false);\n },\n [onMouseLeave]\n );\n\n const [focused, setFocused] = useState(false);\n\n const handleFocus = useCallback(\n (event: NativeSyntheticEvent) => {\n onFocus?.(event);\n setFocused(true);\n },\n [onFocus]\n );\n\n const handleBlur = useCallback(\n (event: NativeSyntheticEvent) => {\n onBlur?.(event);\n setFocused(false);\n },\n [onBlur]\n );\n\n const focusAnimation = useMemo(() => new Animated.Value(0), []);\n\n useEffect(() => {\n Animated.timing(focusAnimation, {\n toValue: focused ? 1 : 0,\n duration: 200,\n easing: Easing.out(Easing.ease),\n useNativeDriver: false,\n }).start();\n }, [focused]);\n\n const active = useMemo(() => focused || (rest.value?.length || 0) > 0, [focused, rest.value]);\n\n const activeAnimation = useMemo(() => new Animated.Value(active ? 1 : 0), []);\n\n useEffect(() => {\n Animated.timing(activeAnimation, {\n toValue: active ? 1 : 0,\n duration: 200,\n easing: Easing.out(Easing.ease),\n useNativeDriver: false,\n }).start();\n }, [active]);\n\n const styles = useStyles(\n () => ({\n inputContainer: {\n flexDirection: 'row',\n backgroundColor:\n variant === 'filled'\n ? focused\n ? surfaceScale(0.14).hex()\n : hovered\n ? surfaceScale(0.08).hex()\n : surfaceScale(0.04).hex()\n : variant === 'outlined'\n ? surfaceScale(0).hex()\n : undefined,\n },\n input: {\n flex: 1,\n minHeight: variant === 'standard' ? 48 : 56,\n paddingStart: leadingNode ? 12 : variant === 'standard' ? 0 : 16,\n paddingEnd: trailingNode ? 12 : variant === 'standard' ? 0 : 16,\n color: surfaceScale(0.87).hex(),\n },\n leading: {\n justifyContent: 'center',\n alignItems: 'center',\n width: 24,\n height: 24,\n marginStart: variant === 'standard' ? 0 : 12,\n marginVertical: variant === 'standard' ? 12 : 16,\n },\n trailing: {\n justifyContent: 'center',\n alignItems: 'center',\n width: 24,\n height: 24,\n marginEnd: variant === 'standard' ? 0 : 12,\n marginVertical: variant === 'standard' ? 12 : 16,\n },\n underline: {\n position: 'absolute',\n start: 0,\n end: 0,\n bottom: 0,\n height: 1,\n backgroundColor: hovered ? surfaceScale(0.87).hex() : surfaceScale(0.42).hex(),\n },\n underlineFocused: {\n position: 'absolute',\n start: 0,\n end: 0,\n bottom: 0,\n height: 2,\n backgroundColor: palette.main,\n },\n outline: {\n borderWidth: focused ? 2 : 1,\n borderColor: focused ? palette.main : hovered ? surfaceScale(0.87).hex() : surfaceScale(0.42).hex(),\n },\n outlineLabelGap: {\n position: 'absolute',\n top: 0,\n start: -4,\n end: -4,\n height: focused ? 2 : 1,\n backgroundColor: surfaceScale(0).hex(),\n },\n labelContainer: {\n justifyContent: 'center',\n position: 'absolute',\n top: 0,\n start: variant === 'standard' ? (leadingNode ? 36 : 0) : leadingNode ? 48 : 16,\n height: variant === 'standard' ? 48 : 56,\n },\n helperText: {\n color: surfaceScale(0.6).hex(),\n },\n }),\n [palette.main, surfaceScale, !!leadingNode, !!trailingNode, variant, focused, hovered]\n );\n\n return (\n \n \n {leadingNode && {leadingNode}}\n\n \n\n {trailingNode && {trailingNode}}\n\n {(variant === 'filled' || variant === 'standard') && (\n <>\n \n \n \n )}\n\n {variant === 'outlined' && (\n \n )}\n\n {label && (\n \n {variant === 'outlined' && (\n \n )}\n \n {label}\n \n \n )}\n \n \n {helperText && (\n \n {helperText}\n \n )}\n \n \n );\n }\n);\n\nexport default TextInput;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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';\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\nclass Easing {\n /**\n * A stepping function, returns 1 for any positive value of `n`.\n */\n static 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 static 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 static 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 static 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 static 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 static 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 static poly(n) {\n return t => Math.pow(t, n);\n }\n /**\n * A sinusoidal function.\n *\n * http://easings.net/#easeInSine\n */\n\n\n static 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 static 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 static 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 static elastic(bounciness) {\n if (bounciness === void 0) {\n bounciness = 1;\n }\n\n var p = bounciness * Math.PI;\n return t => 1 - Math.pow(Math.cos(t * Math.PI / 2), 3) * Math.cos(t * p);\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 static back(s) {\n if (s === void 0) {\n s = 1.70158;\n }\n\n return t => t * t * ((s + 1) * t - s);\n }\n /**\n * Provides a simple bouncing effect.\n *\n * http://easings.net/#easeInBounce\n */\n\n\n static 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 static bezier(x1, y1, x2, y2) {\n return _bezier(x1, y1, x2, y2);\n }\n /**\n * Runs an easing function forwards.\n */\n\n\n static in(easing) {\n return easing;\n }\n /**\n * Runs an easing function backwards.\n */\n\n\n static out(easing) {\n return t => 1 - easing(1 - t);\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 static inOut(easing) {\n return 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}\n\nexport default Easing;","/**\n * Portions Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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) 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) 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","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 I18nManager = {\n allowRTL() {\n return;\n },\n\n forceRTL() {\n return;\n },\n\n getConstants() {\n return {\n isRTL: false\n };\n }\n\n};\nexport default I18nManager;","import { FlingGestureHandlerEventPayload } from '../FlingGestureHandler';\nimport { ForceTouchGestureHandlerEventPayload } from '../ForceTouchGestureHandler';\nimport {\n HitSlop,\n CommonGestureConfig,\n GestureTouchEvent,\n GestureStateChangeEvent,\n GestureUpdateEvent,\n} from '../gestureHandlerCommon';\nimport { getNextHandlerTag } from '../handlersRegistry';\nimport { GestureStateManagerType } from './gestureStateManager';\nimport { LongPressGestureHandlerEventPayload } from '../LongPressGestureHandler';\nimport { PanGestureHandlerEventPayload } from '../PanGestureHandler';\nimport { PinchGestureHandlerEventPayload } from '../PinchGestureHandler';\nimport { RotationGestureHandlerEventPayload } from '../RotationGestureHandler';\nimport { TapGestureHandlerEventPayload } from '../TapGestureHandler';\nimport { NativeViewGestureHandlerPayload } from '../NativeViewGestureHandler';\nimport { isRemoteDebuggingEnabled } from '../../utils';\n\nexport type GestureType =\n | BaseGesture>\n | BaseGesture>\n | BaseGesture\n | BaseGesture\n | BaseGesture\n | BaseGesture\n | BaseGesture\n | BaseGesture\n | BaseGesture\n | BaseGesture;\n\nexport type GestureRef =\n | number\n | GestureType\n | React.RefObject\n | React.RefObject; // allow adding a ref to a gesture handler\nexport interface BaseGestureConfig\n extends CommonGestureConfig,\n Record {\n ref?: React.MutableRefObject;\n requireToFail?: GestureRef[];\n simultaneousWith?: GestureRef[];\n needsPointerData?: boolean;\n manualActivation?: boolean;\n runOnJS?: boolean;\n testId?: string;\n cancelsTouchesInView?: boolean;\n}\n\ntype TouchEventHandlerType = (\n event: GestureTouchEvent,\n stateManager: GestureStateManagerType\n) => void;\n\nexport type HandlerCallbacks> = {\n gestureId: number;\n handlerTag: number;\n onBegin?: (event: GestureStateChangeEvent) => void;\n onStart?: (event: GestureStateChangeEvent) => void;\n onEnd?: (\n event: GestureStateChangeEvent,\n success: boolean\n ) => void;\n onFinalize?: (\n event: GestureStateChangeEvent,\n success: boolean\n ) => void;\n onUpdate?: (event: GestureUpdateEvent) => void;\n onChange?: (event: any) => void;\n onTouchesDown?: TouchEventHandlerType;\n onTouchesMove?: TouchEventHandlerType;\n onTouchesUp?: TouchEventHandlerType;\n onTouchesCancelled?: TouchEventHandlerType;\n changeEventCalculator?: (\n current: GestureUpdateEvent>,\n previous?: GestureUpdateEvent>\n ) => GestureUpdateEvent>;\n isWorklet: boolean[];\n};\n\nexport const CALLBACK_TYPE = {\n UNDEFINED: 0,\n BEGAN: 1,\n START: 2,\n UPDATE: 3,\n CHANGE: 4,\n END: 5,\n FINALIZE: 6,\n TOUCHES_DOWN: 7,\n TOUCHES_MOVE: 8,\n TOUCHES_UP: 9,\n TOUCHES_CANCELLED: 10,\n} as const;\n\n// Allow using CALLBACK_TYPE as object and type\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport type CALLBACK_TYPE = typeof CALLBACK_TYPE[keyof typeof CALLBACK_TYPE];\n\nexport abstract class Gesture {\n /**\n * Return array of gestures, providing the same interface for creating and updating\n * handlers, no matter which object was used to create gesture instance.\n */\n abstract toGestureArray(): GestureType[];\n\n /**\n * Assign handlerTag to the gesture instance and set ref.current (if a ref is set)\n */\n abstract initialize(): void;\n\n /**\n * Make sure that values of properties defining relations are arrays. Do any necessary\n * preprocessing required to configure relations between handlers. Called just before\n * updating the handler on the native side.\n */\n abstract prepare(): void;\n}\n\nlet nextGestureId = 0;\nexport abstract class BaseGesture<\n EventPayloadT extends Record\n> extends Gesture {\n private gestureId = -1;\n public handlerTag = -1;\n public handlerName = '';\n public config: BaseGestureConfig = {};\n public handlers: HandlerCallbacks = {\n gestureId: -1,\n handlerTag: -1,\n isWorklet: [],\n };\n\n constructor() {\n super();\n\n // Used to check whether the gesture config has been updated when wrapping it\n // with `useMemo`. Since every config will have a unique id, when the dependencies\n // don't change, the config won't be recreated and the id will stay the same.\n // If the id is different, it means that the config has changed and the gesture\n // needs to be updated.\n this.gestureId = nextGestureId++;\n this.handlers.gestureId = this.gestureId;\n }\n\n private addDependency(\n key: 'simultaneousWith' | 'requireToFail',\n gesture: Exclude\n ) {\n const value = this.config[key];\n this.config[key] = value\n ? Array().concat(value, gesture)\n : [gesture];\n }\n\n withRef(ref: React.MutableRefObject) {\n this.config.ref = ref;\n return this;\n }\n\n // eslint-disable-next-line @typescript-eslint/ban-types\n protected isWorklet(callback: Function) {\n //@ts-ignore if callback is a worklet, the property will be available, if not then the check will return false\n return callback.__workletHash !== undefined;\n }\n\n onBegin(callback: (event: GestureStateChangeEvent) => void) {\n this.handlers.onBegin = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.BEGAN] = this.isWorklet(callback);\n return this;\n }\n\n onStart(callback: (event: GestureStateChangeEvent) => void) {\n this.handlers.onStart = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.START] = this.isWorklet(callback);\n return this;\n }\n\n onEnd(\n callback: (\n event: GestureStateChangeEvent,\n success: boolean\n ) => void\n ) {\n this.handlers.onEnd = callback;\n //@ts-ignore if callback is a worklet, the property will be available, if not then the check will return false\n this.handlers.isWorklet[CALLBACK_TYPE.END] = this.isWorklet(callback);\n return this;\n }\n\n onFinalize(\n callback: (\n event: GestureStateChangeEvent,\n success: boolean\n ) => void\n ) {\n this.handlers.onFinalize = callback;\n //@ts-ignore if callback is a worklet, the property will be available, if not then the check will return false\n this.handlers.isWorklet[CALLBACK_TYPE.FINALIZE] = this.isWorklet(callback);\n return this;\n }\n\n onTouchesDown(callback: TouchEventHandlerType) {\n this.config.needsPointerData = true;\n this.handlers.onTouchesDown = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.TOUCHES_DOWN] =\n this.isWorklet(callback);\n\n return this;\n }\n\n onTouchesMove(callback: TouchEventHandlerType) {\n this.config.needsPointerData = true;\n this.handlers.onTouchesMove = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.TOUCHES_MOVE] =\n this.isWorklet(callback);\n\n return this;\n }\n\n onTouchesUp(callback: TouchEventHandlerType) {\n this.config.needsPointerData = true;\n this.handlers.onTouchesUp = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.TOUCHES_UP] =\n this.isWorklet(callback);\n\n return this;\n }\n\n onTouchesCancelled(callback: TouchEventHandlerType) {\n this.config.needsPointerData = true;\n this.handlers.onTouchesCancelled = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.TOUCHES_CANCELLED] =\n this.isWorklet(callback);\n\n return this;\n }\n\n enabled(enabled: boolean) {\n this.config.enabled = enabled;\n return this;\n }\n\n shouldCancelWhenOutside(value: boolean) {\n this.config.shouldCancelWhenOutside = value;\n return this;\n }\n\n hitSlop(hitSlop: HitSlop) {\n this.config.hitSlop = hitSlop;\n return this;\n }\n\n runOnJS(runOnJS: boolean) {\n this.config.runOnJS = runOnJS;\n return this;\n }\n\n simultaneousWithExternalGesture(...gestures: Exclude[]) {\n for (const gesture of gestures) {\n this.addDependency('simultaneousWith', gesture);\n }\n return this;\n }\n\n requireExternalGestureToFail(...gestures: Exclude[]) {\n for (const gesture of gestures) {\n this.addDependency('requireToFail', gesture);\n }\n return this;\n }\n\n withTestId(id: string) {\n this.config.testId = id;\n return this;\n }\n\n cancelsTouchesInView(value: boolean) {\n this.config.cancelsTouchesInView = value;\n return this;\n }\n\n initialize() {\n this.handlerTag = getNextHandlerTag();\n\n this.handlers = { ...this.handlers, handlerTag: this.handlerTag };\n\n if (this.config.ref) {\n this.config.ref.current = this as GestureType;\n }\n }\n\n toGestureArray(): GestureType[] {\n return [this as GestureType];\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n prepare() {}\n\n get shouldUseReanimated(): boolean {\n // use Reanimated when runOnJS isn't set explicitly,\n // and all defined callbacks are worklets,\n // and remote debugging is disabled\n return (\n this.config.runOnJS !== true &&\n !this.handlers.isWorklet.includes(false) &&\n !isRemoteDebuggingEnabled()\n );\n }\n}\n\nexport abstract class ContinousBaseGesture<\n EventPayloadT extends Record,\n EventChangePayloadT extends Record\n> extends BaseGesture {\n onUpdate(callback: (event: GestureUpdateEvent) => void) {\n this.handlers.onUpdate = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.UPDATE] = this.isWorklet(callback);\n return this;\n }\n\n onChange(\n callback: (\n event: GestureUpdateEvent\n ) => void\n ) {\n this.handlers.onChange = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.CHANGE] = this.isWorklet(callback);\n return this;\n }\n\n manualActivation(manualActivation: boolean) {\n this.config.manualActivation = manualActivation;\n return this;\n }\n}\n","import color from 'color';\nexport default function getContrastingColor(input, light, dark) {\n if (typeof input === 'string') {\n return color(input).isLight() ? dark : light;\n }\n return light;\n}\n//# sourceMappingURL=getContrastingColor.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { useInternalTheme } from '../../core/theming';\nimport { white } from '../../styles/themes/v2/colors';\nimport getContrastingColor from '../../utils/getContrastingColor';\nimport Icon from '../Icon';\nconst defaultSize = 64;\n/**\n * Avatars can be used to represent people in a graphical way.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Avatar } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * \n * );\n * ```\n */\nconst Avatar = _ref => {\n var _theme$colors;\n let {\n icon,\n size = defaultSize,\n style,\n theme: themeOverrides,\n ...rest\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const {\n backgroundColor = (_theme$colors = theme.colors) === null || _theme$colors === void 0 ? void 0 : _theme$colors.primary,\n ...restStyle\n } = StyleSheet.flatten(style) || {};\n const textColor = rest.color ?? getContrastingColor(backgroundColor, white, 'rgba(0, 0, 0, .54)');\n return /*#__PURE__*/React.createElement(View, _extends({\n style: [{\n width: size,\n height: size,\n borderRadius: size / 2,\n backgroundColor\n }, styles.container, restStyle]\n }, rest), /*#__PURE__*/React.createElement(Icon, {\n source: icon,\n color: textColor,\n size: size * 0.6\n }));\n};\nAvatar.displayName = 'Avatar.Icon';\nconst styles = StyleSheet.create({\n container: {\n justifyContent: 'center',\n alignItems: 'center'\n }\n});\nexport default Avatar;\n//# sourceMappingURL=AvatarIcon.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { Image, StyleSheet, View } from 'react-native';\nimport { useInternalTheme } from '../../core/theming';\nconst defaultSize = 64;\n/**\n * Avatars can be used to represent people in a graphical way.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Avatar } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * \n * );\n * export default MyComponent\n * ```\n */\nconst AvatarImage = _ref => {\n let {\n size = defaultSize,\n source,\n style,\n onError,\n onLayout,\n onLoad,\n onLoadEnd,\n onLoadStart,\n onProgress,\n theme: themeOverrides,\n testID,\n ...rest\n } = _ref;\n const {\n colors\n } = useInternalTheme(themeOverrides);\n const {\n backgroundColor = colors === null || colors === void 0 ? void 0 : colors.primary\n } = StyleSheet.flatten(style) || {};\n return /*#__PURE__*/React.createElement(View, _extends({\n style: [{\n width: size,\n height: size,\n borderRadius: size / 2,\n backgroundColor\n }, style]\n }, rest), typeof source === 'function' && source({\n size\n }), typeof source !== 'function' && /*#__PURE__*/React.createElement(Image, {\n testID: testID,\n source: source,\n style: {\n width: size,\n height: size,\n borderRadius: size / 2\n },\n onError: onError,\n onLayout: onLayout,\n onLoad: onLoad,\n onLoadEnd: onLoadEnd,\n onLoadStart: onLoadStart,\n onProgress: onProgress,\n accessibilityIgnoresInvertColors: true\n }));\n};\nAvatarImage.displayName = 'Avatar.Image';\nexport default AvatarImage;\n//# sourceMappingURL=AvatarImage.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { StyleSheet, useWindowDimensions, View } from 'react-native';\nimport { useInternalTheme } from '../../core/theming';\nimport { white } from '../../styles/themes/v2/colors';\nimport getContrastingColor from '../../utils/getContrastingColor';\nimport Text from '../Typography/Text';\nconst defaultSize = 64;\n/**\n * Avatars can be used to represent people in a graphical way.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Avatar } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * \n * );\n * ```\n */\nconst AvatarText = _ref => {\n var _theme$colors;\n let {\n label,\n size = defaultSize,\n style,\n labelStyle,\n color: customColor,\n theme: themeOverrides,\n maxFontSizeMultiplier,\n ...rest\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const {\n backgroundColor = (_theme$colors = theme.colors) === null || _theme$colors === void 0 ? void 0 : _theme$colors.primary,\n ...restStyle\n } = StyleSheet.flatten(style) || {};\n const textColor = customColor ?? getContrastingColor(backgroundColor, white, 'rgba(0, 0, 0, .54)');\n const {\n fontScale\n } = useWindowDimensions();\n return /*#__PURE__*/React.createElement(View, _extends({\n style: [{\n width: size,\n height: size,\n borderRadius: size / 2,\n backgroundColor\n }, styles.container, restStyle]\n }, rest), /*#__PURE__*/React.createElement(Text, {\n style: [styles.text, {\n color: textColor,\n fontSize: size / 2,\n lineHeight: size / fontScale\n }, labelStyle],\n numberOfLines: 1,\n maxFontSizeMultiplier: maxFontSizeMultiplier\n }, label));\n};\nAvatarText.displayName = 'Avatar.Text';\nconst styles = StyleSheet.create({\n container: {\n justifyContent: 'center',\n alignItems: 'center'\n },\n text: {\n textAlign: 'center',\n textAlignVertical: 'center'\n }\n});\nexport default AvatarText;\n//# sourceMappingURL=AvatarText.js.map","import * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport color from 'color';\nimport { useInternalTheme } from '../../core/theming';\nimport Icon from '../Icon';\nimport TouchableRipple from '../TouchableRipple/TouchableRipple';\nimport Text from '../Typography/Text';\n/**\n * A component used to show an action item with an icon and a label in a navigation drawer.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Drawer } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * \n * );\n *\n * export default MyComponent;\n * ```\n */\nconst DrawerItem = _ref => {\n let {\n icon,\n label,\n active,\n disabled,\n theme: themeOverrides,\n rippleColor: customRippleColor,\n style,\n onPress,\n background,\n accessibilityLabel,\n right,\n labelMaxFontSizeMultiplier,\n ...rest\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const {\n roundness,\n isV3\n } = theme;\n const backgroundColor = active ? isV3 ? theme.colors.secondaryContainer : color(theme.colors.primary).alpha(0.12).rgb().string() : 'transparent';\n const contentColor = active ? isV3 ? theme.colors.onSecondaryContainer : theme.colors.primary : isV3 ? theme.colors.onSurfaceVariant : color(theme.colors.text).alpha(0.68).rgb().string();\n const labelMargin = icon ? isV3 ? 12 : 32 : 0;\n const borderRadius = (isV3 ? 7 : 1) * roundness;\n const rippleColor = isV3 ? color(contentColor).alpha(0.12).rgb().string() : undefined;\n const font = isV3 ? theme.fonts.labelLarge : theme.fonts.medium;\n return /*#__PURE__*/React.createElement(View, rest, /*#__PURE__*/React.createElement(TouchableRipple, {\n borderless: true,\n disabled: disabled,\n background: background,\n onPress: onPress,\n style: [styles.container, {\n backgroundColor,\n borderRadius\n }, isV3 && styles.v3Container, style],\n accessibilityRole: \"button\",\n accessibilityState: {\n selected: active\n },\n accessibilityLabel: accessibilityLabel,\n rippleColor: customRippleColor || rippleColor,\n theme: theme\n }, /*#__PURE__*/React.createElement(View, {\n style: [styles.wrapper, isV3 && styles.v3Wrapper]\n }, /*#__PURE__*/React.createElement(View, {\n style: styles.content\n }, icon ? /*#__PURE__*/React.createElement(Icon, {\n source: icon,\n size: 24,\n color: contentColor\n }) : null, /*#__PURE__*/React.createElement(Text, {\n variant: \"labelLarge\",\n selectable: false,\n numberOfLines: 1,\n style: [styles.label, {\n color: contentColor,\n marginLeft: labelMargin,\n ...font\n }],\n maxFontSizeMultiplier: labelMaxFontSizeMultiplier\n }, label)), right === null || right === void 0 ? void 0 : right({\n color: contentColor\n }))));\n};\nDrawerItem.displayName = 'Drawer.Item';\nconst styles = StyleSheet.create({\n container: {\n marginHorizontal: 10,\n marginVertical: 4\n },\n v3Container: {\n justifyContent: 'center',\n height: 56,\n marginLeft: 12,\n marginRight: 12,\n marginVertical: 0\n },\n wrapper: {\n flexDirection: 'row',\n alignItems: 'center',\n padding: 8\n },\n v3Wrapper: {\n marginLeft: 16,\n marginRight: 24,\n padding: 0\n },\n content: {\n flex: 1,\n flexDirection: 'row',\n alignItems: 'center'\n },\n label: {\n marginRight: 32\n }\n});\nexport default DrawerItem;\n//# sourceMappingURL=DrawerItem.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { Animated, StyleSheet, useWindowDimensions } from 'react-native';\nimport { useInternalTheme } from '../core/theming';\nimport { black, white } from '../styles/themes/v2/colors';\nimport getContrastingColor from '../utils/getContrastingColor';\nconst defaultSize = 20;\n/**\n * Badges are small status descriptors for UI elements.\n * A badge consists of a small circle, typically containing a number or other short set of characters, that appears in proximity to another object.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Badge } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * 3\n * );\n *\n * export default MyComponent;\n * ```\n */\nconst Badge = _ref => {\n var _theme$colors;\n let {\n children,\n size = defaultSize,\n style,\n theme: themeOverrides,\n visible = true,\n ...rest\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const {\n current: opacity\n } = React.useRef(new Animated.Value(visible ? 1 : 0));\n const {\n fontScale\n } = useWindowDimensions();\n const isFirstRendering = React.useRef(true);\n const {\n animation: {\n scale\n }\n } = theme;\n React.useEffect(() => {\n // Do not run animation on very first rendering\n if (isFirstRendering.current) {\n isFirstRendering.current = false;\n return;\n }\n Animated.timing(opacity, {\n toValue: visible ? 1 : 0,\n duration: 150 * scale,\n useNativeDriver: true\n }).start();\n }, [visible, opacity, scale]);\n const {\n backgroundColor = theme.isV3 ? theme.colors.error : (_theme$colors = theme.colors) === null || _theme$colors === void 0 ? void 0 : _theme$colors.notification,\n ...restStyle\n } = StyleSheet.flatten(style) || {};\n const textColor = theme.isV3 ? theme.colors.onError : getContrastingColor(backgroundColor, white, black);\n const borderRadius = size / 2;\n const paddingHorizontal = theme.isV3 ? 3 : 4;\n return /*#__PURE__*/React.createElement(Animated.Text, _extends({\n numberOfLines: 1,\n style: [{\n opacity,\n backgroundColor,\n color: textColor,\n fontSize: size * 0.5,\n ...(!theme.isV3 && theme.fonts.regular),\n lineHeight: size / fontScale,\n height: size,\n minWidth: size,\n borderRadius,\n paddingHorizontal\n }, styles.container, restStyle]\n }, rest), children);\n};\nexport default Badge;\nconst styles = StyleSheet.create({\n container: {\n alignSelf: 'flex-end',\n textAlign: 'center',\n textAlignVertical: 'center',\n overflow: 'hidden'\n }\n});\n//# sourceMappingURL=Badge.js.map","import * as React from 'react';\nimport { Animated, Platform, Pressable, StyleSheet, View } from 'react-native';\nimport { useInternalTheme } from '../../core/theming';\nimport Badge from '../Badge';\nimport Icon from '../Icon';\nimport Text from '../Typography/Text';\nconst badgeSize = 8;\nconst iconSize = 24;\nconst itemSize = 56;\nconst outlineHeight = 32;\n\n/**\n * Note: Available in v5.x with theme version 3\n *\n * Collapsed component used to show an action item with an icon and optionally label in a navigation drawer.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Drawer } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * \n * );\n *\n * export default MyComponent;\n * ```\n */\nconst DrawerCollapsedItem = _ref => {\n let {\n focusedIcon,\n unfocusedIcon,\n label,\n active,\n theme: themeOverrides,\n style,\n onPress,\n disabled,\n accessibilityLabel,\n badge = false,\n testID = 'drawer-collapsed-item',\n labelMaxFontSizeMultiplier,\n ...rest\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const {\n isV3\n } = theme;\n const {\n scale\n } = theme.animation;\n const [numOfLines, setNumOfLines] = React.useState(1);\n const {\n current: animScale\n } = React.useRef(new Animated.Value(active ? 1 : 0.5));\n React.useEffect(() => {\n if (!active) {\n animScale.setValue(0.5);\n }\n }, [animScale, active]);\n if (!isV3) {\n return null;\n }\n const handlePressOut = () => {\n Animated.timing(animScale, {\n toValue: 1,\n duration: 150 * scale,\n useNativeDriver: true\n }).start();\n };\n const iconPadding = ((!label ? itemSize : outlineHeight) - iconSize) / 2;\n const backgroundColor = active ? theme.colors.secondaryContainer : 'transparent';\n const labelColor = active ? theme.colors.onSurface : theme.colors.onSurfaceVariant;\n const iconColor = active ? theme.colors.onSecondaryContainer : theme.colors.onSurfaceVariant;\n const onTextLayout = _ref2 => {\n let {\n nativeEvent\n } = _ref2;\n setNumOfLines(nativeEvent.lines.length);\n };\n\n // Label is cut off on Android, when centered \"labelMedium\" text\n // has more than 4 lines, so there is a need to decrease the letter spacing.\n const androidLetterSpacingStyle = Platform.OS === 'android' && numOfLines > 4 && styles.letterSpacing;\n const labelTextStyle = {\n color: labelColor,\n ...(isV3 ? theme.fonts.labelMedium : {})\n };\n const icon = !active && unfocusedIcon !== undefined ? unfocusedIcon : focusedIcon;\n return /*#__PURE__*/React.createElement(View, rest, /*#__PURE__*/React.createElement(Pressable, {\n onPress: onPress,\n onPressOut: onPress ? handlePressOut : undefined,\n disabled: disabled\n // @ts-expect-error We keep old a11y props for backwards compat with old RN versions\n ,\n accessibilityTraits: active ? ['button', 'selected'] : 'button',\n accessibilityComponentType: \"button\",\n accessibilityRole: \"button\",\n accessibilityState: {\n selected: active\n },\n accessibilityLabel: accessibilityLabel,\n testID: testID\n }, /*#__PURE__*/React.createElement(View, {\n style: styles.wrapper\n }, /*#__PURE__*/React.createElement(Animated.View, {\n style: [styles.outline, !label && styles.roundedOutline, {\n transform: [label ? {\n scaleX: animScale\n } : {\n scale: animScale\n }],\n backgroundColor\n }, style],\n testID: `${testID}-outline`\n }), /*#__PURE__*/React.createElement(View, {\n style: [styles.icon, {\n top: iconPadding\n }],\n testID: `${testID}-container`\n }, badge && /*#__PURE__*/React.createElement(View, {\n style: styles.badgeContainer\n }, typeof badge === 'boolean' ? /*#__PURE__*/React.createElement(Badge, {\n visible: badge,\n size: badgeSize\n }) : /*#__PURE__*/React.createElement(Badge, {\n visible: badge != null,\n size: 2 * badgeSize\n }, badge)), /*#__PURE__*/React.createElement(Icon, {\n source: icon,\n size: iconSize,\n color: iconColor\n })), label ? /*#__PURE__*/React.createElement(Text, {\n variant: \"labelMedium\",\n selectable: false,\n numberOfLines: 2,\n onTextLayout: onTextLayout,\n style: [styles.label, androidLetterSpacingStyle, labelTextStyle],\n maxFontSizeMultiplier: labelMaxFontSizeMultiplier\n }, label) : null)));\n};\nDrawerCollapsedItem.displayName = 'Drawer.CollapsedItem';\nconst styles = StyleSheet.create({\n wrapper: {\n width: 80,\n marginBottom: 12,\n minHeight: itemSize,\n alignItems: 'center'\n },\n outline: {\n width: itemSize,\n height: outlineHeight,\n borderRadius: itemSize / 2,\n alignItems: 'center',\n justifyContent: 'center'\n },\n roundedOutline: {\n height: itemSize\n },\n icon: {\n position: 'absolute'\n },\n letterSpacing: {\n letterSpacing: 0.3,\n alignSelf: 'stretch'\n },\n label: {\n marginHorizontal: 12,\n marginTop: 4,\n textAlign: 'center'\n },\n badgeContainer: {\n position: 'absolute',\n left: 20,\n bottom: 20,\n zIndex: 2\n }\n});\nexport default DrawerCollapsedItem;\n//# sourceMappingURL=DrawerCollapsedItem.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport color from 'color';\nimport { useInternalTheme } from '../../core/theming';\nimport { MD3Colors } from '../../styles/themes/v3/tokens';\nimport Divider from '../Divider';\nimport Text from '../Typography/Text';\n/**\n * A component to group content inside a navigation drawer.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Drawer } from 'react-native-paper';\n *\n * const MyComponent = () => {\n * const [active, setActive] = React.useState('');\n *\n * return (\n * \n * setActive('first')}\n * />\n * setActive('second')}\n * />\n * \n * );\n * };\n *\n * export default MyComponent;\n * ```\n */\nconst DrawerSection = _ref => {\n let {\n children,\n title,\n theme: themeOverrides,\n style,\n showDivider = true,\n titleMaxFontSizeMultiplier,\n ...rest\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const {\n isV3\n } = theme;\n const titleColor = isV3 ? theme.colors.onSurfaceVariant : color(theme.colors.text).alpha(0.54).rgb().string();\n const titleMargin = isV3 ? 28 : 16;\n const font = isV3 ? theme.fonts.titleSmall : theme.fonts.medium;\n return /*#__PURE__*/React.createElement(View, _extends({\n style: [styles.container, style]\n }, rest), title && /*#__PURE__*/React.createElement(View, {\n style: [styles.titleContainer, isV3 && styles.v3TitleContainer]\n }, title && /*#__PURE__*/React.createElement(Text, {\n variant: \"titleSmall\",\n numberOfLines: 1,\n style: [{\n color: titleColor,\n marginLeft: titleMargin,\n ...font\n }],\n maxFontSizeMultiplier: titleMaxFontSizeMultiplier\n }, title)), children, showDivider && /*#__PURE__*/React.createElement(Divider, _extends({}, isV3 && {\n horizontalInset: true,\n bold: true\n }, {\n style: [styles.divider, isV3 && styles.v3Divider],\n theme: theme\n })));\n};\nDrawerSection.displayName = 'Drawer.Section';\nconst styles = StyleSheet.create({\n container: {\n marginBottom: 4\n },\n titleContainer: {\n height: 40,\n justifyContent: 'center'\n },\n v3TitleContainer: {\n height: 56\n },\n divider: {\n marginTop: 4\n },\n v3Divider: {\n backgroundColor: MD3Colors.neutralVariant50\n }\n});\nexport default DrawerSection;\n//# sourceMappingURL=DrawerSection.js.map","import * as React from 'react';\nexport const ListAccordionGroupContext = /*#__PURE__*/React.createContext(null);\n\n/**\n * List.AccordionGroup allows to control a group of List Accordions. `id` prop for List.Accordion is required in order for group to work.\n * List.AccordionGroup can be a controlled or uncontrolled component. The example shows the uncontrolled version.\n * At most one Accordion can be expanded at a given time.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { View, Text } from 'react-native';\n * import { List } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * \n * \n * \n * \n * \n * \n * \n * \n * \n * List.Accordion can be wrapped because implementation uses React.Context.\n * \n * \n * \n * \n * \n * \n * );\n *\n * export default MyComponent;\n *```\n */\nconst ListAccordionGroup = _ref => {\n let {\n expandedId: expandedIdProp,\n onAccordionPress,\n children\n } = _ref;\n const [expandedId, setExpandedId] = React.useState(undefined);\n const onAccordionPressDefault = newExpandedId => {\n setExpandedId(currentExpandedId => currentExpandedId === newExpandedId ? undefined : newExpandedId);\n };\n return /*#__PURE__*/React.createElement(ListAccordionGroupContext.Provider, {\n value: {\n expandedId: expandedIdProp || expandedId,\n // component can be controlled or uncontrolled\n onAccordionPress: onAccordionPress || onAccordionPressDefault\n }\n }, children);\n};\nListAccordionGroup.displayName = 'List.AccordionGroup';\nexport default ListAccordionGroup;\n//# sourceMappingURL=ListAccordionGroup.js.map","import { StyleSheet } from 'react-native';\nimport color from 'color';\nexport const getLeftStyles = (alignToTop, description, isV3) => {\n const stylesV3 = {\n marginRight: 0,\n marginLeft: 16,\n alignSelf: alignToTop ? 'flex-start' : 'center'\n };\n if (!description) {\n return {\n ...styles.iconMarginLeft,\n ...styles.marginVerticalNone,\n ...(isV3 && {\n ...stylesV3\n })\n };\n }\n if (!isV3) {\n return styles.iconMarginLeft;\n }\n return {\n ...styles.iconMarginLeft,\n ...stylesV3\n };\n};\nexport const getRightStyles = (alignToTop, description, isV3) => {\n const stylesV3 = {\n marginLeft: 16,\n alignSelf: alignToTop ? 'flex-start' : 'center'\n };\n if (!description) {\n return {\n ...styles.iconMarginRight,\n ...styles.marginVerticalNone,\n ...(isV3 && {\n ...stylesV3\n })\n };\n }\n if (!isV3) {\n return styles.iconMarginRight;\n }\n return {\n ...styles.iconMarginRight,\n ...stylesV3\n };\n};\nconst styles = StyleSheet.create({\n marginVerticalNone: {\n marginVertical: 0\n },\n iconMarginLeft: {\n marginLeft: 0,\n marginRight: 16\n },\n iconMarginRight: {\n marginRight: 0\n }\n});\nexport const getAccordionColors = _ref => {\n var _theme$colors;\n let {\n theme,\n isExpanded,\n customRippleColor\n } = _ref;\n const titleColor = theme.isV3 ? theme.colors.onSurface : color(theme.colors.text).alpha(0.87).rgb().string();\n const descriptionColor = theme.isV3 ? theme.colors.onSurfaceVariant : color(theme.colors.text).alpha(0.54).rgb().string();\n const titleTextColor = isExpanded ? (_theme$colors = theme.colors) === null || _theme$colors === void 0 ? void 0 : _theme$colors.primary : titleColor;\n const rippleColor = customRippleColor || color(titleTextColor).alpha(0.12).rgb().string();\n return {\n titleColor,\n descriptionColor,\n titleTextColor,\n rippleColor\n };\n};\n//# sourceMappingURL=utils.js.map","import * as React from 'react';\nimport { I18nManager, StyleSheet, View } from 'react-native';\nimport { ListAccordionGroupContext } from './ListAccordionGroup';\nimport { getAccordionColors, getLeftStyles } from './utils';\nimport { useInternalTheme } from '../../core/theming';\nimport MaterialCommunityIcon from '../MaterialCommunityIcon';\nimport TouchableRipple from '../TouchableRipple/TouchableRipple';\nimport Text from '../Typography/Text';\n/**\n * A component used to display an expandable list item.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { List } from 'react-native-paper';\n *\n * const MyComponent = () => {\n * const [expanded, setExpanded] = React.useState(true);\n *\n * const handlePress = () => setExpanded(!expanded);\n *\n * return (\n * \n * }>\n * \n * \n * \n *\n * }\n * expanded={expanded}\n * onPress={handlePress}>\n * \n * \n * \n * \n * );\n * };\n *\n * export default MyComponent;\n * ```\n */\nconst ListAccordion = _ref => {\n var _theme$colors, _theme$colors2;\n let {\n left,\n right,\n title,\n description,\n children,\n theme: themeOverrides,\n titleStyle,\n descriptionStyle,\n titleNumberOfLines = 1,\n descriptionNumberOfLines = 2,\n rippleColor: customRippleColor,\n style,\n id,\n testID,\n background,\n onPress,\n onLongPress,\n delayLongPress,\n expanded: expandedProp,\n accessibilityLabel,\n pointerEvents = 'none',\n titleMaxFontSizeMultiplier,\n descriptionMaxFontSizeMultiplier\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const [expanded, setExpanded] = React.useState(expandedProp || false);\n const [alignToTop, setAlignToTop] = React.useState(false);\n const onDescriptionTextLayout = event => {\n if (!theme.isV3) {\n return;\n }\n const {\n nativeEvent\n } = event;\n setAlignToTop(nativeEvent.lines.length >= 2);\n };\n const handlePressAction = e => {\n onPress === null || onPress === void 0 ? void 0 : onPress(e);\n if (expandedProp === undefined) {\n // Only update state of the `expanded` prop was not passed\n // If it was passed, the component will act as a controlled component\n setExpanded(expanded => !expanded);\n }\n };\n const expandedInternal = expandedProp !== undefined ? expandedProp : expanded;\n const groupContext = React.useContext(ListAccordionGroupContext);\n if (groupContext !== null && (id === undefined || id === null || id === '')) {\n throw new Error('List.Accordion is used inside a List.AccordionGroup without specifying an id prop.');\n }\n const isExpanded = groupContext ? groupContext.expandedId === id : expandedInternal;\n const {\n titleColor,\n descriptionColor,\n titleTextColor,\n rippleColor\n } = getAccordionColors({\n theme,\n isExpanded,\n customRippleColor\n });\n const handlePress = groupContext && id !== undefined ? () => groupContext.onAccordionPress(id) : handlePressAction;\n return /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(View, {\n style: {\n backgroundColor: theme === null || theme === void 0 || (_theme$colors = theme.colors) === null || _theme$colors === void 0 ? void 0 : _theme$colors.background\n }\n }, /*#__PURE__*/React.createElement(TouchableRipple, {\n style: [theme.isV3 ? styles.containerV3 : styles.container, style],\n onPress: handlePress,\n onLongPress: onLongPress,\n delayLongPress: delayLongPress,\n rippleColor: rippleColor,\n accessibilityRole: \"button\",\n accessibilityState: {\n expanded: isExpanded\n },\n accessibilityLabel: accessibilityLabel,\n testID: testID,\n theme: theme,\n background: background,\n borderless: true\n }, /*#__PURE__*/React.createElement(View, {\n style: theme.isV3 ? styles.rowV3 : styles.row,\n pointerEvents: pointerEvents\n }, left ? left({\n color: isExpanded ? (_theme$colors2 = theme.colors) === null || _theme$colors2 === void 0 ? void 0 : _theme$colors2.primary : descriptionColor,\n style: getLeftStyles(alignToTop, description, theme.isV3)\n }) : null, /*#__PURE__*/React.createElement(View, {\n style: [theme.isV3 ? styles.itemV3 : styles.item, styles.content]\n }, /*#__PURE__*/React.createElement(Text, {\n selectable: false,\n numberOfLines: titleNumberOfLines,\n style: [styles.title, {\n color: titleTextColor\n }, titleStyle],\n maxFontSizeMultiplier: titleMaxFontSizeMultiplier\n }, title), description ? /*#__PURE__*/React.createElement(Text, {\n selectable: false,\n numberOfLines: descriptionNumberOfLines,\n style: [styles.description, {\n color: descriptionColor\n }, descriptionStyle],\n onTextLayout: onDescriptionTextLayout,\n maxFontSizeMultiplier: descriptionMaxFontSizeMultiplier\n }, description) : null), /*#__PURE__*/React.createElement(View, {\n style: [styles.item, description ? styles.multiline : undefined]\n }, right ? right({\n isExpanded: isExpanded\n }) : /*#__PURE__*/React.createElement(MaterialCommunityIcon, {\n name: isExpanded ? 'chevron-up' : 'chevron-down',\n color: theme.isV3 ? descriptionColor : titleColor,\n size: 24,\n direction: I18nManager.getConstants().isRTL ? 'rtl' : 'ltr'\n }))))), isExpanded ? React.Children.map(children, child => {\n if (left && /*#__PURE__*/React.isValidElement(child) && !child.props.left && !child.props.right) {\n return /*#__PURE__*/React.cloneElement(child, {\n style: [theme.isV3 ? styles.childV3 : styles.child, child.props.style],\n theme\n });\n }\n return child;\n }) : null);\n};\nListAccordion.displayName = 'List.Accordion';\nconst styles = StyleSheet.create({\n container: {\n padding: 8\n },\n containerV3: {\n paddingVertical: 8,\n paddingRight: 24\n },\n row: {\n flexDirection: 'row',\n alignItems: 'center'\n },\n rowV3: {\n flexDirection: 'row',\n marginVertical: 6\n },\n multiline: {\n height: 40,\n alignItems: 'center',\n justifyContent: 'center'\n },\n title: {\n fontSize: 16\n },\n description: {\n fontSize: 14\n },\n item: {\n marginVertical: 6,\n paddingLeft: 8\n },\n itemV3: {\n paddingLeft: 16\n },\n child: {\n paddingLeft: 64\n },\n childV3: {\n paddingLeft: 40\n },\n content: {\n flex: 1,\n justifyContent: 'center'\n }\n});\nexport default ListAccordion;\n//# sourceMappingURL=ListAccordion.js.map","import * as React from 'react';\nimport { View, StyleSheet } from 'react-native';\nimport { useInternalTheme } from '../../core/theming';\nimport Icon from '../Icon';\nconst ICON_SIZE = 24;\n\n/**\n * A component to show an icon in a list item.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { List, MD3Colors } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * <>\n * \n * \n * \n * \n * );\n *\n * export default MyComponent;\n * ```\n */\nconst ListIcon = _ref => {\n let {\n icon,\n color: iconColor,\n style,\n theme: themeOverrides\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n return /*#__PURE__*/React.createElement(View, {\n style: [theme.isV3 ? styles.itemV3 : styles.item, style],\n pointerEvents: \"box-none\"\n }, /*#__PURE__*/React.createElement(Icon, {\n source: icon,\n size: ICON_SIZE,\n color: iconColor,\n theme: theme\n }));\n};\nconst styles = StyleSheet.create({\n item: {\n margin: 8,\n height: 40,\n width: 40,\n alignItems: 'center',\n justifyContent: 'center'\n },\n itemV3: {\n alignItems: 'center',\n justifyContent: 'center'\n }\n});\nListIcon.displayName = 'List.Icon';\nexport default ListIcon;\n//# sourceMappingURL=ListIcon.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport color from 'color';\nimport { getLeftStyles, getRightStyles } from './utils';\nimport { useInternalTheme } from '../../core/theming';\nimport { forwardRef } from '../../utils/forwardRef';\nimport TouchableRipple from '../TouchableRipple/TouchableRipple';\nimport Text from '../Typography/Text';\n/**\n * A component to show tiles inside a List.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { List } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * }\n * />\n * );\n *\n * export default MyComponent;\n * ```\n *\n * @extends TouchableRipple props https://callstack.github.io/react-native-paper/docs/components/TouchableRipple\n */\nconst ListItem = (_ref, ref) => {\n let {\n left,\n right,\n title,\n description,\n onPress,\n theme: themeOverrides,\n style,\n contentStyle,\n titleStyle,\n titleNumberOfLines = 1,\n descriptionNumberOfLines = 2,\n titleEllipsizeMode,\n descriptionEllipsizeMode,\n descriptionStyle,\n descriptionMaxFontSizeMultiplier,\n titleMaxFontSizeMultiplier,\n testID,\n ...rest\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const [alignToTop, setAlignToTop] = React.useState(false);\n const onDescriptionTextLayout = event => {\n if (!theme.isV3) {\n return;\n }\n const {\n nativeEvent\n } = event;\n setAlignToTop(nativeEvent.lines.length >= 2);\n };\n const renderDescription = (descriptionColor, description) => {\n return typeof description === 'function' ? description({\n selectable: false,\n ellipsizeMode: descriptionEllipsizeMode,\n color: descriptionColor,\n fontSize: styles.description.fontSize\n }) : /*#__PURE__*/React.createElement(Text, {\n selectable: false,\n numberOfLines: descriptionNumberOfLines,\n ellipsizeMode: descriptionEllipsizeMode,\n style: [styles.description, {\n color: descriptionColor\n }, descriptionStyle],\n onTextLayout: onDescriptionTextLayout,\n maxFontSizeMultiplier: descriptionMaxFontSizeMultiplier\n }, description);\n };\n const renderTitle = () => {\n const titleColor = theme.isV3 ? theme.colors.onSurface : color(theme.colors.text).alpha(0.87).rgb().string();\n return typeof title === 'function' ? title({\n selectable: false,\n ellipsizeMode: titleEllipsizeMode,\n color: titleColor,\n fontSize: styles.title.fontSize\n }) : /*#__PURE__*/React.createElement(Text, {\n selectable: false,\n ellipsizeMode: titleEllipsizeMode,\n numberOfLines: titleNumberOfLines,\n style: [styles.title, {\n color: titleColor\n }, titleStyle],\n maxFontSizeMultiplier: titleMaxFontSizeMultiplier\n }, title);\n };\n const descriptionColor = theme.isV3 ? theme.colors.onSurfaceVariant : color(theme.colors.text).alpha(0.54).rgb().string();\n return /*#__PURE__*/React.createElement(TouchableRipple, _extends({}, rest, {\n ref: ref,\n style: [theme.isV3 ? styles.containerV3 : styles.container, style],\n onPress: onPress,\n theme: theme,\n testID: testID\n }), /*#__PURE__*/React.createElement(View, {\n style: theme.isV3 ? styles.rowV3 : styles.row\n }, left ? left({\n color: descriptionColor,\n style: getLeftStyles(alignToTop, description, theme.isV3)\n }) : null, /*#__PURE__*/React.createElement(View, {\n style: [theme.isV3 ? styles.itemV3 : styles.item, styles.content, contentStyle],\n testID: `${testID}-content`\n }, renderTitle(), description ? renderDescription(descriptionColor, description) : null), right ? right({\n color: descriptionColor,\n style: getRightStyles(alignToTop, description, theme.isV3)\n }) : null));\n};\nconst Component = forwardRef(ListItem);\nComponent.displayName = 'List.Item';\nconst styles = StyleSheet.create({\n container: {\n padding: 8\n },\n containerV3: {\n paddingVertical: 8,\n paddingRight: 24\n },\n row: {\n width: '100%',\n flexDirection: 'row'\n },\n rowV3: {\n width: '100%',\n flexDirection: 'row',\n marginVertical: 6\n },\n title: {\n fontSize: 16\n },\n description: {\n fontSize: 14\n },\n item: {\n marginVertical: 6,\n paddingLeft: 8\n },\n itemV3: {\n paddingLeft: 16\n },\n content: {\n flexShrink: 1,\n flexGrow: 1,\n justifyContent: 'center'\n }\n});\nexport default Component;\n//# sourceMappingURL=ListItem.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { StyleSheet } from 'react-native';\nimport color from 'color';\nimport { useInternalTheme } from '../../core/theming';\nimport Text from '../Typography/Text';\n/**\n * A component used to display a header in lists.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { List } from 'react-native-paper';\n *\n * const MyComponent = () => My List Title;\n *\n * export default MyComponent;\n * ```\n */\nconst ListSubheader = _ref => {\n let {\n style,\n theme: overrideTheme,\n maxFontSizeMultiplier,\n ...rest\n } = _ref;\n const theme = useInternalTheme(overrideTheme);\n const textColor = theme.isV3 ? theme.colors.onSurfaceVariant : color(theme.colors.text).alpha(0.54).rgb().string();\n const font = theme.isV3 ? theme.fonts.bodyMedium : theme.fonts.medium;\n return /*#__PURE__*/React.createElement(Text, _extends({\n variant: \"bodyMedium\",\n numberOfLines: 1,\n maxFontSizeMultiplier: maxFontSizeMultiplier\n }, rest, {\n style: [styles.container, {\n color: textColor,\n ...font\n }, style]\n }));\n};\nListSubheader.displayName = 'List.Subheader';\nconst styles = StyleSheet.create({\n container: {\n paddingHorizontal: 16,\n paddingVertical: 13\n }\n});\nexport default ListSubheader;\n//# sourceMappingURL=ListSubheader.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport ListSubheader from './ListSubheader';\nimport { useInternalTheme } from '../../core/theming';\n/**\n * A component used to group list items.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { List, MD3Colors } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * \n * Some title\n * } />\n * }\n * />\n * \n * );\n *\n * export default MyComponent;\n * ```\n */\nconst ListSection = _ref => {\n let {\n children,\n title,\n titleStyle,\n style,\n theme: themeOverrides,\n ...rest\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const viewProps = {\n ...rest,\n theme\n };\n return /*#__PURE__*/React.createElement(View, _extends({}, viewProps, {\n style: [styles.container, style]\n }), title ? /*#__PURE__*/React.createElement(ListSubheader, {\n style: titleStyle,\n theme: theme\n }, title) : null, children);\n};\nListSection.displayName = 'List.Section';\nconst styles = StyleSheet.create({\n container: {\n marginVertical: 8\n }\n});\nexport default ListSection;\n//# sourceMappingURL=ListSection.js.map","import * as React from 'react';\nimport { StyleSheet, Image } from 'react-native';\nimport { useInternalTheme } from '../../core/theming';\n/**\n * A component to show image in a list item.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { List, MD3Colors } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * <>\n * \n * \n * \n * );\n *\n * export default MyComponent;\n * ```\n */\nconst ListImage = _ref => {\n let {\n style,\n source,\n variant = 'image',\n theme: themeOverrides\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const getStyles = () => {\n if (variant === 'video') {\n if (!theme.isV3) {\n return [style, styles.video];\n }\n return [style, styles.videoV3];\n }\n return [style, styles.image];\n };\n return /*#__PURE__*/React.createElement(Image, {\n style: getStyles(),\n source: source,\n accessibilityIgnoresInvertColors: true,\n testID: \"list-image\"\n });\n};\nconst styles = StyleSheet.create({\n image: {\n width: 56,\n height: 56\n },\n video: {\n width: 100,\n height: 64,\n marginLeft: 0\n },\n videoV3: {\n width: 114,\n height: 64,\n marginLeft: 0\n }\n});\nListImage.displayName = 'List.Image';\nexport default ListImage;\n//# sourceMappingURL=ListImage.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { Animated, StyleSheet, View } from 'react-native';\nimport useLatestCallback from 'use-latest-callback';\nimport Button from './Button/Button';\nimport Icon from './Icon';\nimport Surface from './Surface';\nimport Text from './Typography/Text';\nimport { useInternalTheme } from '../core/theming';\nconst DEFAULT_MAX_WIDTH = 960;\n/**\n * Banner displays a prominent message and related actions.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Image } from 'react-native';\n * import { Banner } from 'react-native-paper';\n *\n * const MyComponent = () => {\n * const [visible, setVisible] = React.useState(true);\n *\n * return (\n * setVisible(false),\n * },\n * {\n * label: 'Learn more',\n * onPress: () => setVisible(false),\n * },\n * ]}\n * icon={({size}) => (\n * \n * )}>\n * There was a problem processing a transaction on your credit card.\n * \n * );\n * };\n *\n * export default MyComponent;\n * ```\n */\nconst Banner = _ref => {\n let {\n visible,\n icon,\n children,\n actions = [],\n contentStyle,\n elevation = 1,\n style,\n theme: themeOverrides,\n onShowAnimationFinished = () => {},\n onHideAnimationFinished = () => {},\n maxFontSizeMultiplier,\n ...rest\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const {\n current: position\n } = React.useRef(new Animated.Value(visible ? 1 : 0));\n const [layout, setLayout] = React.useState({\n height: 0,\n measured: false\n });\n const showCallback = useLatestCallback(onShowAnimationFinished);\n const hideCallback = useLatestCallback(onHideAnimationFinished);\n const {\n scale\n } = theme.animation;\n const opacity = position.interpolate({\n inputRange: [0, 0.1, 1],\n outputRange: [0, 1, 1]\n });\n React.useEffect(() => {\n if (visible) {\n // show\n Animated.timing(position, {\n duration: 250 * scale,\n toValue: 1,\n useNativeDriver: false\n }).start(showCallback);\n } else {\n // hide\n Animated.timing(position, {\n duration: 200 * scale,\n toValue: 0,\n useNativeDriver: false\n }).start(hideCallback);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [visible, position, scale]);\n const handleLayout = _ref2 => {\n let {\n nativeEvent\n } = _ref2;\n const {\n height\n } = nativeEvent.layout;\n setLayout({\n height,\n measured: true\n });\n };\n\n // The banner animation has 2 parts:\n // 1. Blank spacer element which animates its height to move the content\n // 2. Actual banner which animates its translateY\n // In initial render, we position everything normally and measure the height of the banner\n // Once we have the height, we apply the height to the spacer and switch the banner to position: absolute\n // We need this because we need to move the content below as if banner's height was being animated\n // However we can't animated banner's height directly as it'll also resize the content inside\n const height = Animated.multiply(position, layout.height);\n const translateY = Animated.multiply(Animated.add(position, -1), layout.height);\n return /*#__PURE__*/React.createElement(Surface, _extends({}, rest, {\n style: [!theme.isV3 && styles.elevation, {\n opacity\n }, style],\n theme: theme\n }, theme.isV3 && {\n elevation\n }), /*#__PURE__*/React.createElement(View, {\n style: [styles.wrapper, contentStyle]\n }, /*#__PURE__*/React.createElement(Animated.View, {\n style: {\n height\n }\n }), /*#__PURE__*/React.createElement(Animated.View, {\n onLayout: handleLayout,\n style: [layout.measured || !visible ?\n // If we have measured banner's height or it's invisible,\n // Position it absolutely, the layout will be taken care of the spacer\n [styles.absolute, {\n transform: [{\n translateY\n }]\n }] :\n // Otherwise position it normally\n null, !layout.measured && !visible ?\n // If we haven't measured banner's height yet and it's invisible,\n // hide it with opacity: 0 so user doesn't see it\n styles.transparent : null]\n }, /*#__PURE__*/React.createElement(View, {\n style: styles.content\n }, icon ? /*#__PURE__*/React.createElement(View, {\n style: styles.icon\n }, /*#__PURE__*/React.createElement(Icon, {\n source: icon,\n size: 40\n })) : null, /*#__PURE__*/React.createElement(Text, {\n style: [styles.message, {\n color: theme.isV3 ? theme.colors.onSurface : theme.colors.text\n }],\n accessibilityLiveRegion: visible ? 'polite' : 'none',\n accessibilityRole: \"alert\",\n maxFontSizeMultiplier: maxFontSizeMultiplier\n }, children)), /*#__PURE__*/React.createElement(View, {\n style: styles.actions\n }, actions.map((_ref3, i) => {\n var _theme$colors;\n let {\n label,\n ...others\n } = _ref3;\n return /*#__PURE__*/React.createElement(Button, _extends({\n key: /* eslint-disable-line react/no-array-index-key */i,\n compact: true,\n mode: \"text\",\n style: styles.button,\n textColor: (_theme$colors = theme.colors) === null || _theme$colors === void 0 ? void 0 : _theme$colors.primary,\n theme: theme\n }, others), label);\n })))));\n};\nconst styles = StyleSheet.create({\n wrapper: {\n overflow: 'hidden',\n alignSelf: 'center',\n width: '100%',\n maxWidth: DEFAULT_MAX_WIDTH\n },\n absolute: {\n position: 'absolute',\n top: 0,\n width: '100%'\n },\n content: {\n flexDirection: 'row',\n justifyContent: 'flex-start',\n marginHorizontal: 8,\n marginTop: 16,\n marginBottom: 0\n },\n icon: {\n margin: 8\n },\n message: {\n flex: 1,\n margin: 8\n },\n actions: {\n flexDirection: 'row',\n justifyContent: 'flex-end',\n margin: 4\n },\n button: {\n margin: 4\n },\n elevation: {\n elevation: 1\n },\n transparent: {\n opacity: 0\n }\n});\nexport default Banner;\n//# sourceMappingURL=Banner.js.map","import color from 'color';\nexport const getActiveTintColor = _ref => {\n let {\n activeColor,\n defaultColor,\n theme\n } = _ref;\n if (typeof activeColor === 'string') {\n return activeColor;\n }\n if (theme.isV3) {\n return theme.colors.onSecondaryContainer;\n }\n return defaultColor;\n};\nexport const getInactiveTintColor = _ref2 => {\n let {\n inactiveColor,\n defaultColor,\n theme\n } = _ref2;\n if (typeof inactiveColor === 'string') {\n return inactiveColor;\n }\n if (theme.isV3) {\n return theme.colors.onSurfaceVariant;\n }\n return color(defaultColor).alpha(0.5).rgb().string();\n};\nexport const getLabelColor = _ref3 => {\n let {\n tintColor,\n hasColor,\n focused,\n defaultColor,\n theme\n } = _ref3;\n if (hasColor) {\n return tintColor;\n }\n if (theme.isV3) {\n if (focused) {\n return theme.colors.onSurface;\n }\n return theme.colors.onSurfaceVariant;\n }\n return defaultColor;\n};\n//# sourceMappingURL=utils.js.map","import * as React from 'react';\nimport { Animated } from 'react-native';\nexport default function useAnimatedValueArray(initialValues) {\n const refs = React.useRef([]);\n refs.current.length = initialValues.length;\n initialValues.forEach((initialValue, i) => {\n refs.current[i] = refs.current[i] ?? new Animated.Value(initialValue);\n });\n return refs.current;\n}\n//# sourceMappingURL=useAnimatedValueArray.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { Animated, Platform, StyleSheet, Pressable, View } from 'react-native';\nimport color from 'color';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\nimport { getActiveTintColor, getInactiveTintColor, getLabelColor } from './utils';\nimport { useInternalTheme } from '../../core/theming';\nimport overlay from '../../styles/overlay';\nimport { black, white } from '../../styles/themes/v2/colors';\nimport useAnimatedValue from '../../utils/useAnimatedValue';\nimport useAnimatedValueArray from '../../utils/useAnimatedValueArray';\nimport useIsKeyboardShown from '../../utils/useIsKeyboardShown';\nimport useLayout from '../../utils/useLayout';\nimport Badge from '../Badge';\nimport Icon from '../Icon';\nimport Surface from '../Surface';\nimport TouchableRipple from '../TouchableRipple/TouchableRipple';\nimport Text from '../Typography/Text';\nconst MIN_RIPPLE_SCALE = 0.001; // Minimum scale is not 0 due to bug with animation\nconst MIN_TAB_WIDTH = 96;\nconst MAX_TAB_WIDTH = 168;\nconst BAR_HEIGHT = 56;\nconst OUTLINE_WIDTH = 64;\nconst Touchable = _ref => {\n let {\n route: _0,\n style,\n children,\n borderless,\n centered,\n rippleColor,\n ...rest\n } = _ref;\n return TouchableRipple.supported ? /*#__PURE__*/React.createElement(TouchableRipple, _extends({}, rest, {\n disabled: rest.disabled || undefined,\n borderless: borderless,\n centered: centered,\n rippleColor: rippleColor,\n style: style\n }), children) : /*#__PURE__*/React.createElement(Pressable, _extends({\n style: style\n }, rest), children);\n};\n\n/**\n * A navigation bar which can easily be integrated with [React Navigation's Bottom Tabs Navigator](https://reactnavigation.org/docs/bottom-tab-navigator/).\n *\n * ## Usage\n * ```js\n * import React from 'react';\n * import { View, StyleSheet } from 'react-native';\n *\n * import { CommonActions } from '@react-navigation/native';\n * import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';\n * import { Text, BottomNavigation } from 'react-native-paper';\n * import Icon from 'react-native-vector-icons/MaterialCommunityIcons';\n *\n * const Tab = createBottomTabNavigator();\n *\n * export default function MyComponent() {\n * return (\n * (\n * {\n * const event = navigation.emit({\n * type: 'tabPress',\n * target: route.key,\n * canPreventDefault: true,\n * });\n *\n * if (event.defaultPrevented) {\n * preventDefault();\n * } else {\n * navigation.dispatch({\n * ...CommonActions.navigate(route.name, route.params),\n * target: state.key,\n * });\n * }\n * }}\n * renderIcon={({ route, focused, color }) => {\n * const { options } = descriptors[route.key];\n * if (options.tabBarIcon) {\n * return options.tabBarIcon({ focused, color, size: 24 });\n * }\n *\n * return null;\n * }}\n * getLabelText={({ route }) => {\n * const { options } = descriptors[route.key];\n * const label =\n * options.tabBarLabel !== undefined\n * ? options.tabBarLabel\n * : options.title !== undefined\n * ? options.title\n * : route.title;\n *\n * return label;\n * }}\n * />\n * )}\n * >\n * {\n * return ;\n * },\n * }}\n * />\n * {\n * return ;\n * },\n * }}\n * />\n * \n * );\n * }\n *\n * function HomeScreen() {\n * return (\n * \n * Home!\n * \n * );\n * }\n *\n * function SettingsScreen() {\n * return (\n * \n * Settings!\n * \n * );\n * }\n *\n * const styles = StyleSheet.create({\n * container: {\n * flex: 1,\n * justifyContent: 'center',\n * alignItems: 'center',\n * },\n * });\n * ```\n */\nconst BottomNavigationBar = _ref2 => {\n let {\n navigationState,\n renderIcon,\n renderLabel,\n renderTouchable = props => /*#__PURE__*/React.createElement(Touchable, props),\n getLabelText = _ref3 => {\n let {\n route\n } = _ref3;\n return route.title;\n },\n getBadge = _ref4 => {\n let {\n route\n } = _ref4;\n return route.badge;\n },\n getColor = _ref5 => {\n let {\n route\n } = _ref5;\n return route.color;\n },\n getAccessibilityLabel = _ref6 => {\n let {\n route\n } = _ref6;\n return route.accessibilityLabel;\n },\n getTestID = _ref7 => {\n let {\n route\n } = _ref7;\n return route.testID;\n },\n activeColor,\n inactiveColor,\n keyboardHidesNavigationBar = Platform.OS === 'android',\n style,\n activeIndicatorStyle,\n labeled = true,\n animationEasing,\n onTabPress,\n onTabLongPress,\n shifting: shiftingProp,\n safeAreaInsets,\n labelMaxFontSizeMultiplier = 1,\n compact: compactProp,\n testID = 'bottom-navigation-bar',\n theme: themeOverrides\n } = _ref2;\n const theme = useInternalTheme(themeOverrides);\n const {\n bottom,\n left,\n right\n } = useSafeAreaInsets();\n const {\n scale\n } = theme.animation;\n const compact = compactProp ?? !theme.isV3;\n let shifting = shiftingProp ?? (theme.isV3 ? false : navigationState.routes.length > 3);\n if (shifting && navigationState.routes.length < 2) {\n shifting = false;\n console.warn('BottomNavigation.Bar needs at least 2 tabs to run shifting animation');\n }\n\n /**\n * Visibility of the navigation bar, visible state is 1 and invisible is 0.\n */\n const visibleAnim = useAnimatedValue(1);\n\n /**\n * Active state of individual tab items, active state is 1 and inactive state is 0.\n */\n const tabsAnims = useAnimatedValueArray(navigationState.routes.map(\n // focused === 1, unfocused === 0\n (_, i) => i === navigationState.index ? 1 : 0));\n\n /**\n * Index of the currently active tab. Used for setting the background color.\n * We don't use the color as an animated value directly, because `setValue` seems to be buggy with colors?.\n */\n const indexAnim = useAnimatedValue(navigationState.index);\n\n /**\n * Animation for the background color ripple, used to determine it's scale and opacity.\n */\n const rippleAnim = useAnimatedValue(MIN_RIPPLE_SCALE);\n\n /**\n * Layout of the navigation bar. The width is used to determine the size and position of the ripple.\n */\n const [layout, onLayout] = useLayout();\n\n /**\n * Track whether the keyboard is visible to show and hide the navigation bar.\n */\n const [keyboardVisible, setKeyboardVisible] = React.useState(false);\n const handleKeyboardShow = React.useCallback(() => {\n setKeyboardVisible(true);\n Animated.timing(visibleAnim, {\n toValue: 0,\n duration: 150 * scale,\n useNativeDriver: true\n }).start();\n }, [scale, visibleAnim]);\n const handleKeyboardHide = React.useCallback(() => {\n Animated.timing(visibleAnim, {\n toValue: 1,\n duration: 100 * scale,\n useNativeDriver: true\n }).start(() => {\n setKeyboardVisible(false);\n });\n }, [scale, visibleAnim]);\n const animateToIndex = React.useCallback(index => {\n // Reset the ripple to avoid glitch if it's currently animating\n rippleAnim.setValue(MIN_RIPPLE_SCALE);\n Animated.parallel([Animated.timing(rippleAnim, {\n toValue: 1,\n duration: theme.isV3 || shifting ? 400 * scale : 0,\n useNativeDriver: true\n }), ...navigationState.routes.map((_, i) => Animated.timing(tabsAnims[i], {\n toValue: i === index ? 1 : 0,\n duration: theme.isV3 || shifting ? 150 * scale : 0,\n useNativeDriver: true,\n easing: animationEasing\n }))]).start(() => {\n // Workaround a bug in native animations where this is reset after first animation\n tabsAnims.map((tab, i) => tab.setValue(i === index ? 1 : 0));\n\n // Update the index to change bar's background color and then hide the ripple\n indexAnim.setValue(index);\n rippleAnim.setValue(MIN_RIPPLE_SCALE);\n });\n }, [rippleAnim, theme.isV3, shifting, scale, navigationState.routes, tabsAnims, animationEasing, indexAnim]);\n React.useEffect(() => {\n // Workaround for native animated bug in react-native@^0.57\n // Context: https://github.com/callstack/react-native-paper/pull/637\n animateToIndex(navigationState.index);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n useIsKeyboardShown({\n onShow: handleKeyboardShow,\n onHide: handleKeyboardHide\n });\n React.useEffect(() => {\n animateToIndex(navigationState.index);\n }, [navigationState.index, animateToIndex]);\n const eventForIndex = index => {\n const event = {\n route: navigationState.routes[index],\n defaultPrevented: false,\n preventDefault: () => {\n event.defaultPrevented = true;\n }\n };\n return event;\n };\n const {\n routes\n } = navigationState;\n const {\n colors,\n dark: isDarkTheme,\n mode,\n isV3\n } = theme;\n const {\n backgroundColor: customBackground,\n elevation = 4\n } = StyleSheet.flatten(style) || {};\n const approxBackgroundColor = customBackground ? customBackground : isDarkTheme && mode === 'adaptive' ? overlay(elevation, colors === null || colors === void 0 ? void 0 : colors.surface) : colors === null || colors === void 0 ? void 0 : colors.primary;\n const v2BackgroundColorInterpolation = shifting ? indexAnim.interpolate({\n inputRange: routes.map((_, i) => i),\n // FIXME: does outputRange support ColorValue or just strings?\n // @ts-expect-error\n outputRange: routes.map(route => getColor({\n route\n }) || approxBackgroundColor)\n }) : approxBackgroundColor;\n const backgroundColor = isV3 ? customBackground || theme.colors.elevation.level2 : shifting ? v2BackgroundColorInterpolation : approxBackgroundColor;\n const isDark = typeof approxBackgroundColor === 'string' ? !color(approxBackgroundColor).isLight() : true;\n const textColor = isDark ? white : black;\n const activeTintColor = getActiveTintColor({\n activeColor,\n defaultColor: textColor,\n theme\n });\n const inactiveTintColor = getInactiveTintColor({\n inactiveColor,\n defaultColor: textColor,\n theme\n });\n const touchColor = color(activeTintColor).alpha(0.12).rgb().string();\n const maxTabWidth = routes.length > 3 ? MIN_TAB_WIDTH : MAX_TAB_WIDTH;\n const maxTabBarWidth = maxTabWidth * routes.length;\n const rippleSize = layout.width / 4;\n const insets = {\n left: (safeAreaInsets === null || safeAreaInsets === void 0 ? void 0 : safeAreaInsets.left) ?? left,\n right: (safeAreaInsets === null || safeAreaInsets === void 0 ? void 0 : safeAreaInsets.right) ?? right,\n bottom: (safeAreaInsets === null || safeAreaInsets === void 0 ? void 0 : safeAreaInsets.bottom) ?? bottom\n };\n return /*#__PURE__*/React.createElement(Surface, _extends({}, theme.isV3 && {\n elevation: 0\n }, {\n testID: testID,\n style: [!theme.isV3 && styles.elevation, styles.bar, keyboardHidesNavigationBar // eslint-disable-next-line react-native/no-inline-styles\n ? {\n // When the keyboard is shown, slide down the navigation bar\n transform: [{\n translateY: visibleAnim.interpolate({\n inputRange: [0, 1],\n outputRange: [layout.height, 0]\n })\n }],\n // Absolutely position the navigation bar so that the content is below it\n // This is needed to avoid gap at bottom when the navigation bar is hidden\n position: keyboardVisible ? 'absolute' : undefined\n } : null, style],\n pointerEvents: layout.measured ? keyboardHidesNavigationBar && keyboardVisible ? 'none' : 'auto' : 'none',\n onLayout: onLayout\n }), /*#__PURE__*/React.createElement(Animated.View, {\n style: [styles.barContent, {\n backgroundColor\n }],\n testID: `${testID}-content`\n }, /*#__PURE__*/React.createElement(View, {\n style: [styles.items, {\n marginBottom: insets.bottom,\n marginHorizontal: Math.max(insets.left, insets.right)\n }, compact && {\n maxWidth: maxTabBarWidth\n }],\n accessibilityRole: 'tablist',\n testID: `${testID}-content-wrapper`\n }, shifting && !isV3 ? /*#__PURE__*/React.createElement(Animated.View, {\n pointerEvents: \"none\",\n style: [styles.ripple, {\n // Since we have a single ripple, we have to reposition it so that it appears to expand from active tab.\n // We need to move it from the top to center of the navigation bar and from the left to the active tab.\n top: (BAR_HEIGHT - rippleSize) / 2,\n left: Math.min(layout.width, maxTabBarWidth) / routes.length * (navigationState.index + 0.5) - rippleSize / 2,\n height: rippleSize,\n width: rippleSize,\n borderRadius: rippleSize / 2,\n backgroundColor: getColor({\n route: routes[navigationState.index]\n }),\n transform: [{\n // Scale to twice the size to ensure it covers the whole navigation bar\n scale: rippleAnim.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 8]\n })\n }],\n opacity: rippleAnim.interpolate({\n inputRange: [0, MIN_RIPPLE_SCALE, 0.3, 1],\n outputRange: [0, 0, 1, 1]\n })\n }],\n testID: `${testID}-content-ripple`\n }) : null, routes.map((route, index) => {\n const focused = navigationState.index === index;\n const active = tabsAnims[index];\n\n // Scale the label up\n const scale = labeled && shifting ? active.interpolate({\n inputRange: [0, 1],\n outputRange: [0.5, 1]\n }) : 1;\n\n // Move down the icon to account for no-label in shifting and smaller label in non-shifting.\n const translateY = labeled ? shifting ? active.interpolate({\n inputRange: [0, 1],\n outputRange: [7, 0]\n }) : 0 : 7;\n\n // We render the active icon and label on top of inactive ones and cross-fade them on change.\n // This trick gives the illusion that we are animating between active and inactive colors.\n // This is to ensure that we can use native driver, as colors cannot be animated with native driver.\n const activeOpacity = active;\n const inactiveOpacity = active.interpolate({\n inputRange: [0, 1],\n outputRange: [1, 0]\n });\n const v3ActiveOpacity = focused ? 1 : 0;\n const v3InactiveOpacity = shifting ? inactiveOpacity : focused ? 0 : 1;\n\n // Scale horizontally the outline pill\n const outlineScale = focused ? active.interpolate({\n inputRange: [0, 1],\n outputRange: [0.5, 1]\n }) : 0;\n const badge = getBadge({\n route\n });\n const activeLabelColor = getLabelColor({\n tintColor: activeTintColor,\n hasColor: Boolean(activeColor),\n focused,\n defaultColor: textColor,\n theme\n });\n const inactiveLabelColor = getLabelColor({\n tintColor: inactiveTintColor,\n hasColor: Boolean(inactiveColor),\n focused,\n defaultColor: textColor,\n theme\n });\n const badgeStyle = {\n top: !isV3 ? -2 : typeof badge === 'boolean' ? 4 : 2,\n right: (badge != null && typeof badge !== 'boolean' ? String(badge).length * -2 : 0) - (!isV3 ? 2 : 0)\n };\n const isV3Shifting = isV3 && shifting && labeled;\n const font = isV3 ? theme.fonts.labelMedium : {};\n return renderTouchable({\n key: route.key,\n route,\n borderless: true,\n centered: true,\n rippleColor: isV3 ? 'transparent' : touchColor,\n onPress: () => onTabPress(eventForIndex(index)),\n onLongPress: () => onTabLongPress === null || onTabLongPress === void 0 ? void 0 : onTabLongPress(eventForIndex(index)),\n testID: getTestID({\n route\n }),\n accessibilityLabel: getAccessibilityLabel({\n route\n }),\n accessibilityRole: Platform.OS === 'ios' ? 'button' : 'tab',\n accessibilityState: {\n selected: focused\n },\n style: [styles.item, isV3 && styles.v3Item],\n children: /*#__PURE__*/React.createElement(View, {\n pointerEvents: \"none\",\n style: isV3 && (labeled ? styles.v3TouchableContainer : styles.v3NoLabelContainer)\n }, /*#__PURE__*/React.createElement(Animated.View, {\n style: [styles.iconContainer, isV3 && styles.v3IconContainer, (!isV3 || isV3Shifting) && {\n transform: [{\n translateY\n }]\n }]\n }, isV3 && focused && /*#__PURE__*/React.createElement(Animated.View, {\n style: [styles.outline, {\n transform: [{\n scaleX: outlineScale\n }],\n backgroundColor: theme.colors.secondaryContainer\n }, activeIndicatorStyle]\n }), /*#__PURE__*/React.createElement(Animated.View, {\n style: [styles.iconWrapper, isV3 && styles.v3IconWrapper, {\n opacity: isV3 ? v3ActiveOpacity : activeOpacity\n }]\n }, renderIcon ? renderIcon({\n route,\n focused: true,\n color: activeTintColor\n }) : /*#__PURE__*/React.createElement(Icon, {\n source: route.focusedIcon,\n color: activeTintColor,\n size: 24\n })), /*#__PURE__*/React.createElement(Animated.View, {\n style: [styles.iconWrapper, isV3 && styles.v3IconWrapper, {\n opacity: isV3 ? v3InactiveOpacity : inactiveOpacity\n }]\n }, renderIcon ? renderIcon({\n route,\n focused: false,\n color: inactiveTintColor\n }) : /*#__PURE__*/React.createElement(Icon, {\n source: theme.isV3 && route.unfocusedIcon !== undefined ? route.unfocusedIcon : route.focusedIcon,\n color: inactiveTintColor,\n size: 24\n })), /*#__PURE__*/React.createElement(View, {\n style: [styles.badgeContainer, badgeStyle]\n }, typeof badge === 'boolean' ? /*#__PURE__*/React.createElement(Badge, {\n visible: badge,\n size: isV3 ? 6 : 8\n }) : /*#__PURE__*/React.createElement(Badge, {\n visible: badge != null,\n size: 16\n }, badge))), labeled ? /*#__PURE__*/React.createElement(Animated.View, {\n style: [styles.labelContainer, !isV3 && {\n transform: [{\n scale\n }]\n }]\n }, /*#__PURE__*/React.createElement(Animated.View, {\n style: [styles.labelWrapper, (!isV3 || isV3Shifting) && {\n opacity: activeOpacity\n }]\n }, renderLabel ? renderLabel({\n route,\n focused: true,\n color: activeLabelColor\n }) : /*#__PURE__*/React.createElement(Text, {\n maxFontSizeMultiplier: labelMaxFontSizeMultiplier,\n variant: \"labelMedium\",\n style: [styles.label, {\n color: activeLabelColor,\n ...font\n }]\n }, getLabelText({\n route\n }))), shifting ? null : /*#__PURE__*/React.createElement(Animated.View, {\n style: [styles.labelWrapper, {\n opacity: inactiveOpacity\n }]\n }, renderLabel ? renderLabel({\n route,\n focused: false,\n color: inactiveLabelColor\n }) : /*#__PURE__*/React.createElement(Text, {\n maxFontSizeMultiplier: labelMaxFontSizeMultiplier,\n variant: \"labelMedium\",\n selectable: false,\n style: [styles.label, {\n color: inactiveLabelColor,\n ...font\n }]\n }, getLabelText({\n route\n })))) : !isV3 && /*#__PURE__*/React.createElement(View, {\n style: styles.labelContainer\n }))\n });\n }))));\n};\nBottomNavigationBar.displayName = 'BottomNavigation.Bar';\nexport default BottomNavigationBar;\nconst styles = StyleSheet.create({\n bar: {\n left: 0,\n right: 0,\n bottom: 0\n },\n barContent: {\n alignItems: 'center',\n overflow: 'hidden'\n },\n items: {\n flexDirection: 'row',\n ...(Platform.OS === 'web' ? {\n width: '100%'\n } : null)\n },\n item: {\n flex: 1,\n // Top padding is 6 and bottom padding is 10\n // The extra 4dp bottom padding is offset by label's height\n paddingVertical: 6\n },\n v3Item: {\n paddingVertical: 0\n },\n ripple: {\n position: 'absolute'\n },\n iconContainer: {\n height: 24,\n width: 24,\n marginTop: 2,\n marginHorizontal: 12,\n alignSelf: 'center'\n },\n v3IconContainer: {\n height: 32,\n width: 32,\n marginBottom: 4,\n marginTop: 0,\n justifyContent: 'center'\n },\n iconWrapper: {\n ...StyleSheet.absoluteFillObject,\n alignItems: 'center'\n },\n v3IconWrapper: {\n top: 4\n },\n labelContainer: {\n height: 16,\n paddingBottom: 2\n },\n labelWrapper: {\n ...StyleSheet.absoluteFillObject\n },\n // eslint-disable-next-line react-native/no-color-literals\n label: {\n fontSize: 12,\n height: BAR_HEIGHT,\n textAlign: 'center',\n backgroundColor: 'transparent',\n ...(Platform.OS === 'web' ? {\n whiteSpace: 'nowrap',\n alignSelf: 'center'\n } : null)\n },\n badgeContainer: {\n position: 'absolute',\n left: 0\n },\n v3TouchableContainer: {\n paddingTop: 12,\n paddingBottom: 16\n },\n v3NoLabelContainer: {\n height: 80,\n justifyContent: 'center',\n alignItems: 'center'\n },\n outline: {\n width: OUTLINE_WIDTH,\n height: OUTLINE_WIDTH / 2,\n borderRadius: OUTLINE_WIDTH / 4,\n alignSelf: 'center'\n },\n elevation: {\n elevation: 4\n }\n});\n//# sourceMappingURL=BottomNavigationBar.js.map","import * as React from 'react';\nexport default function useLayout() {\n const [layout, setLayout] = React.useState({\n height: 0,\n width: 0,\n measured: false\n });\n const onLayout = React.useCallback(e => {\n const {\n height,\n width\n } = e.nativeEvent.layout;\n if (height === layout.height && width === layout.width) {\n return;\n }\n setLayout({\n height,\n width,\n measured: true\n });\n }, [layout.height, layout.width]);\n return [layout, onLayout];\n}\n//# sourceMappingURL=useLayout.js.map","import * as React from 'react';\nimport { Keyboard, Platform } from 'react-native';\nexport default function useIsKeyboardShown(_ref) {\n let {\n onShow,\n onHide\n } = _ref;\n React.useEffect(() => {\n let willShowSubscription;\n let willHideSubscription;\n let didShowSubscription;\n let didHideSubscription;\n if (Platform.OS === 'ios') {\n willShowSubscription = Keyboard.addListener('keyboardWillShow', onShow);\n willHideSubscription = Keyboard.addListener('keyboardWillHide', onHide);\n } else {\n didShowSubscription = Keyboard.addListener('keyboardDidShow', onShow);\n didHideSubscription = Keyboard.addListener('keyboardDidHide', onHide);\n }\n return () => {\n if (Platform.OS === 'ios') {\n var _willShowSubscription, _willHideSubscription;\n if ((_willShowSubscription = willShowSubscription) !== null && _willShowSubscription !== void 0 && _willShowSubscription.remove) {\n willShowSubscription.remove();\n } else {\n // @ts-expect-error: We keep deprecated listener remove method for backwards compat with old RN versions\n Keyboard.removeListener('keyboardWillShow', onShow);\n }\n if ((_willHideSubscription = willHideSubscription) !== null && _willHideSubscription !== void 0 && _willHideSubscription.remove) {\n willHideSubscription.remove();\n } else {\n // @ts-expect-error: We keep deprecated listener remove method for backwards compat with old RN versions\n Keyboard.removeListener('keyboardWillHide', onHide);\n }\n } else {\n var _didShowSubscription, _didHideSubscription;\n if ((_didShowSubscription = didShowSubscription) !== null && _didShowSubscription !== void 0 && _didShowSubscription.remove) {\n didShowSubscription.remove();\n } else {\n // @ts-expect-error: We keep deprecated listener remove method for backwards compat with old RN versions\n Keyboard.removeListener('keyboardDidShow', onShow);\n }\n if ((_didHideSubscription = didHideSubscription) !== null && _didHideSubscription !== void 0 && _didHideSubscription.remove) {\n didHideSubscription.remove();\n } else {\n // @ts-expect-error: We keep deprecated listener remove method for backwards compat with old RN versions\n Keyboard.removeListener('keyboardDidHide', onHide);\n }\n }\n };\n }, [onHide, onShow]);\n}\n//# sourceMappingURL=useIsKeyboardShown.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport React from 'react';\nimport { Animated, Platform, View } from 'react-native';\nclass BottomNavigationRouteScreen extends React.Component {\n render() {\n const {\n style,\n index,\n children,\n visibility,\n ...rest\n } = this.props;\n\n // On Web, the unfocused tab screens can still be clicked since they are transparent, but still there\n // Hiding them with `display: none` makes sure that they won't receive clicks\n // We only set it on Web since on native, react-native-pager-view's breaks due to layout changing\n const display = Platform.OS === 'web' ? visibility === 0 ? 'none' : 'flex' : undefined;\n return /*#__PURE__*/React.createElement(View, _extends({\n testID: `RouteScreen: ${index}`,\n style: [style, {\n display\n }]\n }, rest), children);\n }\n}\nexport default Animated.createAnimatedComponent(BottomNavigationRouteScreen);\n//# sourceMappingURL=BottomNavigationRouteScreen.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { Animated, Platform, StyleSheet, View } from 'react-native';\nimport useLatestCallback from 'use-latest-callback';\nimport BottomNavigationBar from './BottomNavigationBar';\nimport BottomNavigationRouteScreen from './BottomNavigationRouteScreen';\nimport { useInternalTheme } from '../../core/theming';\nimport useAnimatedValueArray from '../../utils/useAnimatedValueArray';\nconst FAR_FAR_AWAY = Platform.OS === 'web' ? 0 : 9999;\nconst SceneComponent = /*#__PURE__*/React.memo(_ref => {\n let {\n component,\n ...rest\n } = _ref;\n return /*#__PURE__*/React.createElement(component, rest);\n});\n\n/**\n * BottomNavigation provides quick navigation between top-level views of an app with a bottom navigation bar.\n * It is primarily designed for use on mobile. If you want to use the navigation bar only see [`BottomNavigation.Bar`](BottomNavigationBar).\n *\n * By default BottomNavigation uses primary color as a background, in dark theme with `adaptive` mode it will use surface colour instead.\n * See [Dark Theme](https://callstack.github.io/react-native-paper/docs/guides/theming#dark-theme) for more information.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { BottomNavigation, Text } from 'react-native-paper';\n *\n * const MusicRoute = () => Music;\n *\n * const AlbumsRoute = () => Albums;\n *\n * const RecentsRoute = () => Recents;\n *\n * const NotificationsRoute = () => Notifications;\n *\n * const MyComponent = () => {\n * const [index, setIndex] = React.useState(0);\n * const [routes] = React.useState([\n * { key: 'music', title: 'Favorites', focusedIcon: 'heart', unfocusedIcon: 'heart-outline'},\n * { key: 'albums', title: 'Albums', focusedIcon: 'album' },\n * { key: 'recents', title: 'Recents', focusedIcon: 'history' },\n * { key: 'notifications', title: 'Notifications', focusedIcon: 'bell', unfocusedIcon: 'bell-outline' },\n * ]);\n *\n * const renderScene = BottomNavigation.SceneMap({\n * music: MusicRoute,\n * albums: AlbumsRoute,\n * recents: RecentsRoute,\n * notifications: NotificationsRoute,\n * });\n *\n * return (\n * \n * );\n * };\n *\n * export default MyComponent;\n * ```\n */\nconst BottomNavigation = _ref2 => {\n let {\n navigationState,\n renderScene,\n renderIcon,\n renderLabel,\n renderTouchable,\n getLabelText,\n getBadge,\n getColor,\n getAccessibilityLabel,\n getTestID,\n activeColor,\n inactiveColor,\n keyboardHidesNavigationBar = Platform.OS === 'android',\n barStyle,\n labeled = true,\n style,\n activeIndicatorStyle,\n sceneAnimationEnabled = false,\n sceneAnimationType = 'opacity',\n sceneAnimationEasing,\n onTabPress,\n onTabLongPress,\n onIndexChange,\n shifting: shiftingProp,\n safeAreaInsets,\n labelMaxFontSizeMultiplier = 1,\n compact: compactProp,\n testID = 'bottom-navigation',\n theme: themeOverrides,\n getLazy = _ref3 => {\n let {\n route\n } = _ref3;\n return route.lazy;\n }\n } = _ref2;\n const theme = useInternalTheme(themeOverrides);\n const {\n scale\n } = theme.animation;\n const compact = compactProp ?? !theme.isV3;\n let shifting = shiftingProp ?? (theme.isV3 ? false : navigationState.routes.length > 3);\n if (shifting && navigationState.routes.length < 2) {\n shifting = false;\n console.warn('BottomNavigation needs at least 2 tabs to run shifting animation');\n }\n const focusedKey = navigationState.routes[navigationState.index].key;\n\n /**\n * Active state of individual tab item positions:\n * -1 if they're before the active tab, 0 if they're active, 1 if they're after the active tab\n */\n const tabsPositionAnims = useAnimatedValueArray(navigationState.routes.map((_, i) => i === navigationState.index ? 0 : i >= navigationState.index ? 1 : -1));\n\n /**\n * The top offset for each tab item to position it offscreen.\n * Placing items offscreen helps to save memory usage for inactive screens with removeClippedSubviews.\n * We use animated values for this to prevent unnecessary re-renders.\n */\n const offsetsAnims = useAnimatedValueArray(navigationState.routes.map(\n // offscreen === 1, normal === 0\n (_, i) => i === navigationState.index ? 0 : 1));\n\n /**\n * List of loaded tabs, tabs will be loaded when navigated to.\n */\n const [loaded, setLoaded] = React.useState([focusedKey]);\n if (!loaded.includes(focusedKey)) {\n // Set the current tab to be loaded if it was not loaded before\n setLoaded(loaded => [...loaded, focusedKey]);\n }\n const animateToIndex = React.useCallback(index => {\n Animated.parallel([...navigationState.routes.map((_, i) => Animated.timing(tabsPositionAnims[i], {\n toValue: i === index ? 0 : i >= index ? 1 : -1,\n duration: theme.isV3 || shifting ? 150 * scale : 0,\n useNativeDriver: true,\n easing: sceneAnimationEasing\n }))]).start(_ref4 => {\n let {\n finished\n } = _ref4;\n if (finished) {\n // Position all inactive screens offscreen to save memory usage\n // Only do it when animation has finished to avoid glitches mid-transition if switching fast\n offsetsAnims.forEach((offset, i) => {\n if (i === index) {\n offset.setValue(0);\n } else {\n offset.setValue(1);\n }\n });\n }\n });\n }, [shifting, navigationState.routes, offsetsAnims, scale, tabsPositionAnims, sceneAnimationEasing, theme]);\n React.useEffect(() => {\n // Workaround for native animated bug in react-native@^0.57\n // Context: https://github.com/callstack/react-native-paper/pull/637\n animateToIndex(navigationState.index);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n const prevNavigationState = React.useRef();\n React.useEffect(() => {\n // Reset offsets of previous and current tabs before animation\n offsetsAnims.forEach((offset, i) => {\n var _prevNavigationState$;\n if (i === navigationState.index || i === ((_prevNavigationState$ = prevNavigationState.current) === null || _prevNavigationState$ === void 0 ? void 0 : _prevNavigationState$.index)) {\n offset.setValue(0);\n }\n });\n animateToIndex(navigationState.index);\n }, [navigationState.index, animateToIndex, offsetsAnims]);\n const handleTabPress = useLatestCallback(event => {\n onTabPress === null || onTabPress === void 0 ? void 0 : onTabPress(event);\n if (event.defaultPrevented) {\n return;\n }\n const index = navigationState.routes.findIndex(route => event.route.key === route.key);\n if (index !== navigationState.index) {\n prevNavigationState.current = navigationState;\n onIndexChange(index);\n }\n });\n const jumpTo = useLatestCallback(key => {\n const index = navigationState.routes.findIndex(route => route.key === key);\n prevNavigationState.current = navigationState;\n onIndexChange(index);\n });\n const {\n routes\n } = navigationState;\n const {\n colors\n } = theme;\n return /*#__PURE__*/React.createElement(View, {\n style: [styles.container, style],\n testID: testID\n }, /*#__PURE__*/React.createElement(View, {\n style: [styles.content, {\n backgroundColor: colors === null || colors === void 0 ? void 0 : colors.background\n }]\n }, routes.map((route, index) => {\n var _prevNavigationState$2;\n if (getLazy({\n route\n }) !== false && !loaded.includes(route.key)) {\n // Don't render a screen if we've never navigated to it\n return null;\n }\n const focused = navigationState.index === index;\n const previouslyFocused = ((_prevNavigationState$2 = prevNavigationState.current) === null || _prevNavigationState$2 === void 0 ? void 0 : _prevNavigationState$2.index) === index;\n const countAlphaOffscreen = sceneAnimationEnabled && (focused || previouslyFocused);\n const renderToHardwareTextureAndroid = sceneAnimationEnabled && focused;\n const opacity = sceneAnimationEnabled ? tabsPositionAnims[index].interpolate({\n inputRange: [-1, 0, 1],\n outputRange: [0, 1, 0]\n }) : focused ? 1 : 0;\n const offsetTarget = focused ? 0 : FAR_FAR_AWAY;\n const top = sceneAnimationEnabled ? offsetsAnims[index].interpolate({\n inputRange: [0, 1],\n outputRange: [0, offsetTarget]\n }) : offsetTarget;\n const left = sceneAnimationType === 'shifting' ? tabsPositionAnims[index].interpolate({\n inputRange: [-1, 0, 1],\n outputRange: [-50, 0, 50]\n }) : 0;\n const zIndex = focused ? 1 : 0;\n return /*#__PURE__*/React.createElement(BottomNavigationRouteScreen, {\n key: route.key,\n pointerEvents: focused ? 'auto' : 'none',\n accessibilityElementsHidden: !focused,\n importantForAccessibility: focused ? 'auto' : 'no-hide-descendants',\n index: index,\n visibility: opacity,\n style: [StyleSheet.absoluteFill, {\n zIndex\n }],\n collapsable: false,\n removeClippedSubviews:\n // On iOS, set removeClippedSubviews to true only when not focused\n // This is an workaround for a bug where the clipped view never re-appears\n Platform.OS === 'ios' ? navigationState.index !== index : true\n }, /*#__PURE__*/React.createElement(Animated.View, _extends({}, Platform.OS === 'android' && {\n needsOffscreenAlphaCompositing: countAlphaOffscreen\n }, {\n renderToHardwareTextureAndroid: renderToHardwareTextureAndroid,\n style: [styles.content, {\n opacity,\n transform: [{\n translateX: left\n }, {\n translateY: top\n }]\n }]\n }), renderScene({\n route,\n jumpTo\n })));\n })), /*#__PURE__*/React.createElement(BottomNavigationBar, {\n navigationState: navigationState,\n renderIcon: renderIcon,\n renderLabel: renderLabel,\n renderTouchable: renderTouchable,\n getLabelText: getLabelText,\n getBadge: getBadge,\n getColor: getColor,\n getAccessibilityLabel: getAccessibilityLabel,\n getTestID: getTestID,\n activeColor: activeColor,\n inactiveColor: inactiveColor,\n keyboardHidesNavigationBar: keyboardHidesNavigationBar,\n style: barStyle,\n activeIndicatorStyle: activeIndicatorStyle,\n labeled: labeled,\n animationEasing: sceneAnimationEasing,\n onTabPress: handleTabPress,\n onTabLongPress: onTabLongPress,\n shifting: shifting,\n safeAreaInsets: safeAreaInsets,\n labelMaxFontSizeMultiplier: labelMaxFontSizeMultiplier,\n compact: compact,\n testID: `${testID}-bar`,\n theme: theme\n }));\n};\n\n/**\n * Function which takes a map of route keys to components.\n * Pure components are used to minimize re-rendering of the pages.\n * This drastically improves the animation performance.\n */\nBottomNavigation.SceneMap = scenes => {\n return _ref5 => {\n let {\n route,\n jumpTo\n } = _ref5;\n return /*#__PURE__*/React.createElement(SceneComponent, {\n key: route.key,\n component: scenes[route.key ? route.key : ''],\n route: route,\n jumpTo: jumpTo\n });\n };\n};\n\n// @component ./BottomNavigationBar.tsx\nBottomNavigation.Bar = BottomNavigationBar;\nexport default BottomNavigation;\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n overflow: 'hidden'\n },\n content: {\n flex: 1\n }\n});\n//# sourceMappingURL=BottomNavigation.js.map","import { I18nManager } from 'react-native';\nimport color from 'color';\nimport { black, white } from '../../styles/themes/v2/colors';\nimport getContrastingColor from '../../utils/getContrastingColor';\nexport const getCombinedStyles = _ref => {\n let {\n isAnimatedFromRight,\n isIconStatic,\n distance,\n animFAB\n } = _ref;\n const {\n isRTL\n } = I18nManager;\n const defaultPositionStyles = {\n left: -distance,\n right: undefined\n };\n const combinedStyles = {\n innerWrapper: {\n ...defaultPositionStyles\n },\n iconWrapper: {\n ...defaultPositionStyles\n },\n absoluteFill: {}\n };\n const animatedFromRight = isAnimatedFromRight && !isRTL;\n const animatedFromRightRTL = isAnimatedFromRight && isRTL;\n const animatedFromLeft = !isAnimatedFromRight && !isRTL;\n const animatedFromLeftRTL = !isAnimatedFromRight && isRTL;\n if (animatedFromRight) {\n combinedStyles.innerWrapper.transform = [{\n translateX: animFAB.interpolate({\n inputRange: [distance, 0],\n outputRange: [distance, 0]\n })\n }];\n combinedStyles.iconWrapper.transform = [{\n translateX: isIconStatic ? 0 : animFAB\n }];\n combinedStyles.absoluteFill.transform = [{\n translateX: animFAB.interpolate({\n inputRange: [distance, 0],\n outputRange: [Math.abs(distance) / 2, Math.abs(distance)]\n })\n }];\n } else if (animatedFromRightRTL) {\n combinedStyles.iconWrapper.transform = [{\n translateX: isIconStatic ? 0 : animFAB.interpolate({\n inputRange: [distance, 0],\n outputRange: [-distance, 0]\n })\n }];\n combinedStyles.innerWrapper.transform = [{\n translateX: animFAB.interpolate({\n inputRange: [distance, 0],\n outputRange: [-distance, 0]\n })\n }];\n combinedStyles.absoluteFill.transform = [{\n translateX: animFAB.interpolate({\n inputRange: [distance, 0],\n outputRange: [0, distance]\n })\n }];\n } else if (animatedFromLeft) {\n combinedStyles.iconWrapper.transform = [{\n translateX: isIconStatic ? distance : animFAB.interpolate({\n inputRange: [0, distance],\n outputRange: [distance, distance * 2]\n })\n }];\n combinedStyles.innerWrapper.transform = [{\n translateX: animFAB\n }];\n combinedStyles.absoluteFill.transform = [{\n translateX: animFAB.interpolate({\n inputRange: [0, distance],\n outputRange: [0, Math.abs(distance) / 2]\n })\n }];\n } else if (animatedFromLeftRTL) {\n combinedStyles.iconWrapper.transform = [{\n translateX: isIconStatic ? animFAB.interpolate({\n inputRange: [0, distance],\n outputRange: [-distance, -distance * 2]\n }) : -distance\n }];\n combinedStyles.innerWrapper.transform = [{\n translateX: animFAB.interpolate({\n inputRange: [0, distance],\n outputRange: [0, -distance]\n })\n }];\n combinedStyles.absoluteFill.transform = [{\n translateX: animFAB.interpolate({\n inputRange: [0, distance],\n outputRange: [0, -distance]\n })\n }];\n }\n return combinedStyles;\n};\nconst getBackgroundColor = _ref2 => {\n var _theme$colors;\n let {\n theme,\n isVariant,\n disabled,\n customBackgroundColor\n } = _ref2;\n if (customBackgroundColor && !disabled) {\n return customBackgroundColor;\n }\n if (theme.isV3) {\n if (disabled) {\n return theme.colors.surfaceDisabled;\n }\n if (isVariant('primary')) {\n return theme.colors.primaryContainer;\n }\n if (isVariant('secondary')) {\n return theme.colors.secondaryContainer;\n }\n if (isVariant('tertiary')) {\n return theme.colors.tertiaryContainer;\n }\n if (isVariant('surface')) {\n return theme.colors.elevation.level3;\n }\n }\n if (disabled) {\n if (theme.dark) {\n return color(white).alpha(0.12).rgb().string();\n }\n return color(black).alpha(0.12).rgb().string();\n }\n\n //@ts-ignore\n return (_theme$colors = theme.colors) === null || _theme$colors === void 0 ? void 0 : _theme$colors.accent;\n};\nconst getForegroundColor = _ref3 => {\n let {\n theme,\n isVariant,\n disabled,\n backgroundColor,\n customColor\n } = _ref3;\n if (typeof customColor !== 'undefined' && !disabled) {\n return customColor;\n }\n if (theme.isV3) {\n if (disabled) {\n return theme.colors.onSurfaceDisabled;\n }\n if (isVariant('primary')) {\n return theme.colors.onPrimaryContainer;\n }\n if (isVariant('secondary')) {\n return theme.colors.onSecondaryContainer;\n }\n if (isVariant('tertiary')) {\n return theme.colors.onTertiaryContainer;\n }\n if (isVariant('surface')) {\n return theme.colors.primary;\n }\n }\n if (disabled) {\n if (theme.dark) {\n return color(white).alpha(0.32).rgb().string();\n }\n return color(black).alpha(0.32).rgb().string();\n }\n if (backgroundColor) {\n return getContrastingColor(backgroundColor || white, white, 'rgba(0, 0, 0, .54)');\n }\n return getContrastingColor(white, white, 'rgba(0, 0, 0, .54)');\n};\nexport const getFABColors = _ref4 => {\n let {\n theme,\n variant,\n disabled,\n customColor,\n customBackgroundColor,\n customRippleColor\n } = _ref4;\n const isVariant = variantToCompare => {\n return variant === variantToCompare;\n };\n const baseFABColorProps = {\n theme,\n isVariant,\n disabled\n };\n const backgroundColor = getBackgroundColor({\n ...baseFABColorProps,\n customBackgroundColor\n });\n const foregroundColor = getForegroundColor({\n ...baseFABColorProps,\n customColor,\n backgroundColor\n });\n return {\n backgroundColor,\n foregroundColor,\n rippleColor: customRippleColor || color(foregroundColor).alpha(0.12).rgb().string()\n };\n};\nconst getLabelColor = _ref5 => {\n let {\n theme\n } = _ref5;\n if (theme.isV3) {\n return theme.colors.onSurface;\n }\n if (theme.dark) {\n return theme.colors.text;\n }\n return color(theme.colors.text).fade(0.54).rgb().string();\n};\nconst getBackdropColor = _ref6 => {\n var _theme$colors2;\n let {\n theme,\n customBackdropColor\n } = _ref6;\n if (customBackdropColor) {\n return customBackdropColor;\n }\n if (theme.isV3) {\n return color(theme.colors.background).alpha(0.95).rgb().string();\n }\n return (_theme$colors2 = theme.colors) === null || _theme$colors2 === void 0 ? void 0 : _theme$colors2.backdrop;\n};\nconst getStackedFABBackgroundColor = _ref7 => {\n let {\n theme\n } = _ref7;\n if (theme.isV3) {\n return theme.colors.elevation.level3;\n }\n return theme.colors.surface;\n};\nexport const getFABGroupColors = _ref8 => {\n let {\n theme,\n customBackdropColor\n } = _ref8;\n return {\n labelColor: getLabelColor({\n theme\n }),\n backdropColor: getBackdropColor({\n theme,\n customBackdropColor\n }),\n stackedFABBackgroundColor: getStackedFABBackgroundColor({\n theme\n })\n };\n};\nconst standardSize = {\n height: 56,\n width: 56,\n borderRadius: 28\n};\nconst smallSize = {\n height: 40,\n width: 40,\n borderRadius: 28\n};\nconst v3SmallSize = {\n height: 40,\n width: 40\n};\nconst v3MediumSize = {\n height: 56,\n width: 56\n};\nconst v3LargeSize = {\n height: 96,\n width: 96\n};\nconst getCustomFabSize = (customSize, roundness) => ({\n height: customSize,\n width: customSize,\n borderRadius: roundness === 0 ? 0 : customSize / roundness\n});\nexport const getFabStyle = _ref9 => {\n let {\n size,\n theme,\n customSize\n } = _ref9;\n const {\n isV3,\n roundness\n } = theme;\n if (customSize) return getCustomFabSize(customSize, roundness);\n if (isV3) {\n switch (size) {\n case 'small':\n return {\n ...v3SmallSize,\n borderRadius: 3 * roundness\n };\n case 'medium':\n return {\n ...v3MediumSize,\n borderRadius: 4 * roundness\n };\n case 'large':\n return {\n ...v3LargeSize,\n borderRadius: 7 * roundness\n };\n }\n }\n if (size === 'small') {\n return smallSize;\n }\n return standardSize;\n};\nconst extended = {\n height: 48,\n paddingHorizontal: 16\n};\nconst v3Extended = {\n height: 56,\n borderRadius: 16,\n paddingHorizontal: 16\n};\nconst getExtendedFabDimensions = customSize => ({\n height: customSize,\n paddingHorizontal: 16\n});\nexport const getExtendedFabStyle = _ref10 => {\n let {\n customSize,\n theme\n } = _ref10;\n if (customSize) return getExtendedFabDimensions(customSize);\n const {\n isV3\n } = theme;\n return isV3 ? v3Extended : extended;\n};\n//# sourceMappingURL=utils.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { Animated, StyleSheet, View } from 'react-native';\nimport { getExtendedFabStyle, getFABColors, getFabStyle } from './utils';\nimport { useInternalTheme } from '../../core/theming';\nimport { forwardRef } from '../../utils/forwardRef';\nimport ActivityIndicator from '../ActivityIndicator';\nimport CrossFadeIcon from '../CrossFadeIcon';\nimport Icon from '../Icon';\nimport Surface from '../Surface';\nimport TouchableRipple from '../TouchableRipple/TouchableRipple';\nimport Text from '../Typography/Text';\n/**\n * A floating action button represents the primary action on a screen. It appears in front of all screen content.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { StyleSheet } from 'react-native';\n * import { FAB } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * console.log('Pressed')}\n * />\n * );\n *\n * const styles = StyleSheet.create({\n * fab: {\n * position: 'absolute',\n * margin: 16,\n * right: 0,\n * bottom: 0,\n * },\n * })\n *\n * export default MyComponent;\n * ```\n */\nconst FAB = forwardRef((_ref, ref) => {\n let {\n icon,\n label,\n background,\n accessibilityLabel = label,\n accessibilityState,\n animated = true,\n color: customColor,\n rippleColor: customRippleColor,\n disabled,\n onPress,\n onLongPress,\n delayLongPress,\n theme: themeOverrides,\n style,\n visible = true,\n uppercase: uppercaseProp,\n loading,\n testID = 'fab',\n size = 'medium',\n customSize,\n mode = 'elevated',\n variant = 'primary',\n labelMaxFontSizeMultiplier,\n ...rest\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const uppercase = uppercaseProp ?? !theme.isV3;\n const {\n current: visibility\n } = React.useRef(new Animated.Value(visible ? 1 : 0));\n const {\n isV3,\n animation\n } = theme;\n const {\n scale\n } = animation;\n React.useEffect(() => {\n if (visible) {\n Animated.timing(visibility, {\n toValue: 1,\n duration: 200 * scale,\n useNativeDriver: true\n }).start();\n } else {\n Animated.timing(visibility, {\n toValue: 0,\n duration: 150 * scale,\n useNativeDriver: true\n }).start();\n }\n }, [visible, scale, visibility]);\n const IconComponent = animated ? CrossFadeIcon : Icon;\n const fabStyle = getFabStyle({\n customSize,\n size,\n theme\n });\n const {\n borderRadius = fabStyle.borderRadius,\n backgroundColor: customBackgroundColor\n } = StyleSheet.flatten(style) || {};\n const {\n backgroundColor,\n foregroundColor,\n rippleColor\n } = getFABColors({\n theme,\n variant,\n disabled,\n customColor,\n customBackgroundColor,\n customRippleColor\n });\n const isLargeSize = size === 'large';\n const isFlatMode = mode === 'flat';\n const iconSize = isLargeSize ? 36 : 24;\n const loadingIndicatorSize = isLargeSize ? 24 : 18;\n const font = isV3 ? theme.fonts.labelLarge : theme.fonts.medium;\n const extendedStyle = getExtendedFabStyle({\n customSize,\n theme\n });\n const textStyle = {\n color: foregroundColor,\n ...font\n };\n const md3Elevation = isFlatMode || disabled ? 0 : 3;\n const newAccessibilityState = {\n ...accessibilityState,\n disabled\n };\n return /*#__PURE__*/React.createElement(Surface, _extends({\n ref: ref\n }, rest, {\n style: [{\n borderRadius,\n backgroundColor,\n opacity: visibility,\n transform: [{\n scale: visibility\n }]\n }, !isV3 && styles.elevated, !isV3 && disabled && styles.disabled, style],\n pointerEvents: visible ? 'auto' : 'none',\n testID: `${testID}-container`\n }, isV3 && {\n elevation: md3Elevation\n }), /*#__PURE__*/React.createElement(TouchableRipple, _extends({\n borderless: true,\n background: background,\n onPress: onPress,\n onLongPress: onLongPress,\n delayLongPress: delayLongPress,\n rippleColor: rippleColor,\n disabled: disabled,\n accessibilityLabel: accessibilityLabel,\n accessibilityRole: \"button\",\n accessibilityState: newAccessibilityState,\n testID: testID,\n style: {\n borderRadius\n }\n }, rest), /*#__PURE__*/React.createElement(View, {\n style: [styles.content, label ? extendedStyle : fabStyle],\n testID: `${testID}-content`,\n pointerEvents: \"none\"\n }, icon && loading !== true ? /*#__PURE__*/React.createElement(IconComponent, {\n source: icon,\n size: customSize ? customSize / 2 : iconSize,\n color: foregroundColor\n }) : null, loading ? /*#__PURE__*/React.createElement(ActivityIndicator, {\n size: customSize ? customSize / 2 : loadingIndicatorSize,\n color: foregroundColor\n }) : null, label ? /*#__PURE__*/React.createElement(Text, {\n variant: \"labelLarge\",\n selectable: false,\n testID: `${testID}-text`,\n style: [styles.label, uppercase && styles.uppercaseLabel, textStyle],\n maxFontSizeMultiplier: labelMaxFontSizeMultiplier\n }, label) : null)));\n});\nconst styles = StyleSheet.create({\n elevated: {\n elevation: 6\n },\n content: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center'\n },\n label: {\n marginHorizontal: 8\n },\n uppercaseLabel: {\n textTransform: 'uppercase'\n },\n disabled: {\n elevation: 0\n }\n});\nexport default FAB;\n\n// @component-docs ignore-next-line\nexport { FAB };\n//# sourceMappingURL=FAB.js.map","import * as React from 'react';\nimport { Animated, Pressable, StyleSheet, View } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\nimport FAB from './FAB';\nimport { getFABGroupColors } from './utils';\nimport { useInternalTheme } from '../../core/theming';\nimport Card from '../Card/Card';\nimport Text from '../Typography/Text';\nconst AnimatedPressable = Animated.createAnimatedComponent(Pressable);\n/**\n * A component to display a stack of FABs with related actions in a speed dial.\n * To render the group above other components, you'll need to wrap it with the [`Portal`](../Portal) component.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { FAB, Portal, PaperProvider } from 'react-native-paper';\n *\n * const MyComponent = () => {\n * const [state, setState] = React.useState({ open: false });\n *\n * const onStateChange = ({ open }) => setState({ open });\n *\n * const { open } = state;\n *\n * return (\n * \n * \n * console.log('Pressed add') },\n * {\n * icon: 'star',\n * label: 'Star',\n * onPress: () => console.log('Pressed star'),\n * },\n * {\n * icon: 'email',\n * label: 'Email',\n * onPress: () => console.log('Pressed email'),\n * },\n * {\n * icon: 'bell',\n * label: 'Remind',\n * onPress: () => console.log('Pressed notifications'),\n * },\n * ]}\n * onStateChange={onStateChange}\n * onPress={() => {\n * if (open) {\n * // do something if the speed dial is open\n * }\n * }}\n * />\n * \n * \n * );\n * };\n *\n * export default MyComponent;\n * ```\n */\nconst FABGroup = _ref => {\n let {\n actions,\n icon,\n open,\n onPress,\n onLongPress,\n toggleStackOnLongPress,\n accessibilityLabel,\n theme: themeOverrides,\n style,\n fabStyle,\n visible,\n label,\n testID,\n onStateChange,\n color: colorProp,\n delayLongPress = 200,\n variant = 'primary',\n enableLongPressWhenStackOpened = false,\n backdropColor: customBackdropColor,\n rippleColor\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const {\n current: backdrop\n } = React.useRef(new Animated.Value(0));\n const animations = React.useRef(actions.map(() => new Animated.Value(open ? 1 : 0)));\n const [prevActions, setPrevActions] = React.useState(null);\n const {\n scale\n } = theme.animation;\n const {\n isV3\n } = theme;\n React.useEffect(() => {\n if (open) {\n Animated.parallel([Animated.timing(backdrop, {\n toValue: 1,\n duration: 250 * scale,\n useNativeDriver: true\n }), Animated.stagger(isV3 ? 15 : 50 * scale, animations.current.map(animation => Animated.timing(animation, {\n toValue: 1,\n duration: 150 * scale,\n useNativeDriver: true\n })).reverse())]).start();\n } else {\n Animated.parallel([Animated.timing(backdrop, {\n toValue: 0,\n duration: 200 * scale,\n useNativeDriver: true\n }), ...animations.current.map(animation => Animated.timing(animation, {\n toValue: 0,\n duration: 150 * scale,\n useNativeDriver: true\n }))]).start();\n }\n }, [open, actions, backdrop, scale, isV3]);\n const close = () => onStateChange({\n open: false\n });\n const toggle = () => onStateChange({\n open: !open\n });\n const {\n labelColor,\n backdropColor,\n stackedFABBackgroundColor\n } = getFABGroupColors({\n theme,\n customBackdropColor\n });\n const backdropOpacity = open ? backdrop.interpolate({\n inputRange: [0, 0.5, 1],\n outputRange: [0, 1, 1]\n }) : backdrop;\n const opacities = animations.current;\n const scales = opacities.map(opacity => open ? opacity.interpolate({\n inputRange: [0, 1],\n outputRange: [0.5, 1]\n }) : 1);\n const translations = opacities.map(opacity => open ? opacity.interpolate({\n inputRange: [0, 1],\n outputRange: [24, -8]\n }) : -8);\n const labelTranslations = opacities.map(opacity => open ? opacity.interpolate({\n inputRange: [0, 1],\n outputRange: [8, -8]\n }) : -8);\n const {\n top,\n bottom,\n right,\n left\n } = useSafeAreaInsets();\n const containerPaddings = {\n paddingBottom: bottom,\n paddingRight: right,\n paddingLeft: left,\n paddingTop: top\n };\n if (actions.length !== (prevActions === null || prevActions === void 0 ? void 0 : prevActions.length)) {\n animations.current = actions.map((_, i) => animations.current[i] || new Animated.Value(open ? 1 : 0));\n setPrevActions(actions);\n }\n return /*#__PURE__*/React.createElement(View, {\n pointerEvents: \"box-none\",\n style: [styles.container, containerPaddings, style]\n }, /*#__PURE__*/React.createElement(AnimatedPressable, {\n accessibilityRole: \"button\",\n onPress: close,\n pointerEvents: open ? 'auto' : 'none',\n style: [styles.backdrop, {\n opacity: backdropOpacity,\n backgroundColor: backdropColor\n }]\n }), /*#__PURE__*/React.createElement(View, {\n pointerEvents: \"box-none\",\n style: styles.safeArea\n }, /*#__PURE__*/React.createElement(View, {\n pointerEvents: open ? 'box-none' : 'none'\n }, actions.map((it, i) => {\n const labelTextStyle = {\n color: it.labelTextColor ?? labelColor,\n ...(isV3 ? theme.fonts.titleMedium : {})\n };\n const marginHorizontal = typeof it.size === 'undefined' || it.size === 'small' ? 24 : 16;\n const accessibilityLabel = typeof it.accessibilityLabel !== 'undefined' ? it.accessibilityLabel : it.label;\n const size = typeof it.size !== 'undefined' ? it.size : 'small';\n return /*#__PURE__*/React.createElement(View, {\n key: i // eslint-disable-line react/no-array-index-key\n ,\n style: [styles.item, {\n marginHorizontal\n }],\n pointerEvents: open ? 'box-none' : 'none',\n accessibilityRole: \"button\",\n importantForAccessibility: \"yes\",\n accessible: true,\n accessibilityLabel: accessibilityLabel\n }, it.label && /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(Card, {\n mode: isV3 ? 'contained' : 'elevated',\n onPress: e => {\n it.onPress(e);\n close();\n },\n accessibilityHint: it.accessibilityHint,\n importantForAccessibility: \"no-hide-descendants\",\n accessibilityElementsHidden: true,\n style: [styles.containerStyle, {\n transform: [isV3 ? {\n translateY: labelTranslations[i]\n } : {\n scale: scales[i]\n }],\n opacity: opacities[i]\n }, isV3 && styles.v3ContainerStyle, it.containerStyle]\n }, /*#__PURE__*/React.createElement(Text, {\n variant: \"titleMedium\",\n importantForAccessibility: \"no-hide-descendants\",\n accessibilityElementsHidden: true,\n style: [labelTextStyle, it.labelStyle],\n maxFontSizeMultiplier: it.labelMaxFontSizeMultiplier\n }, it.label))), /*#__PURE__*/React.createElement(FAB, {\n size: size,\n icon: it.icon,\n color: it.color,\n style: [{\n transform: [{\n scale: scales[i]\n }],\n opacity: opacities[i],\n backgroundColor: stackedFABBackgroundColor\n }, isV3 && {\n transform: [{\n translateY: translations[i]\n }]\n }, it.style],\n accessibilityElementsHidden: true,\n theme: theme,\n onPress: e => {\n it.onPress(e);\n close();\n },\n importantForAccessibility: \"no-hide-descendants\",\n testID: it.testID,\n visible: open,\n rippleColor: it.rippleColor\n }));\n })), /*#__PURE__*/React.createElement(FAB, {\n onPress: e => {\n onPress === null || onPress === void 0 ? void 0 : onPress(e);\n if (!toggleStackOnLongPress || open) {\n toggle();\n }\n },\n onLongPress: e => {\n if (!open || enableLongPressWhenStackOpened) {\n onLongPress === null || onLongPress === void 0 ? void 0 : onLongPress(e);\n if (toggleStackOnLongPress) {\n toggle();\n }\n }\n },\n delayLongPress: delayLongPress,\n icon: icon,\n color: colorProp,\n accessibilityLabel: accessibilityLabel,\n accessibilityRole: \"button\",\n accessibilityState: {\n expanded: open\n },\n style: [styles.fab, fabStyle],\n theme: theme,\n visible: visible,\n label: label,\n testID: testID,\n variant: variant,\n rippleColor: rippleColor\n })));\n};\nFABGroup.displayName = 'FAB.Group';\nexport default FABGroup;\n\n// @component-docs ignore-next-line\nexport { FABGroup };\nconst styles = StyleSheet.create({\n safeArea: {\n alignItems: 'flex-end'\n },\n container: {\n ...StyleSheet.absoluteFillObject,\n justifyContent: 'flex-end'\n },\n fab: {\n marginHorizontal: 16,\n marginBottom: 16,\n marginTop: 0\n },\n backdrop: {\n ...StyleSheet.absoluteFillObject\n },\n containerStyle: {\n borderRadius: 5,\n paddingHorizontal: 12,\n paddingVertical: 6,\n marginVertical: 8,\n marginHorizontal: 16,\n elevation: 2\n },\n item: {\n marginBottom: 16,\n flexDirection: 'row',\n justifyContent: 'flex-end',\n alignItems: 'center'\n },\n // eslint-disable-next-line react-native/no-color-literals\n v3ContainerStyle: {\n backgroundColor: 'transparent',\n elevation: 0\n }\n});\n//# sourceMappingURL=FABGroup.js.map","import FABComponent from './FAB';\nimport FABGroup from './FABGroup';\nconst FAB = Object.assign(\n// @component ./FAB.tsx\nFABComponent, {\n // @component ./FABGroup.tsx\n Group: FABGroup\n});\nexport default FAB;\n//# sourceMappingURL=index.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { Animated, Easing, I18nManager, Platform, ScrollView, StyleSheet, View } from 'react-native';\nimport color from 'color';\nimport { getCombinedStyles, getFABColors } from './utils';\nimport { useInternalTheme } from '../../core/theming';\nimport Icon from '../Icon';\nimport Surface from '../Surface';\nimport TouchableRipple from '../TouchableRipple/TouchableRipple';\nimport AnimatedText from '../Typography/AnimatedText';\nconst SIZE = 56;\nconst SCALE = 0.9;\n\n/**\n * An animated, extending horizontally floating action button represents the primary action in an application.\n *\n * ## Usage\n * ```js\n * import React from 'react';\n * import {\n * StyleProp,\n * ViewStyle,\n * Animated,\n * StyleSheet,\n * Platform,\n * ScrollView,\n * Text,\n * SafeAreaView,\n * I18nManager,\n * } from 'react-native';\n * import { AnimatedFAB } from 'react-native-paper';\n *\n * const MyComponent = ({\n * animatedValue,\n * visible,\n * extended,\n * label,\n * animateFrom,\n * style,\n * iconMode,\n * }) => {\n * const [isExtended, setIsExtended] = React.useState(true);\n *\n * const isIOS = Platform.OS === 'ios';\n *\n * const onScroll = ({ nativeEvent }) => {\n * const currentScrollPosition =\n * Math.floor(nativeEvent?.contentOffset?.y) ?? 0;\n *\n * setIsExtended(currentScrollPosition <= 0);\n * };\n *\n * const fabStyle = { [animateFrom]: 16 };\n *\n * return (\n * \n * \n * {[...new Array(100).keys()].map((_, i) => (\n * {i}\n * ))}\n * \n * console.log('Pressed')}\n * visible={visible}\n * animateFrom={'right'}\n * iconMode={'static'}\n * style={[styles.fabStyle, style, fabStyle]}\n * />\n * \n * );\n * };\n *\n * export default MyComponent;\n *\n * const styles = StyleSheet.create({\n * container: {\n * flexGrow: 1,\n * },\n * fabStyle: {\n * bottom: 16,\n * right: 16,\n * position: 'absolute',\n * },\n * });\n * ```\n */\nconst AnimatedFAB = _ref => {\n let {\n icon,\n label,\n background,\n accessibilityLabel = label,\n accessibilityState,\n color: customColor,\n rippleColor: customRippleColor,\n disabled,\n onPress,\n onLongPress,\n delayLongPress,\n theme: themeOverrides,\n style,\n visible = true,\n uppercase: uppercaseProp,\n testID = 'animated-fab',\n animateFrom = 'right',\n extended = false,\n iconMode = 'dynamic',\n variant = 'primary',\n labelMaxFontSizeMultiplier,\n ...rest\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const uppercase = uppercaseProp ?? !theme.isV3;\n const isIOS = Platform.OS === 'ios';\n const isAnimatedFromRight = animateFrom === 'right';\n const isIconStatic = iconMode === 'static';\n const {\n isRTL\n } = I18nManager;\n const {\n current: visibility\n } = React.useRef(new Animated.Value(visible ? 1 : 0));\n const {\n current: animFAB\n } = React.useRef(new Animated.Value(0));\n const {\n isV3,\n animation\n } = theme;\n const {\n scale\n } = animation;\n const [textWidth, setTextWidth] = React.useState(0);\n const [textHeight, setTextHeight] = React.useState(0);\n const borderRadius = SIZE / (isV3 ? 3.5 : 2);\n React.useEffect(() => {\n if (visible) {\n Animated.timing(visibility, {\n toValue: 1,\n duration: 200 * scale,\n useNativeDriver: true\n }).start();\n } else {\n Animated.timing(visibility, {\n toValue: 0,\n duration: 150 * scale,\n useNativeDriver: true\n }).start();\n }\n }, [visible, scale, visibility]);\n const {\n backgroundColor: customBackgroundColor,\n ...restStyle\n } = StyleSheet.flatten(style) || {};\n const {\n backgroundColor,\n foregroundColor\n } = getFABColors({\n theme,\n variant,\n disabled,\n customColor,\n customBackgroundColor\n });\n const rippleColor = customRippleColor || color(foregroundColor).alpha(0.12).rgb().string();\n const extendedWidth = textWidth + SIZE + borderRadius;\n const distance = isAnimatedFromRight ? -textWidth - borderRadius : textWidth + borderRadius;\n React.useEffect(() => {\n Animated.timing(animFAB, {\n toValue: !extended ? 0 : distance,\n duration: 150 * scale,\n useNativeDriver: true,\n easing: Easing.linear\n }).start();\n }, [animFAB, scale, distance, extended]);\n const onTextLayout = _ref2 => {\n let {\n nativeEvent\n } = _ref2;\n const currentWidth = Math.ceil(nativeEvent.lines[0].width);\n const currentHeight = Math.ceil(nativeEvent.lines[0].height);\n if (currentWidth !== textWidth || currentHeight !== textHeight) {\n setTextHeight(currentHeight);\n if (isIOS) {\n return setTextWidth(currentWidth - 12);\n }\n setTextWidth(currentWidth);\n }\n };\n const propForDirection = right => {\n if (isAnimatedFromRight) {\n return right;\n }\n return right.reverse();\n };\n const combinedStyles = getCombinedStyles({\n isAnimatedFromRight,\n isIconStatic,\n distance,\n animFAB\n });\n const font = isV3 ? theme.fonts.labelLarge : theme.fonts.medium;\n const textStyle = {\n color: foregroundColor,\n ...font\n };\n const md2Elevation = disabled || !isIOS ? 0 : 6;\n const md3Elevation = disabled || !isIOS ? 0 : 3;\n const shadowStyle = isV3 ? styles.v3Shadow : styles.shadow;\n const baseStyle = [StyleSheet.absoluteFill, disabled ? styles.disabled : shadowStyle];\n const newAccessibilityState = {\n ...accessibilityState,\n disabled\n };\n return /*#__PURE__*/React.createElement(Surface, _extends({}, rest, {\n testID: `${testID}-container`,\n style: [{\n opacity: visibility,\n transform: [{\n scale: visibility\n }],\n borderRadius\n }, !isV3 && {\n elevation: md2Elevation\n }, styles.container, restStyle]\n }, isV3 && {\n elevation: md3Elevation\n }, {\n theme: theme\n }), /*#__PURE__*/React.createElement(Animated.View, {\n style: [!isV3 && {\n transform: [{\n scaleY: animFAB.interpolate({\n inputRange: propForDirection([distance, 0]),\n outputRange: propForDirection([SCALE, 1])\n })\n }]\n }, styles.standard, {\n borderRadius\n }]\n }, /*#__PURE__*/React.createElement(View, {\n style: [StyleSheet.absoluteFill, styles.shadowWrapper]\n }, /*#__PURE__*/React.createElement(Animated.View, {\n pointerEvents: \"none\",\n style: [baseStyle, {\n width: extendedWidth,\n opacity: animFAB.interpolate({\n inputRange: propForDirection([distance, 0.9 * distance, 0]),\n outputRange: propForDirection([1, 0.15, 0])\n }),\n borderRadius\n }],\n testID: `${testID}-extended-shadow`\n }), /*#__PURE__*/React.createElement(Animated.View, {\n pointerEvents: \"none\",\n style: [baseStyle, {\n opacity: animFAB.interpolate({\n inputRange: propForDirection([distance, 0.9 * distance, 0]),\n outputRange: propForDirection([0, 0.85, 1])\n }),\n width: SIZE,\n borderRadius: animFAB.interpolate({\n inputRange: propForDirection([distance, 0]),\n outputRange: propForDirection([SIZE / (extendedWidth / SIZE), borderRadius])\n })\n }, combinedStyles.absoluteFill],\n testID: `${testID}-shadow`\n })), /*#__PURE__*/React.createElement(Animated.View, {\n pointerEvents: \"box-none\",\n style: [styles.innerWrapper, {\n borderRadius\n }]\n }, /*#__PURE__*/React.createElement(Animated.View, {\n style: [styles.standard, {\n width: extendedWidth,\n backgroundColor,\n borderRadius\n }, combinedStyles.innerWrapper]\n }, /*#__PURE__*/React.createElement(TouchableRipple, {\n borderless: true,\n background: background,\n onPress: onPress,\n onLongPress: onLongPress,\n delayLongPress: delayLongPress,\n rippleColor: rippleColor,\n disabled: disabled,\n accessibilityLabel: accessibilityLabel,\n accessibilityRole: \"button\",\n accessibilityState: newAccessibilityState,\n testID: testID,\n style: {\n borderRadius\n },\n theme: theme\n }, /*#__PURE__*/React.createElement(View, {\n style: [styles.standard, {\n width: extendedWidth,\n borderRadius\n }]\n }))))), /*#__PURE__*/React.createElement(Animated.View, {\n style: [styles.iconWrapper, combinedStyles.iconWrapper],\n pointerEvents: \"none\"\n }, /*#__PURE__*/React.createElement(Icon, {\n source: icon,\n size: 24,\n color: foregroundColor,\n theme: theme\n })), /*#__PURE__*/React.createElement(View, {\n pointerEvents: \"none\"\n }, /*#__PURE__*/React.createElement(AnimatedText, {\n variant: \"labelLarge\",\n numberOfLines: 1,\n onTextLayout: isIOS ? onTextLayout : undefined,\n ellipsizeMode: 'tail',\n style: [{\n [isAnimatedFromRight || isRTL ? 'right' : 'left']: isIconStatic ? textWidth - SIZE + borderRadius / (isV3 ? 1 : 2) : borderRadius\n }, {\n minWidth: textWidth,\n top: -SIZE / 2 - textHeight / 2,\n opacity: animFAB.interpolate({\n inputRange: propForDirection([distance, 0.7 * distance, 0]),\n outputRange: propForDirection([1, 0, 0])\n }),\n // TODO: check\n transform: [{\n translateX: animFAB.interpolate({\n inputRange: propForDirection([distance, 0]),\n outputRange: propForDirection([0, SIZE])\n })\n }]\n }, styles.label, uppercase && styles.uppercaseLabel, textStyle],\n theme: theme,\n testID: `${testID}-text`,\n maxFontSizeMultiplier: labelMaxFontSizeMultiplier\n }, label)), !isIOS &&\n /*#__PURE__*/\n // Method `onTextLayout` on Android returns sizes of text visible on the screen,\n // however during render the text in `FAB` isn't fully visible. In order to get\n // proper text measurements there is a need to additionaly render that text, but\n // wrapped in absolutely positioned `ScrollView` which height is 0.\n React.createElement(ScrollView, {\n style: styles.textPlaceholderContainer\n }, /*#__PURE__*/React.createElement(AnimatedText, {\n variant: \"labelLarge\",\n numberOfLines: 1,\n onTextLayout: onTextLayout,\n ellipsizeMode: 'tail',\n style: [styles.label, uppercase && styles.uppercaseLabel, textStyle],\n theme: theme\n }, label)));\n};\nconst styles = StyleSheet.create({\n standard: {\n height: SIZE\n },\n disabled: {\n elevation: 0\n },\n // eslint-disable-next-line react-native/no-color-literals\n container: {\n position: 'absolute',\n backgroundColor: 'transparent'\n },\n innerWrapper: {\n flexDirection: 'row',\n overflow: 'hidden'\n },\n shadowWrapper: {\n elevation: 0\n },\n shadow: {\n elevation: 6\n },\n v3Shadow: {\n elevation: 3\n },\n iconWrapper: {\n alignItems: 'center',\n justifyContent: 'center',\n position: 'absolute',\n height: SIZE,\n width: SIZE\n },\n label: {\n position: 'absolute'\n },\n uppercaseLabel: {\n textTransform: 'uppercase'\n },\n textPlaceholderContainer: {\n height: 0,\n position: 'absolute'\n }\n});\nexport default AnimatedFAB;\n//# sourceMappingURL=AnimatedFAB.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { Animated, I18nManager, Platform, StyleSheet, View } from 'react-native';\nimport setColor from 'color';\nimport { useInternalTheme } from '../core/theming';\nconst INDETERMINATE_DURATION = 2000;\nconst INDETERMINATE_MAX_WIDTH = 0.6;\nconst {\n isRTL\n} = I18nManager;\n\n/**\n * Progress bar is an indicator used to present progress of some activity in the app.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { ProgressBar, MD3Colors } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * \n * );\n *\n * export default MyComponent;\n * ```\n */\nconst ProgressBar = _ref => {\n var _theme$colors;\n let {\n color,\n indeterminate,\n progress = 0,\n visible = true,\n theme: themeOverrides,\n animatedValue,\n style,\n fillStyle,\n testID = 'progress-bar',\n ...rest\n } = _ref;\n const isWeb = Platform.OS === 'web';\n const theme = useInternalTheme(themeOverrides);\n const {\n current: timer\n } = React.useRef(new Animated.Value(0));\n const {\n current: fade\n } = React.useRef(new Animated.Value(0));\n const passedAnimatedValue = React.useRef(animatedValue);\n const [width, setWidth] = React.useState(0);\n const [prevWidth, setPrevWidth] = React.useState(0);\n const indeterminateAnimation = React.useRef(null);\n const {\n scale\n } = theme.animation;\n React.useEffect(() => {\n passedAnimatedValue.current = animatedValue;\n });\n const startAnimation = React.useCallback(() => {\n // Show progress bar\n Animated.timing(fade, {\n duration: 200 * scale,\n toValue: 1,\n useNativeDriver: true,\n isInteraction: false\n }).start();\n\n /**\n * We shouldn't add @param animatedValue to the\n * deps array, to avoid the unnecessary loop.\n * We can only check if the prop is passed initially,\n * and we do early return.\n */\n const externalAnimation = typeof passedAnimatedValue.current !== 'undefined' && passedAnimatedValue.current >= 0;\n if (externalAnimation) {\n return;\n }\n\n // Animate progress bar\n if (indeterminate) {\n if (!indeterminateAnimation.current) {\n indeterminateAnimation.current = Animated.timing(timer, {\n duration: INDETERMINATE_DURATION,\n toValue: 1,\n // Animated.loop does not work if useNativeDriver is true on web\n useNativeDriver: !isWeb,\n isInteraction: false\n });\n }\n\n // Reset timer to the beginning\n timer.setValue(0);\n Animated.loop(indeterminateAnimation.current).start();\n } else {\n Animated.timing(timer, {\n duration: 200 * scale,\n toValue: progress ? progress : 0,\n useNativeDriver: true,\n isInteraction: false\n }).start();\n }\n }, [fade, scale, indeterminate, timer, progress, isWeb]);\n const stopAnimation = React.useCallback(() => {\n // Stop indeterminate animation\n if (indeterminateAnimation.current) {\n indeterminateAnimation.current.stop();\n }\n Animated.timing(fade, {\n duration: 200 * scale,\n toValue: 0,\n useNativeDriver: true,\n isInteraction: false\n }).start();\n }, [fade, scale]);\n React.useEffect(() => {\n if (visible) startAnimation();else stopAnimation();\n }, [visible, startAnimation, stopAnimation]);\n React.useEffect(() => {\n if (animatedValue && animatedValue >= 0) {\n timer.setValue(animatedValue);\n }\n }, [animatedValue, timer]);\n React.useEffect(() => {\n // Start animation the very first time when previously the width was unclear\n if (visible && prevWidth === 0) {\n startAnimation();\n }\n }, [prevWidth, startAnimation, visible]);\n const onLayout = event => {\n setPrevWidth(width);\n setWidth(event.nativeEvent.layout.width);\n };\n const tintColor = color || ((_theme$colors = theme.colors) === null || _theme$colors === void 0 ? void 0 : _theme$colors.primary);\n const trackTintColor = theme.isV3 ? theme.colors.surfaceVariant : setColor(tintColor).alpha(0.38).rgb().string();\n return /*#__PURE__*/React.createElement(View, _extends({\n onLayout: onLayout\n }, rest, {\n accessible: true,\n accessibilityRole: \"progressbar\",\n accessibilityState: {\n busy: visible\n },\n accessibilityValue: indeterminate ? {} : {\n min: 0,\n max: 100,\n now: progress * 100\n },\n style: isWeb && styles.webContainer,\n testID: testID\n }), /*#__PURE__*/React.createElement(Animated.View, {\n style: [styles.container, {\n backgroundColor: trackTintColor,\n opacity: fade\n }, style]\n }, width ? /*#__PURE__*/React.createElement(Animated.View, {\n testID: `${testID}-fill`,\n style: [styles.progressBar, {\n width,\n backgroundColor: tintColor,\n transform: [{\n translateX: timer.interpolate(indeterminate ? {\n inputRange: [0, 0.5, 1],\n outputRange: [(isRTL ? 1 : -1) * 0.5 * width, (isRTL ? 1 : -1) * 0.5 * INDETERMINATE_MAX_WIDTH * width, (isRTL ? -1 : 1) * 0.7 * width]\n } : {\n inputRange: [0, 1],\n outputRange: [(isRTL ? 1 : -1) * 0.5 * width, 0]\n })\n }, {\n // Workaround for workaround for https://github.com/facebook/react-native/issues/6278\n scaleX: timer.interpolate(indeterminate ? {\n inputRange: [0, 0.5, 1],\n outputRange: [0.0001, INDETERMINATE_MAX_WIDTH, 0.0001]\n } : {\n inputRange: [0, 1],\n outputRange: [0.0001, 1]\n })\n }]\n }, fillStyle]\n }) : null));\n};\nconst styles = StyleSheet.create({\n container: {\n height: 4,\n overflow: 'hidden'\n },\n webContainer: {\n width: '100%',\n height: '100%'\n },\n progressBar: {\n flex: 1\n }\n});\nexport default ProgressBar;\n//# sourceMappingURL=ProgressBar.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { Animated, Easing, I18nManager, StyleSheet, View } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\nimport useLatestCallback from 'use-latest-callback';\nimport Button from './Button/Button';\nimport IconButton from './IconButton/IconButton';\nimport MaterialCommunityIcon from './MaterialCommunityIcon';\nimport Surface from './Surface';\nimport Text from './Typography/Text';\nimport { useInternalTheme } from '../core/theming';\nconst DURATION_SHORT = 4000;\nconst DURATION_MEDIUM = 7000;\nconst DURATION_LONG = 10000;\n\n/**\n * Snackbars provide brief feedback about an operation through a message rendered at the bottom of the container in which it's wrapped.\n *\n * Note: To display it as a popup, regardless of the parent's position, wrap it with a `Portal` component – refer to the example in the \"More Examples` section.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { View, StyleSheet } from 'react-native';\n * import { Button, Snackbar } from 'react-native-paper';\n *\n * const MyComponent = () => {\n * const [visible, setVisible] = React.useState(false);\n *\n * const onToggleSnackBar = () => setVisible(!visible);\n *\n * const onDismissSnackBar = () => setVisible(false);\n *\n * return (\n * \n * \n * {\n * // Do something\n * },\n * }}>\n * Hey there! I'm a Snackbar.\n * \n * \n * );\n * };\n *\n * const styles = StyleSheet.create({\n * container: {\n * flex: 1,\n * justifyContent: 'space-between',\n * },\n * });\n *\n * export default MyComponent;\n * ```\n */\nconst Snackbar = _ref => {\n let {\n visible,\n action,\n icon,\n onIconPress,\n iconAccessibilityLabel = 'Close icon',\n duration = DURATION_MEDIUM,\n onDismiss,\n children,\n elevation = 2,\n wrapperStyle,\n style,\n theme: themeOverrides,\n maxFontSizeMultiplier,\n rippleColor,\n testID,\n ...rest\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const {\n bottom,\n right,\n left\n } = useSafeAreaInsets();\n const {\n current: opacity\n } = React.useRef(new Animated.Value(0.0));\n const hideTimeout = React.useRef(undefined);\n const [hidden, setHidden] = React.useState(!visible);\n const {\n scale\n } = theme.animation;\n const handleOnVisible = useLatestCallback(() => {\n // show\n if (hideTimeout.current) clearTimeout(hideTimeout.current);\n setHidden(false);\n Animated.timing(opacity, {\n toValue: 1,\n duration: 200 * scale,\n easing: Easing.out(Easing.ease),\n useNativeDriver: true\n }).start(_ref2 => {\n let {\n finished\n } = _ref2;\n if (finished) {\n const isInfinity = duration === Number.POSITIVE_INFINITY || duration === Number.NEGATIVE_INFINITY;\n if (!isInfinity) {\n hideTimeout.current = setTimeout(onDismiss, duration);\n }\n }\n });\n });\n const handleOnHidden = useLatestCallback(() => {\n // hide\n if (hideTimeout.current) {\n clearTimeout(hideTimeout.current);\n }\n Animated.timing(opacity, {\n toValue: 0,\n duration: 100 * scale,\n useNativeDriver: true\n }).start(_ref3 => {\n let {\n finished\n } = _ref3;\n if (finished) {\n setHidden(true);\n }\n });\n });\n React.useEffect(() => {\n return () => {\n if (hideTimeout.current) clearTimeout(hideTimeout.current);\n };\n }, []);\n React.useLayoutEffect(() => {\n if (visible) {\n handleOnVisible();\n } else {\n handleOnHidden();\n }\n }, [visible, handleOnVisible, handleOnHidden]);\n const {\n colors,\n roundness,\n isV3\n } = theme;\n if (hidden) {\n return null;\n }\n const {\n style: actionStyle,\n label: actionLabel,\n onPress: onPressAction,\n rippleColor: actionRippleColor,\n ...actionProps\n } = action || {};\n const buttonTextColor = isV3 ? colors.inversePrimary : colors.accent;\n const textColor = isV3 ? colors.inverseOnSurface : colors === null || colors === void 0 ? void 0 : colors.surface;\n const backgroundColor = isV3 ? colors.inverseSurface : colors === null || colors === void 0 ? void 0 : colors.onSurface;\n const isIconButton = isV3 && onIconPress;\n const marginLeft = action ? -12 : -16;\n const wrapperPaddings = {\n paddingBottom: bottom,\n paddingHorizontal: Math.max(left, right)\n };\n const renderChildrenWithWrapper = () => {\n if (typeof children === 'string') {\n return /*#__PURE__*/React.createElement(Text, {\n variant: \"bodyMedium\",\n style: [styles.content, {\n color: textColor\n }],\n maxFontSizeMultiplier: maxFontSizeMultiplier\n }, children);\n }\n return /*#__PURE__*/React.createElement(View, {\n style: styles.content\n }, /*#__PURE__*/React.createElement(View, null, children));\n };\n return /*#__PURE__*/React.createElement(View, {\n pointerEvents: \"box-none\",\n style: [styles.wrapper, wrapperPaddings, wrapperStyle]\n }, /*#__PURE__*/React.createElement(Surface, _extends({\n pointerEvents: \"box-none\",\n accessibilityLiveRegion: \"polite\",\n theme: theme,\n style: [!isV3 && styles.elevation, styles.container, {\n backgroundColor,\n borderRadius: roundness,\n opacity: opacity,\n transform: [{\n scale: visible ? opacity.interpolate({\n inputRange: [0, 1],\n outputRange: [0.9, 1]\n }) : 1\n }]\n }, style],\n testID: testID\n }, isV3 && {\n elevation\n }, rest), renderChildrenWithWrapper(), (action || isIconButton) && /*#__PURE__*/React.createElement(View, {\n style: [styles.actionsContainer, {\n marginLeft\n }]\n }, action ? /*#__PURE__*/React.createElement(Button, _extends({\n onPress: event => {\n onPressAction === null || onPressAction === void 0 ? void 0 : onPressAction(event);\n onDismiss();\n },\n style: [styles.button, actionStyle],\n textColor: buttonTextColor,\n compact: !isV3,\n mode: \"text\",\n theme: theme,\n rippleColor: actionRippleColor\n }, actionProps), actionLabel) : null, isIconButton ? /*#__PURE__*/React.createElement(IconButton, {\n accessibilityRole: \"button\",\n borderless: true,\n onPress: onIconPress,\n iconColor: theme.colors.inverseOnSurface,\n rippleColor: rippleColor,\n theme: theme,\n icon: icon || (_ref4 => {\n let {\n size,\n color\n } = _ref4;\n return /*#__PURE__*/React.createElement(MaterialCommunityIcon, {\n name: \"close\",\n color: color,\n size: size,\n direction: I18nManager.getConstants().isRTL ? 'rtl' : 'ltr'\n });\n }),\n accessibilityLabel: iconAccessibilityLabel,\n style: styles.icon,\n testID: `${testID}-icon`\n }) : null)));\n};\n\n/**\n * Show the Snackbar for a short duration.\n */\nSnackbar.DURATION_SHORT = DURATION_SHORT;\n\n/**\n * Show the Snackbar for a medium duration.\n */\nSnackbar.DURATION_MEDIUM = DURATION_MEDIUM;\n\n/**\n * Show the Snackbar for a long duration.\n */\nSnackbar.DURATION_LONG = DURATION_LONG;\nconst styles = StyleSheet.create({\n wrapper: {\n position: 'absolute',\n bottom: 0,\n width: '100%'\n },\n container: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n margin: 8,\n borderRadius: 4,\n minHeight: 48\n },\n content: {\n marginHorizontal: 16,\n marginVertical: 14,\n flex: 1\n },\n actionsContainer: {\n flexDirection: 'row',\n justifyContent: 'flex-end',\n alignItems: 'center',\n minHeight: 48\n },\n button: {\n marginRight: 8,\n marginLeft: 4\n },\n elevation: {\n elevation: 6\n },\n icon: {\n width: 40,\n height: 40,\n margin: 0\n }\n});\nexport default Snackbar;\n//# sourceMappingURL=Snackbar.js.map","import * as React from 'react';\nexport const ToggleButtonGroupContext =\n/*#__PURE__*/\n//@ts-expect-error: TS can't ensure the type from Group to children\nReact.createContext(null);\n\n/**\n * Toggle group allows to control a group of toggle buttons.
\n * It doesn't change the appearance of the toggle buttons. If you want to group them in a row, check out [ToggleButton.Row](ToggleButtonRow).\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { ToggleButton } from 'react-native-paper';\n *\n * const MyComponent = () => {\n * const [value, setValue] = React.useState('left');\n *\n * return (\n * setValue(value)}\n * value={value}>\n * \n * \n * \n * );\n * };\n *\n * export default MyComponent;\n *```\n */\nconst ToggleButtonGroup = _ref => {\n let {\n value,\n onValueChange,\n children\n } = _ref;\n return /*#__PURE__*/React.createElement(ToggleButtonGroupContext.Provider, {\n value: {\n value,\n onValueChange\n }\n }, children);\n};\nToggleButtonGroup.displayName = 'ToggleButton.Group';\nexport default ToggleButtonGroup;\n\n// @component-docs ignore-next-line\nexport { ToggleButtonGroup };\n//# sourceMappingURL=ToggleButtonGroup.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { StyleSheet } from 'react-native';\nimport color from 'color';\nimport { ToggleButtonGroupContext } from './ToggleButtonGroup';\nimport { getToggleButtonColor } from './utils';\nimport { useInternalTheme } from '../../core/theming';\nimport { black, white } from '../../styles/themes/v2/colors';\nimport { forwardRef } from '../../utils/forwardRef';\nimport IconButton from '../IconButton/IconButton';\n/**\n * Toggle buttons can be used to group related options. To emphasize groups of related toggle buttons,\n * a group should share a common container.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { ToggleButton } from 'react-native-paper';\n *\n * const ToggleButtonExample = () => {\n * const [status, setStatus] = React.useState('checked');\n *\n * const onButtonToggle = value => {\n * setStatus(status === 'checked' ? 'unchecked' : 'checked');\n * };\n *\n * return (\n * \n * );\n * };\n *\n * export default ToggleButtonExample;\n *\n * ```\n */\nconst ToggleButton = forwardRef((_ref, ref) => {\n let {\n icon,\n size,\n theme: themeOverrides,\n accessibilityLabel,\n disabled,\n style,\n value,\n status,\n onPress,\n rippleColor,\n ...rest\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const borderRadius = theme.roundness;\n return /*#__PURE__*/React.createElement(ToggleButtonGroupContext.Consumer, null, context => {\n const checked = context && context.value === value || status === 'checked';\n const backgroundColor = getToggleButtonColor({\n theme,\n checked\n });\n const borderColor = theme.isV3 ? theme.colors.outline : color(theme.dark ? white : black).alpha(0.29).rgb().string();\n return /*#__PURE__*/React.createElement(IconButton, _extends({\n borderless: false,\n icon: icon,\n onPress: e => {\n if (onPress) {\n onPress(e);\n }\n if (context) {\n context.onValueChange(!checked ? value : null);\n }\n },\n size: size,\n accessibilityLabel: accessibilityLabel,\n accessibilityState: {\n disabled,\n selected: checked\n },\n disabled: disabled,\n style: [styles.content, {\n backgroundColor,\n borderRadius,\n borderColor\n }, style],\n ref: ref,\n theme: theme,\n rippleColor: rippleColor\n }, rest));\n });\n});\nconst styles = StyleSheet.create({\n content: {\n width: 42,\n height: 42,\n margin: 0\n }\n});\nexport default ToggleButton;\n\n// @component-docs ignore-next-line\nexport { ToggleButton };\n//# sourceMappingURL=ToggleButton.js.map","import color from 'color';\nimport { tokens } from '../../styles/themes/v3/tokens';\nexport const getToggleButtonColor = _ref => {\n let {\n theme,\n checked\n } = _ref;\n if (checked) {\n if (theme.isV3) {\n return color(theme.colors.onSecondaryContainer).alpha(tokens.md.ref.opacity.level2).rgb().string();\n }\n if (theme.dark) {\n return 'rgba(255, 255, 255, .12)';\n }\n return 'rgba(0, 0, 0, .08)';\n }\n return 'transparent';\n};\n//# sourceMappingURL=utils.js.map","import * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport ToggleButton from './ToggleButton';\nimport ToggleButtonGroup from './ToggleButtonGroup';\n/**\n * Toggle button row renders a group of toggle buttons in a row.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { ToggleButton } from 'react-native-paper';\n *\n * const MyComponent = () => {\n * const [value, setValue] = React.useState('left');\n *\n * return (\n * setValue(value)} value={value}>\n * \n * \n * \n * );\n * };\n *\n * export default MyComponent;\n *\n *```\n */\nconst ToggleButtonRow = _ref => {\n let {\n value,\n onValueChange,\n children,\n style\n } = _ref;\n const count = React.Children.count(children);\n return /*#__PURE__*/React.createElement(ToggleButtonGroup, {\n value: value,\n onValueChange: onValueChange\n }, /*#__PURE__*/React.createElement(View, {\n style: [styles.row, style]\n }, React.Children.map(children, (child, i) => {\n // @ts-expect-error: TypeScript complains about child.type but it doesn't matter\n if (child && child.type === ToggleButton) {\n // @ts-expect-error: We're sure that child is a React Element\n return /*#__PURE__*/React.cloneElement(child, {\n style: [styles.button, i === 0 ? styles.first : i === count - 1 ? styles.last : styles.middle,\n // @ts-expect-error: We're sure that child is a React Element\n child.props.style]\n });\n }\n return child;\n })));\n};\nToggleButtonRow.displayName = 'ToggleButton.Row';\nconst styles = StyleSheet.create({\n row: {\n flexDirection: 'row'\n },\n button: {\n borderWidth: StyleSheet.hairlineWidth\n },\n first: {\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0\n },\n middle: {\n borderRadius: 0,\n borderLeftWidth: 0\n },\n last: {\n borderLeftWidth: 0,\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0\n }\n});\nexport default ToggleButtonRow;\n\n// @component-docs ignore-next-line\nexport { ToggleButtonRow };\n//# sourceMappingURL=ToggleButtonRow.js.map","import ToggleButtonComponent from './ToggleButton';\nimport ToggleButtonGroup from './ToggleButtonGroup';\nimport ToggleButtonRow from './ToggleButtonRow';\nconst ToggleButton = Object.assign(\n// @component ./ToggleButton.tsx\nToggleButtonComponent, {\n // @component ./ToggleButtonGroup.tsx\n Group: ToggleButtonGroup,\n // @component ./ToggleButtonRow.tsx\n Row: ToggleButtonRow\n});\nexport default ToggleButton;\n//# sourceMappingURL=index.js.map","import { StyleSheet } from 'react-native';\nimport color from 'color';\nimport { black, white } from '../../styles/themes/v2/colors';\nconst DEFAULT_PADDING = 9;\nexport const getSegmentedButtonDensityPadding = _ref => {\n let {\n density\n } = _ref;\n let padding = DEFAULT_PADDING;\n switch (density) {\n case 'small':\n return padding - 2;\n case 'medium':\n return padding - 4;\n case 'high':\n return padding - 8;\n default:\n return padding;\n }\n};\nexport const getDisabledSegmentedButtonStyle = _ref2 => {\n var _buttons$index, _buttons;\n let {\n theme,\n index,\n buttons\n } = _ref2;\n const width = getSegmentedButtonBorderWidth({\n theme\n });\n const isDisabled = (_buttons$index = buttons[index]) === null || _buttons$index === void 0 ? void 0 : _buttons$index.disabled;\n const isNextDisabled = (_buttons = buttons[index + 1]) === null || _buttons === void 0 ? void 0 : _buttons.disabled;\n if (!isDisabled && isNextDisabled) {\n return {\n borderRightWidth: width\n };\n }\n return {};\n};\nexport const getSegmentedButtonBorderRadius = _ref3 => {\n let {\n segment,\n theme\n } = _ref3;\n if (segment === 'first') {\n return {\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n ...(theme.isV3 && {\n borderRightWidth: 0\n })\n };\n } else if (segment === 'last') {\n return {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0\n };\n } else {\n return {\n borderRadius: 0,\n ...(theme.isV3 && {\n borderRightWidth: 0\n })\n };\n }\n};\nconst getSegmentedButtonBackgroundColor = _ref4 => {\n let {\n checked,\n theme\n } = _ref4;\n if (checked) {\n if (theme.isV3) {\n return theme.colors.secondaryContainer;\n } else {\n return color(theme.colors.primary).alpha(0.12).rgb().string();\n }\n }\n return 'transparent';\n};\nconst getSegmentedButtonBorderColor = _ref5 => {\n let {\n theme,\n disabled,\n checked\n } = _ref5;\n if (theme.isV3) {\n if (disabled) {\n return theme.colors.surfaceDisabled;\n }\n return theme.colors.outline;\n }\n if (checked) {\n return theme.colors.primary;\n }\n return color(theme.dark ? white : black).alpha(0.29).rgb().string();\n};\nconst getSegmentedButtonBorderWidth = _ref6 => {\n let {\n theme\n } = _ref6;\n if (theme.isV3) {\n return 1;\n }\n return StyleSheet.hairlineWidth;\n};\nconst getSegmentedButtonTextColor = _ref7 => {\n let {\n theme,\n disabled,\n checked,\n checkedColor,\n uncheckedColor\n } = _ref7;\n if (theme.isV3) {\n if (disabled) {\n return theme.colors.onSurfaceDisabled;\n }\n if (checked) {\n return checkedColor ?? theme.colors.onSecondaryContainer;\n }\n return uncheckedColor ?? theme.colors.onSurface;\n }\n if (disabled) {\n return theme.colors.disabled;\n }\n // Primary color is used for checked state too.\n return theme.colors.primary;\n};\nexport const getSegmentedButtonColors = _ref8 => {\n let {\n theme,\n disabled,\n checked,\n checkedColor,\n uncheckedColor\n } = _ref8;\n const backgroundColor = getSegmentedButtonBackgroundColor({\n theme,\n checked\n });\n const borderColor = getSegmentedButtonBorderColor({\n theme,\n disabled,\n checked\n });\n const textColor = getSegmentedButtonTextColor({\n theme,\n disabled,\n checked,\n checkedColor,\n uncheckedColor\n });\n const borderWidth = getSegmentedButtonBorderWidth({\n theme\n });\n return {\n backgroundColor,\n borderColor,\n textColor,\n borderWidth\n };\n};\n//# sourceMappingURL=utils.js.map","import * as React from 'react';\nimport { Animated, StyleSheet, View } from 'react-native';\nimport color from 'color';\nimport { getSegmentedButtonBorderRadius, getSegmentedButtonColors, getSegmentedButtonDensityPadding } from './utils';\nimport { useInternalTheme } from '../../core/theming';\nimport Icon from '../Icon';\nimport TouchableRipple from '../TouchableRipple/TouchableRipple';\nimport Text from '../Typography/Text';\nconst SegmentedButtonItem = _ref => {\n let {\n checked,\n accessibilityLabel,\n disabled,\n style,\n labelStyle,\n showSelectedCheck,\n checkedColor,\n uncheckedColor,\n rippleColor: customRippleColor,\n background,\n icon,\n testID,\n label,\n onPress,\n segment,\n density = 'regular',\n theme: themeOverrides,\n labelMaxFontSizeMultiplier\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const checkScale = React.useRef(new Animated.Value(0)).current;\n React.useEffect(() => {\n if (!showSelectedCheck) {\n return;\n }\n if (checked) {\n Animated.spring(checkScale, {\n toValue: 1,\n useNativeDriver: true\n }).start();\n } else {\n Animated.spring(checkScale, {\n toValue: 0,\n useNativeDriver: true\n }).start();\n }\n }, [checked, checkScale, showSelectedCheck]);\n const {\n roundness,\n isV3\n } = theme;\n const {\n borderColor,\n textColor,\n borderWidth,\n backgroundColor\n } = getSegmentedButtonColors({\n checked,\n theme,\n disabled,\n checkedColor,\n uncheckedColor\n });\n const borderRadius = (isV3 ? 5 : 1) * roundness;\n const segmentBorderRadius = getSegmentedButtonBorderRadius({\n theme,\n segment\n });\n const rippleColor = customRippleColor || color(textColor).alpha(0.12).rgb().string();\n const showIcon = !icon ? false : label && checked ? !showSelectedCheck : true;\n const showCheckedIcon = checked && showSelectedCheck;\n const iconSize = isV3 ? 18 : 16;\n const iconStyle = {\n marginRight: label ? 5 : showCheckedIcon ? 3 : 0,\n ...(label && {\n transform: [{\n scale: checkScale.interpolate({\n inputRange: [0, 1],\n outputRange: [1, 0]\n })\n }]\n })\n };\n const buttonStyle = {\n backgroundColor,\n borderColor,\n borderWidth,\n borderRadius,\n ...segmentBorderRadius\n };\n const paddingVertical = getSegmentedButtonDensityPadding({\n density\n });\n const rippleStyle = {\n borderRadius,\n ...segmentBorderRadius\n };\n const labelTextStyle = {\n ...(!isV3 ? {\n textTransform: 'uppercase',\n fontWeight: '500'\n } : theme.fonts.labelLarge),\n color: textColor\n };\n return /*#__PURE__*/React.createElement(View, {\n style: [buttonStyle, styles.button, style]\n }, /*#__PURE__*/React.createElement(TouchableRipple, {\n borderless: true,\n onPress: onPress,\n accessibilityLabel: accessibilityLabel,\n accessibilityState: {\n disabled,\n checked\n },\n accessibilityRole: \"button\",\n disabled: disabled,\n rippleColor: rippleColor,\n testID: testID,\n style: rippleStyle,\n background: background,\n theme: theme\n }, /*#__PURE__*/React.createElement(View, {\n style: [styles.content, {\n paddingVertical\n }]\n }, showCheckedIcon ? /*#__PURE__*/React.createElement(Animated.View, {\n testID: `${testID}-check-icon`,\n style: [iconStyle, {\n transform: [{\n scale: checkScale\n }]\n }]\n }, /*#__PURE__*/React.createElement(Icon, {\n source: 'check',\n size: iconSize,\n color: textColor\n })) : null, showIcon ? /*#__PURE__*/React.createElement(Animated.View, {\n testID: `${testID}-icon`,\n style: iconStyle\n }, /*#__PURE__*/React.createElement(Icon, {\n source: icon,\n size: iconSize,\n color: textColor\n })) : null, /*#__PURE__*/React.createElement(Text, {\n variant: \"labelLarge\",\n style: [styles.label, labelTextStyle, labelStyle],\n selectable: false,\n numberOfLines: 1,\n maxFontSizeMultiplier: labelMaxFontSizeMultiplier,\n testID: `${testID}-label`\n }, label))));\n};\nconst styles = StyleSheet.create({\n button: {\n flex: 1,\n minWidth: 76,\n borderStyle: 'solid'\n },\n label: {\n textAlign: 'center'\n },\n content: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n paddingVertical: 9,\n paddingHorizontal: 16\n }\n});\nexport default SegmentedButtonItem;\nexport { SegmentedButtonItem as SegmentedButton };\n//# sourceMappingURL=SegmentedButtonItem.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport SegmentedButtonItem from './SegmentedButtonItem';\nimport { getDisabledSegmentedButtonStyle } from './utils';\nimport { useInternalTheme } from '../../core/theming';\n/**\n * Segmented buttons can be used to select options, switch views or sort elements.
\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { SafeAreaView, StyleSheet } from 'react-native';\n * import { SegmentedButtons } from 'react-native-paper';\n *\n * const MyComponent = () => {\n * const [value, setValue] = React.useState('');\n *\n * return (\n * \n * \n * \n * );\n * };\n *\n * const styles = StyleSheet.create({\n * container: {\n * flex: 1,\n * alignItems: 'center',\n * },\n * });\n *\n * export default MyComponent;\n *```\n */\nconst SegmentedButtons = _ref => {\n let {\n value,\n onValueChange,\n buttons,\n multiSelect,\n density,\n style,\n theme: themeOverrides\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n return /*#__PURE__*/React.createElement(View, {\n style: [styles.row, style]\n }, buttons.map((item, i) => {\n const disabledChildStyle = getDisabledSegmentedButtonStyle({\n theme,\n buttons,\n index: i\n });\n const segment = i === 0 ? 'first' : i === buttons.length - 1 ? 'last' : undefined;\n const checked = multiSelect && Array.isArray(value) ? value.includes(item.value) : value === item.value;\n const onPress = e => {\n var _item$onPress;\n (_item$onPress = item.onPress) === null || _item$onPress === void 0 ? void 0 : _item$onPress.call(item, e);\n const nextValue = multiSelect && Array.isArray(value) ? checked ? value.filter(val => item.value !== val) : [...value, item.value] : item.value;\n\n // @ts-expect-error: TS doesn't preserve types after destructuring, so the type isn't inferred correctly\n onValueChange(nextValue);\n };\n return /*#__PURE__*/React.createElement(SegmentedButtonItem, _extends({}, item, {\n key: i,\n checked: checked,\n segment: segment,\n density: density,\n onPress: onPress,\n style: [item.style, disabledChildStyle],\n labelStyle: item.labelStyle,\n theme: theme\n }));\n }));\n};\nconst styles = StyleSheet.create({\n row: {\n flexDirection: 'row'\n }\n});\nexport default SegmentedButtons;\n\n// @component-docs ignore-next-line\nexport { SegmentedButtons };\n//# sourceMappingURL=SegmentedButtons.js.map","/**\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","function _extends() {\n module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _extends.apply(this, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { I18nManager, StyleSheet, Text as NativeText } from 'react-native';\nimport AnimatedText from './AnimatedText';\nimport StyledText from './v2/StyledText';\nimport { useInternalTheme } from '../../core/theming';\nimport { forwardRef } from '../../utils/forwardRef';\n// @component-group Typography\n/**\n * Typography component showing styles complied with passed `variant` prop and supported by the type system.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Text } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * <>\n * Display Large\n * Display Medium\n * Display small\n *\n * Headline Large\n * Headline Medium\n * Headline Small\n *\n * Title Large\n * Title Medium\n * Title Small\n *\n * Body Large\n * Body Medium\n * Body Small\n *\n * Label Large\n * Label Medium\n * Label Small\n * \n * );\n *\n * export default MyComponent;\n * ```\n *\n * @extends Text props https://reactnative.dev/docs/text#props\n */\nconst Text = (_ref, ref) => {\n let {\n style,\n variant,\n theme: initialTheme,\n ...rest\n } = _ref;\n const root = React.useRef(null);\n // FIXME: destructure it in TS 4.6+\n const theme = useInternalTheme(initialTheme);\n const writingDirection = I18nManager.getConstants().isRTL ? 'rtl' : 'ltr';\n React.useImperativeHandle(ref, () => ({\n setNativeProps: args => {\n var _root$current;\n return (_root$current = root.current) === null || _root$current === void 0 ? void 0 : _root$current.setNativeProps(args);\n }\n }));\n if (theme.isV3 && variant) {\n let font = theme.fonts[variant];\n let textStyle = [font, style];\n if ( /*#__PURE__*/React.isValidElement(rest.children) && (rest.children.type === Component || rest.children.type === AnimatedText || rest.children.type === StyledText)) {\n const {\n props\n } = rest.children;\n\n // Context: Some components have the built-in `Text` component with a predefined variant,\n // that also accepts `children` as a `React.Node`. This can result in a situation,\n // where another `Text` component is rendered within the built-in `Text` component.\n // By doing that, we assume that user doesn't want to consume pre-defined font properties.\n // Case one: Nested `Text` has different `variant` that specified in parent. For example:\n // \n // Nested\n // \n // Solution: To address the following scenario, the code below overrides the `variant`\n // specified in a parent in favor of children's variant:\n if (props.variant) {\n font = theme.fonts[props.variant];\n textStyle = [style, font];\n }\n\n // Case two: Nested `Text` has specified `styles` which intefere\n // with font properties, from the parent's `variant`. For example:\n // \n // Nested\n // \n // Solution: To address the following scenario, the code below overrides the\n // parent's style with children's style:\n if (!props.variant) {\n textStyle = [style, props.style];\n }\n }\n if (typeof font !== 'object') {\n throw new Error(`Variant ${variant} was not provided properly. Valid variants are ${Object.keys(theme.fonts).join(', ')}.`);\n }\n return /*#__PURE__*/React.createElement(NativeText, _extends({\n ref: root,\n style: [styles.text, {\n writingDirection,\n color: theme.colors.onSurface\n }, textStyle]\n }, rest));\n } else {\n var _theme$fonts, _theme$colors;\n const font = theme.isV3 ? theme.fonts.default : (_theme$fonts = theme.fonts) === null || _theme$fonts === void 0 ? void 0 : _theme$fonts.regular;\n const textStyle = {\n ...font,\n color: theme.isV3 ? (_theme$colors = theme.colors) === null || _theme$colors === void 0 ? void 0 : _theme$colors.onSurface : theme.colors.text\n };\n return /*#__PURE__*/React.createElement(NativeText, _extends({}, rest, {\n ref: root,\n style: [styles.text, textStyle, {\n writingDirection\n }, style]\n }));\n }\n};\nconst styles = StyleSheet.create({\n text: {\n textAlign: 'left'\n }\n});\nconst Component = forwardRef(Text);\nexport const customText = () => Component;\nexport default Component;\n//# sourceMappingURL=Text.js.map","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 props: GestureHandlerRootViewProps\n) {\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 get isNative() {\n return true;\n }\n\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 // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n ComponentWrapper.displayName =\n Component?.displayName ||\n // @ts-ignore if render doesn't exist it will return undefined and go further\n Component?.render?.name ||\n (typeof Component === 'string' && Component) ||\n '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\nexport type 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 // this piece of magic works something like this:\n // for every gesture in the array\n const simultaneousArrays = this.gestures.map((gesture) =>\n // we take the array it's in\n this.gestures\n // and make a copy without it\n .filter((x) => x !== gesture)\n // then we flatmap the result to get list of raw (not composed) gestures\n // this way we don't make the gestures simultaneous with themselves, which is\n // important when the gesture is `ExclusiveGesture` - we don't want to make\n // exclusive gestures simultaneous\n .flatMap((x) => x.toGestureArray())\n );\n\n for (let i = 0; i < this.gestures.length; i++) {\n this.prepareSingleGesture(\n this.gestures[i],\n simultaneousArrays[i],\n this.requireGesturesToFail\n );\n }\n }\n}\n\nexport class ExclusiveGesture extends ComposedGesture {\n prepare() {\n // transforms the array of gestures into array of grouped raw (not composed) gestures\n // i.e. [gesture1, gesture2, ComposedGesture(gesture3, gesture4)] -> [[gesture1], [gesture2], [gesture3, gesture4]]\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 // every group gets to wait for all groups before it\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\nexport type 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 activateAfterLongPress(duration: number) {\n this.config.activateAfterLongPress = duration;\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\nexport type 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 { FlingGesture } from './flingGesture';\nimport { ForceTouchGesture } from './forceTouchGesture';\nimport { Gesture } from './gesture';\nimport {\n ComposedGesture,\n ExclusiveGesture,\n SimultaneousGesture,\n} from './gestureComposition';\nimport { LongPressGesture } from './longPressGesture';\nimport { PanGesture } from './panGesture';\nimport { PinchGesture } from './pinchGesture';\nimport { RotationGesture } from './rotationGesture';\nimport { TapGesture } from './tapGesture';\nimport { NativeGesture } from './nativeGesture';\nimport { ManualGesture } from './manualGesture';\n\nexport const GestureObjects = {\n Tap: () => {\n return new TapGesture();\n },\n\n Pan: () => {\n return new PanGesture();\n },\n\n Pinch: () => {\n return new PinchGesture();\n },\n\n Rotation: () => {\n return new RotationGesture();\n },\n\n Fling: () => {\n return new FlingGesture();\n },\n\n LongPress: () => {\n return new LongPressGesture();\n },\n\n ForceTouch: () => {\n return new ForceTouchGesture();\n },\n\n Native: () => {\n return new NativeGesture();\n },\n\n Manual: () => {\n return new ManualGesture();\n },\n\n /**\n * Builds a composed gesture consisting of gestures provided as parameters.\n * The first one that becomes active cancels the rest of gestures.\n */\n Race: (...gestures: Gesture[]) => {\n return new ComposedGesture(...gestures);\n },\n\n /**\n * Builds a composed gesture that allows all base gestures to run simultaneously.\n */\n Simultaneous(...gestures: Gesture[]) {\n return new SimultaneousGesture(...gestures);\n },\n\n /**\n * Builds a composed gesture where only one of the provided gestures can become active.\n * Priority is decided through the order of gestures: the first one has higher priority\n * than the second one, second one has higher priority than the third one, and so on.\n * For example, to make a gesture that recognizes both single and double tap you need\n * to call Exclusive(doubleTap, singleTap).\n */\n Exclusive(...gestures: Gesture[]) {\n return new ExclusiveGesture(...gestures);\n },\n};\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 /**\n * Android only.\n *\n * Defines radius of native ripple animation used since API level 21.\n */\n rippleRadius?: number | null;\n\n /**\n * Android only.\n *\n * Set this to true if you want the ripple animation to render outside the view bounds.\n */\n borderless?: boolean;\n\n /**\n * Android only.\n *\n * Defines whether the ripple animation should be drawn on the foreground of the view.\n */\n foreground?: boolean;\n\n /**\n * Android only.\n *\n * Set this to true if you don't want the system to play sound when the button is pressed.\n */\n touchSoundDisabled?: boolean;\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 the button gets pressed and is held for `delayLongPress`\n * milliseconds.\n */\n onLongPress?: () => 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 /**\n * Delay, in milliseconds, after which the `onLongPress` callback gets called.\n * Defaults to 600.\n */\n delayLongPress?: number;\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 * 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 static defaultProps = {\n delayLongPress: 600,\n };\n\n private lastActive: boolean;\n private longPressTimeout: ReturnType | undefined;\n private longPressDetected: boolean;\n\n constructor(props: BaseButtonProps) {\n super(props);\n this.lastActive = false;\n this.longPressDetected = 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 !this.longPressDetected &&\n oldState === State.ACTIVE &&\n state !== State.CANCELLED &&\n this.lastActive &&\n this.props.onPress\n ) {\n this.props.onPress(active);\n }\n\n if (\n !this.lastActive &&\n // NativeViewGestureHandler sends different events based on platform\n state === (Platform.OS !== 'android' ? State.ACTIVE : State.BEGAN) &&\n pointerInside\n ) {\n this.longPressDetected = false;\n if (this.props.onLongPress) {\n this.longPressTimeout = setTimeout(\n this.onLongPress,\n this.props.delayLongPress\n );\n }\n } else if (\n // cancel longpress timeout if it's set and the finger moved out of the view\n state === State.ACTIVE &&\n !pointerInside &&\n this.longPressTimeout !== undefined\n ) {\n clearTimeout(this.longPressTimeout);\n this.longPressTimeout = undefined;\n } else if (\n // cancel longpress timeout if it's set and the gesture has finished\n this.longPressTimeout !== undefined &&\n (state === State.END ||\n state === State.CANCELLED ||\n state === State.FAILED)\n ) {\n clearTimeout(this.longPressTimeout);\n this.longPressTimeout = undefined;\n }\n\n this.lastActive = active;\n };\n\n private onLongPress = () => {\n this.longPressDetected = true;\n this.props.onLongPress?.();\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 accessibilityActions: this.props.accessibilityActions,\n onAccessibilityAction: this.props.onAccessibilityAction,\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\ninterface GHTouchableOpacityProps {\n useNativeAnimations?: boolean;\n}\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 & GHTouchableOpacityProps\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: this.props.useNativeAnimations ?? true,\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 View,\n} from 'react-native';\n\nimport createNativeWrapper from '../handlers/createNativeWrapper';\n\nexport const ScrollView = createNativeWrapper(RNScrollView, {\n disallowInterruption: false,\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// RefreshControl is implemented as a functional component, rendering a View\n// NativeViewGestureHandler needs to set a ref on its child, which cannot be done\n// on functional components\nexport const RefreshControl = createNativeWrapper(View);\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 * @deprecated Use `direction` argument of onSwipeableOpen()\n *\n * Called when left action panel gets open.\n */\n onSwipeableLeftOpen?: () => void;\n\n /**\n * @deprecated Use `direction` argument of onSwipeableOpen()\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?: (direction: 'left' | 'right', swipeable: Swipeable) => void;\n\n /**\n * Called when action panel is closed.\n */\n onSwipeableClose?: (\n direction: 'left' | 'right',\n swipeable: Swipeable\n ) => void;\n\n /**\n * @deprecated Use `direction` argument of onSwipeableWillOpen()\n *\n * Called when left action panel starts animating on open.\n */\n onSwipeableLeftWillOpen?: () => void;\n\n /**\n * @deprecated Use `direction` argument of onSwipeableWillOpen()\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?: (direction: 'left' | 'right') => void;\n\n /**\n * Called when action panel starts animating on close.\n */\n onSwipeableWillClose?: (direction: 'left' | 'right') => 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 swipeable: Swipeable\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 shouldComponentUpdate(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 return true;\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 { overshootLeft = leftWidth > 0, 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) {\n this.props.onSwipeableLeftOpen?.();\n this.props.onSwipeableOpen?.('left', this);\n } else if (toValue < 0) {\n this.props.onSwipeableRightOpen?.();\n this.props.onSwipeableOpen?.('right', this);\n } else {\n const closingDirection = fromValue > 0 ? 'left' : 'right';\n this.props.onSwipeableClose?.(closingDirection, this);\n }\n }\n });\n if (toValue > 0) {\n this.props.onSwipeableLeftWillOpen?.();\n this.props.onSwipeableWillOpen?.('left');\n } else if (toValue < 0) {\n this.props.onSwipeableRightWillOpen?.();\n this.props.onSwipeableWillOpen?.('right');\n } else {\n const closingDirection = fromValue > 0 ? 'left' : 'right';\n this.props.onSwipeableWillClose?.(closingDirection);\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!, this)}\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 UserSelect,\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 // implicit `children` prop has been removed in @types/react^18.0.0\n children?:\n | React.ReactNode\n | ((openValue?: Animated.AnimatedInterpolation) => React.ReactNode);\n\n /**\n * @default 'none'\n * Defines which userSelect property should be used.\n * Values: 'none'|'text'|'auto'\n */\n userSelect?: UserSelect;\n}\n\nexport type DrawerLayoutState = {\n dragX: Animated.Value;\n touchX: Animated.Value;\n drawerTranslation: Animated.Value;\n containerWidth: number;\n drawerState: DrawerState;\n drawerOpened: boolean;\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 drawerState: IDLE,\n drawerOpened: false,\n };\n\n this.updateAnimatedEvent(props, this.state);\n }\n\n shouldComponentUpdate(props: DrawerLayoutProps, state: DrawerLayoutState) {\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 return true;\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 this.setState({ drawerState: DRAGGING });\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 this.setState({ drawerState: SETTLING });\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 this.setState({ drawerOpened: willShow });\n if (this.state.drawerState !== DRAGGING) {\n // it's possilbe that user started drag while the drawer\n // was settling, don't override state in this case\n this.setState({ drawerState: IDLE });\n }\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 options.speed\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(\n undefined,\n 0,\n options.velocity ? options.velocity : 0,\n options.speed\n );\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 let overlayOpacity;\n\n if (this.state.drawerState !== IDLE) {\n overlayOpacity = this.openValue;\n } else {\n overlayOpacity = this.state.drawerOpened ? 1 : 0;\n }\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 if (this.state.drawerState !== IDLE) {\n drawerTranslateX = openValue.interpolate({\n inputRange: [0, 1],\n outputRange: [closedDrawerOffset, 0],\n extrapolate: 'clamp',\n });\n } else {\n drawerTranslateX = this.state.drawerOpened ? 0 : closedDrawerOffset;\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 (\n this.panGestureHandler as React.MutableRefObject\n ).current = ref;\n this.props.onGestureRef?.(ref);\n };\n\n render() {\n const { drawerPosition, drawerLockMode, edgeWidth, 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';\nimport RNGestureHandlerModule from './RNGestureHandlerModule';\nimport { isFabric } from './utils';\n\nlet fabricInitialized = false;\n\nexport function initialize() {\n startListening();\n}\n\n// since isFabric() may give wrong results before the first render, we call this\n// method during render of GestureHandlerRootView\nexport function maybeInitializeFabric() {\n if (isFabric() && !fabricInitialized) {\n RNGestureHandlerModule.install();\n fabricInitialized = true;\n }\n}\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};\nconst throwUninitializedReanimatedException = () => {\n throw new Error(\"Failed to initialize react-native-reanimated library, make sure you followed installation steps here: https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/installation/ \\n1) Make sure reanimated's babel plugin is installed in your babel.config.js (you should have 'react-native-reanimated/plugin' listed there - also see the above link for details) \\n2) Make sure you reset build cache after updating the config, run: yarn start --reset-cache\");\n};\nexport const checkPluginState = (throwError = true) => {\n if (!testWorklet.__workletHash && !shouldBeUseWeb()) {\n if (throwError) {\n throwUninitializedReanimatedException();\n }\n return false;\n }\n return true;\n};\nexport const isConfigured = (throwError = false) => {\n return checkPluginState(throwError);\n};\nexport const isConfiguredCheck = () => {\n checkPluginState(true);\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 })();\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","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\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 return target;\n}\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 canUseDOM from '../../modules/canUseDom';\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 = {};\nvar shouldInit = canUseDOM;\n\nfunction update() {\n if (!canUseDOM) {\n return;\n }\n\n var win = window;\n var height;\n var width;\n /**\n * iOS does not update viewport dimensions on keyboard open/close.\n * window.visualViewport(https://developer.mozilla.org/en-US/docs/Web/API/VisualViewport)\n * is used instead of document.documentElement.clientHeight (which remains as a fallback)\n */\n\n if (win.visualViewport) {\n var visualViewport = win.visualViewport;\n height = Math.round(visualViewport.height);\n width = Math.round(visualViewport.width);\n } else {\n var docEl = win.document.documentElement;\n height = docEl.clientHeight;\n width = docEl.clientWidth;\n }\n\n dimensions.window = {\n fontScale: 1,\n height,\n scale: win.devicePixelRatio || 1,\n width\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\nfunction handleResize() {\n update();\n\n if (Array.isArray(listeners['change'])) {\n listeners['change'].forEach(handler => handler(dimensions));\n }\n}\n\nexport default class Dimensions {\n static get(dimension) {\n if (shouldInit) {\n shouldInit = false;\n update();\n }\n\n invariant(dimensions[dimension], \"No dimension set for key \" + dimension);\n return dimensions[dimension];\n }\n\n static 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 static addEventListener(type, handler) {\n listeners[type] = listeners[type] || [];\n listeners[type].push(handler);\n return {\n remove: () => {\n this.removeEventListener(type, handler);\n }\n };\n }\n\n static removeEventListener(type, handler) {\n if (Array.isArray(listeners[type])) {\n listeners[type] = listeners[type].filter(_handler => _handler !== handler);\n }\n }\n\n}\n\nif (canUseDOM) {\n if (window.visualViewport) {\n window.visualViewport.addEventListener('resize', handleResize, false);\n } else {\n window.addEventListener('resize', handleResize, false);\n }\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nexport default canUseDOM;","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 { 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 { isChromeDebugger, isWeb, shouldBeUseWeb } from './PlatformChecker';\nexport function getTag(view) {\n return findNodeHandle(view);\n}\nconst isNative = !shouldBeUseWeb();\nexport let measure;\nif (isWeb()) {\n measure = (animatedRef) => {\n const element = animatedRef(); // TODO: fix typing of animated refs on web\n const viewportOffset = element.getBoundingClientRect();\n return {\n width: element.offsetWidth,\n height: element.offsetHeight,\n x: element.offsetLeft,\n y: element.offsetTop,\n pageX: viewportOffset.left,\n pageY: viewportOffset.top,\n };\n };\n}\nelse if (isChromeDebugger()) {\n measure = (_animatedRef) => {\n console.warn('[Reanimated] measure() cannot be used with Chrome Debugger.');\n return null;\n };\n}\nelse {\n measure = (animatedRef) => {\n 'worklet';\n if (!_WORKLET) {\n console.warn('[Reanimated] measure() was called from the main JS context. Measure is ' +\n 'only available in the UI runtime. This may also happen if measure() ' +\n 'was called by a worklet in the useAnimatedStyle hook, because useAnimatedStyle ' +\n 'calls the given worklet on the JS runtime during render. If you want to ' +\n 'prevent this warning then wrap the call with `if (_WORKLET)`. Then it will ' +\n 'only be called on the UI runtime after the render has been completed.');\n return null;\n }\n const viewTag = animatedRef();\n if (viewTag === -1) {\n console.warn(`[Reanimated] The view with tag ${viewTag} is not a valid argument for measure(). This may be because the view is not currently rendered, which may not be a bug (e.g. an off-screen FlatList item).`);\n return null;\n }\n const measured = _measure(viewTag);\n if (measured === null) {\n console.warn(`[Reanimated] The view with tag ${viewTag} has some undefined, not-yet-computed or meaningless value of \\`LayoutMetrics\\` type. This may be because the view is not currently rendered, which may not be a bug (e.g. an off-screen FlatList item).`);\n return null;\n }\n else if (measured.x === -1234567) {\n console.warn(`[Reanimated] The view with tag ${viewTag} returned an invalid measurement response.`);\n return null;\n }\n else if (isNaN(measured.x)) {\n console.warn(`[Reanimated] The view with tag ${viewTag} gets view-flattened on Android. To disable view-flattening, set \\`collapsable={false}\\` on this component.`);\n return null;\n }\n else {\n return measured;\n }\n };\n}\nexport let scrollTo;\nif (isWeb()) {\n scrollTo = (animatedRef, x, y, animated) => {\n 'worklet';\n const element = animatedRef();\n // @ts-ignore same call as in react-native-web\n element.scrollTo({ x, y, animated });\n };\n}\nelse if (isNative) {\n scrollTo = (animatedRef, x, y, animated) => {\n 'worklet';\n if (!_WORKLET) {\n return;\n }\n const viewTag = animatedRef();\n _scrollTo(viewTag, x, y, animated);\n };\n}\nelse {\n scrollTo = (_animatedRef, _x, _y) => {\n // no-op\n };\n}\nexport function setGestureState(handlerTag, newState) {\n 'worklet';\n if (!_WORKLET || !isNative) {\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 { 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: 'auto' }, 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: 'auto' }, userConfig);\n const id = NativeReanimated.registerSensor(sensorType, ref.current.config.interval === 'auto' ? -1 : 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","export var KeyboardState;\n(function (KeyboardState) {\n KeyboardState[KeyboardState[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n KeyboardState[KeyboardState[\"OPENING\"] = 1] = \"OPENING\";\n KeyboardState[KeyboardState[\"OPEN\"] = 2] = \"OPEN\";\n KeyboardState[KeyboardState[\"CLOSING\"] = 3] = \"CLOSING\";\n KeyboardState[KeyboardState[\"CLOSED\"] = 4] = \"CLOSED\";\n})(KeyboardState || (KeyboardState = {}));\n","import { useEffect, useRef } from 'react';\nimport FrameCallbackRegistryJS from '../frameCallback/FrameCallbackRegistryJS';\nconst frameCallbackRegistry = new FrameCallbackRegistryJS();\nexport function useFrameCallback(callback, autostart = true) {\n const ref = useRef({\n setActive: (isActive) => {\n frameCallbackRegistry.manageStateFrameCallback(ref.current.callbackId, isActive);\n ref.current.isActive = isActive;\n },\n isActive: autostart,\n callbackId: -1,\n });\n useEffect(() => {\n ref.current.callbackId =\n frameCallbackRegistry.registerFrameCallback(callback);\n ref.current.setActive(ref.current.isActive);\n return () => {\n frameCallbackRegistry.unregisterFrameCallback(ref.current.callbackId);\n ref.current.callbackId = -1;\n };\n }, [callback, autostart]);\n return ref.current;\n}\n","import { useEffect, useRef } from 'react';\nimport NativeReanimated from '../NativeReanimated';\nimport { makeMutable } from '../core';\nimport { KeyboardState } from '../commonTypes';\nexport function useAnimatedKeyboard() {\n const ref = useRef(null);\n const listenerId = useRef(-1);\n const isSubscribed = useRef(false);\n if (ref.current === null) {\n const keyboardEventData = {\n state: makeMutable(KeyboardState.UNKNOWN),\n height: makeMutable(0),\n };\n listenerId.current =\n NativeReanimated.subscribeForKeyboardEvents(keyboardEventData);\n ref.current = keyboardEventData;\n isSubscribed.current = true;\n }\n useEffect(() => {\n if (isSubscribed.current === false && ref.current !== null) {\n // subscribe again after Fast Refresh\n listenerId.current = NativeReanimated.subscribeForKeyboardEvents(ref.current);\n isSubscribed.current = true;\n }\n return () => {\n NativeReanimated.unsubscribeFromKeyboardEvents(listenerId.current);\n isSubscribed.current = false;\n };\n }, []);\n return ref.current;\n}\n","import { useEffect, useRef } from 'react';\nimport { findNodeHandle } from 'react-native';\nimport { useEvent } from './utils';\nimport { useSharedValue } from './useSharedValue';\nconst subscribeForEvents = [\n 'onScroll',\n 'onScrollBeginDrag',\n 'onScrollEndDrag',\n 'onMomentumScrollBegin',\n 'onMomentumScrollEnd',\n];\nexport function useScrollViewOffset(aref) {\n const offsetRef = useRef(useSharedValue(0));\n const event = useEvent((event) => {\n 'worklet';\n offsetRef.current.value =\n event.contentOffset.x === 0\n ? event.contentOffset.y\n : event.contentOffset.x;\n }, subscribeForEvents);\n useEffect(() => {\n var _a;\n const viewTag = findNodeHandle(aref.current);\n (_a = event.current) === null || _a === void 0 ? void 0 : _a.registerForEvents(viewTag);\n }, [aref.current]);\n return offsetRef.current;\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';\n/**\n * Given an absolute position and a component ref, returns the relative\n * position in the component's local coordinate space.\n */\nexport function getRelativeCoords(parentRef, absoluteX, absoluteY) {\n 'worklet';\n const parentCoords = measure(parentRef);\n if (parentCoords === null) {\n return null;\n }\n return {\n x: absoluteX - parentCoords.x,\n y: absoluteY - parentCoords.y,\n };\n}\n","import { Text } from 'react-native';\nimport createAnimatedComponent from '../../createAnimatedComponent';\nconst AnimatedText = createAnimatedComponent(Text);\nexport default AnimatedText;\n","import { View } from 'react-native';\nimport createAnimatedComponent from '../../createAnimatedComponent';\nconst AnimatedView = createAnimatedComponent(View);\nexport default AnimatedView;\n","import { ScrollView } from 'react-native';\nimport createAnimatedComponent from '../../createAnimatedComponent';\nconst AnimatedScrollView = createAnimatedComponent(ScrollView);\nexport default AnimatedScrollView;\n","import { Image } from 'react-native';\nimport createAnimatedComponent from '../../createAnimatedComponent';\nconst AnimatedImage = createAnimatedComponent(Image);\nexport default AnimatedImage;\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, { forwardRef } from 'react';\nimport { FlatList } from 'react-native';\nimport ReanimatedView from './View';\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 = forwardRef((props, ref) => {\n const { itemLayoutAnimation } = props, restProps = __rest(props, [\"itemLayoutAnimation\"]);\n const cellRenderer = React.useMemo(() => createCellRenderer(itemLayoutAnimation), []);\n return ();\n});\nexport default ReanimatedFlatlist;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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: 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(() => NativeAnimatedModule.createAnimatedNode(tag, config));\n },\n startListeningToAnimatedNodeValue: function startListeningToAnimatedNodeValue(tag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.startListeningToAnimatedNodeValue(tag));\n },\n stopListeningToAnimatedNodeValue: function stopListeningToAnimatedNodeValue(tag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.stopListeningToAnimatedNodeValue(tag));\n },\n connectAnimatedNodes: function connectAnimatedNodes(parentTag, childTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.connectAnimatedNodes(parentTag, childTag));\n },\n disconnectAnimatedNodes: function disconnectAnimatedNodes(parentTag, childTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.disconnectAnimatedNodes(parentTag, childTag));\n },\n startAnimatingNode: function startAnimatingNode(animationId, nodeTag, config, endCallback) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.startAnimatingNode(animationId, nodeTag, config, endCallback));\n },\n stopAnimation: function stopAnimation(animationId) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.stopAnimation(animationId));\n },\n setAnimatedNodeValue: function setAnimatedNodeValue(nodeTag, value) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.setAnimatedNodeValue(nodeTag, value));\n },\n setAnimatedNodeOffset: function setAnimatedNodeOffset(nodeTag, offset) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.setAnimatedNodeOffset(nodeTag, offset));\n },\n flattenAnimatedNodeOffset: function flattenAnimatedNodeOffset(nodeTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.flattenAnimatedNodeOffset(nodeTag));\n },\n extractAnimatedNodeOffset: function extractAnimatedNodeOffset(nodeTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.extractAnimatedNodeOffset(nodeTag));\n },\n connectAnimatedNodeToView: function connectAnimatedNodeToView(nodeTag, viewTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.connectAnimatedNodeToView(nodeTag, viewTag));\n },\n disconnectAnimatedNodeFromView: function disconnectAnimatedNodeFromView(nodeTag, viewTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.disconnectAnimatedNodeFromView(nodeTag, viewTag));\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(() => NativeAnimatedModule.restoreDefaultValues(nodeTag));\n }\n },\n dropAnimatedNode: function dropAnimatedNode(tag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.dropAnimatedNode(tag));\n },\n addAnimatedEventToView: function addAnimatedEventToView(viewTag, eventName, eventMapping) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.addAnimatedEventToView(viewTag, eventName, eventMapping));\n },\n\n removeAnimatedEventFromView(viewTag, eventName, animatedNodeTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => 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(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,\n addWhitelistedStyleProp,\n addWhitelistedTransformProp,\n addWhitelistedInterpolationParam,\n validateStyles,\n validateTransform,\n validateInterpolation,\n generateNewNodeTag,\n generateNewAnimationId,\n assertNativeAnimatedModule,\n shouldUseNativeDriver,\n 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};","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"hrefAttrs\", \"numberOfLines\", \"onClick\", \"onLayout\", \"onPress\", \"onMoveShouldSetResponder\", \"onMoveShouldSetResponderCapture\", \"onResponderEnd\", \"onResponderGrant\", \"onResponderMove\", \"onResponderReject\", \"onResponderRelease\", \"onResponderStart\", \"onResponderTerminate\", \"onResponderTerminationRequest\", \"onScrollShouldSetResponder\", \"onScrollShouldSetResponderCapture\", \"onSelectionChangeShouldSetResponder\", \"onSelectionChangeShouldSetResponderCapture\", \"onStartShouldSetResponder\", \"onStartShouldSetResponderCapture\", \"selectable\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 * 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';\nimport { useLocaleContext, getLocaleDirection } from '../../modules/useLocale';\nvar forwardPropsList = Object.assign({}, 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 = props => pick(props, forwardPropsList);\n\nvar Text = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var 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 rest = _objectWithoutPropertiesLoose(props, _excluded);\n\n var hasTextAncestor = React.useContext(TextAncestorContext);\n var hostRef = React.useRef(null);\n\n var _useLocaleContext = useLocaleContext(),\n contextDirection = _useLocaleContext.direction;\n\n useElementLayout(hostRef, onLayout);\n useResponderEvents(hostRef, {\n onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture,\n onResponderEnd,\n onResponderGrant,\n onResponderMove,\n onResponderReject,\n onResponderRelease,\n onResponderStart,\n onResponderTerminate,\n onResponderTerminationRequest,\n onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder,\n onStartShouldSetResponderCapture\n });\n var handleClick = React.useCallback(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 langDirection = props.lang != null ? getLocaleDirection(props.lang) : null;\n var componentDirection = props.dir || langDirection;\n var writingDirection = componentDirection || contextDirection;\n var supportedProps = pickProps(rest);\n supportedProps.dir = componentDirection; // 'auto' by default allows browsers to infer writing direction (root elements only)\n\n if (!hasTextAncestor) {\n supportedProps.dir = componentDirection != null ? componentDirection : 'auto';\n }\n\n if (onClick || onPress) {\n supportedProps.onClick = handleClick;\n }\n\n supportedProps.style = [numberOfLines != null && numberOfLines > 1 && {\n WebkitLineClamp: numberOfLines\n }, hasTextAncestor === true ? styles.textHasAncestor$raw : styles.text$raw, numberOfLines === 1 && styles.textOneLine, numberOfLines != null && numberOfLines > 1 && styles.textMultiLine, props.style, selectable === true && styles.selectable, selectable === false && styles.notSelectable, onPress && styles.pressable];\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 writingDirection\n });\n return hasTextAncestor ? element : /*#__PURE__*/React.createElement(TextAncestorContext.Provider, {\n value: true\n }, element);\n});\nText.displayName = 'Text';\nvar textStyle = {\n backgroundColor: 'transparent',\n border: '0 solid black',\n boxSizing: 'border-box',\n color: 'black',\n display: 'inline',\n font: '14px System',\n listStyle: 'none',\n margin: 0,\n padding: 0,\n textAlign: 'inherit',\n textDecoration: 'none',\n whiteSpace: 'pre-wrap',\n wordWrap: 'break-word'\n};\nvar styles = StyleSheet.create({\n text$raw: textStyle,\n textHasAncestor$raw: _objectSpread(_objectSpread({}, textStyle), {}, {\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 notSelectable: {\n userSelect: 'none'\n },\n selectable: {\n userSelect: 'text'\n },\n pressable: {\n cursor: 'pointer'\n }\n});\nexport default Text;","/* 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*)?|\\\\.\\\\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","import { Pressable as PressableNative } from 'react-native';\n\n// This component is added to support type-safe hover and focus states on web\n// https://necolas.github.io/react-native-web/docs/pressable/\nexport const Pressable = PressableNative;\n//# sourceMappingURL=Pressable.js.map","import color from 'color';\nconst getUnderlayColor = _ref => {\n let {\n theme,\n calculatedRippleColor,\n underlayColor\n } = _ref;\n if (underlayColor != null) {\n return underlayColor;\n }\n if (theme.isV3) {\n return color(calculatedRippleColor).rgb().string();\n }\n return color(calculatedRippleColor).fade(0.5).rgb().string();\n};\nconst getRippleColor = _ref2 => {\n let {\n theme,\n rippleColor\n } = _ref2;\n if (rippleColor) {\n return rippleColor;\n }\n if (theme.isV3) {\n return color(theme.colors.onSurface).alpha(0.12).rgb().string();\n }\n if (theme.dark) {\n return color(theme.colors.text).alpha(0.32).rgb().string();\n }\n return color(theme.colors.text).alpha(0.2).rgb().string();\n};\nexport const getTouchableRippleColors = _ref3 => {\n let {\n theme,\n rippleColor,\n underlayColor\n } = _ref3;\n const calculatedRippleColor = getRippleColor({\n theme,\n rippleColor\n });\n return {\n calculatedRippleColor,\n calculatedUnderlayColor: getUnderlayColor({\n theme,\n calculatedRippleColor,\n underlayColor\n })\n };\n};\n//# sourceMappingURL=utils.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { Platform, StyleSheet } from 'react-native';\nimport color from 'color';\nimport { Pressable } from './Pressable';\nimport { getTouchableRippleColors } from './utils';\nimport { SettingsContext } from '../../core/settings';\nimport { useInternalTheme } from '../../core/theming';\nimport { forwardRef } from '../../utils/forwardRef';\nimport hasTouchHandler from '../../utils/hasTouchHandler';\n/**\n * A wrapper for views that should respond to touches.\n * Provides a material \"ink ripple\" interaction effect for supported platforms (>= Android Lollipop).\n * On unsupported platforms, it falls back to a highlight effect.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { View } from 'react-native';\n * import { Text, TouchableRipple } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * console.log('Pressed')}\n * rippleColor=\"rgba(0, 0, 0, .32)\"\n * >\n * Press anywhere\n * \n * );\n *\n * export default MyComponent;\n * ```\n *\n * @extends Pressable props https://reactnative.dev/docs/Pressable#props\n */\nconst TouchableRipple = (_ref, ref) => {\n let {\n style,\n background: _background,\n borderless = false,\n disabled: disabledProp,\n rippleColor,\n underlayColor: _underlayColor,\n children,\n theme: themeOverrides,\n ...rest\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const {\n calculatedRippleColor\n } = getTouchableRippleColors({\n theme,\n rippleColor\n });\n const hoverColor = color(calculatedRippleColor).fade(0.5).rgb().string();\n const {\n rippleEffectEnabled\n } = React.useContext(SettingsContext);\n const {\n onPress,\n onLongPress,\n onPressIn,\n onPressOut\n } = rest;\n const handlePressIn = React.useCallback(e => {\n onPressIn === null || onPressIn === void 0 ? void 0 : onPressIn(e);\n if (rippleEffectEnabled) {\n const {\n centered\n } = rest;\n const button = e.currentTarget;\n const style = window.getComputedStyle(button);\n const dimensions = button.getBoundingClientRect();\n let touchX;\n let touchY;\n const {\n changedTouches,\n touches\n } = e.nativeEvent;\n const touch = (touches === null || touches === void 0 ? void 0 : touches[0]) ?? (changedTouches === null || changedTouches === void 0 ? void 0 : changedTouches[0]);\n\n // If centered or it was pressed using keyboard - enter or space\n if (centered || !touch) {\n touchX = dimensions.width / 2;\n touchY = dimensions.height / 2;\n } else {\n touchX = touch.locationX ?? e.pageX;\n touchY = touch.locationY ?? e.pageY;\n }\n\n // Get the size of the button to determine how big the ripple should be\n const size = centered ?\n // If ripple is always centered, we don't need to make it too big\n Math.min(dimensions.width, dimensions.height) * 1.25 :\n // Otherwise make it twice as big so clicking on one end spreads ripple to other\n Math.max(dimensions.width, dimensions.height) * 2;\n\n // Create a container for our ripple effect so we don't need to change the parent's style\n const container = document.createElement('span');\n container.setAttribute('data-paper-ripple', '');\n Object.assign(container.style, {\n position: 'absolute',\n pointerEvents: 'none',\n top: '0',\n left: '0',\n right: '0',\n bottom: '0',\n borderTopLeftRadius: style.borderTopLeftRadius,\n borderTopRightRadius: style.borderTopRightRadius,\n borderBottomRightRadius: style.borderBottomRightRadius,\n borderBottomLeftRadius: style.borderBottomLeftRadius,\n overflow: centered ? 'visible' : 'hidden'\n });\n\n // Create span to show the ripple effect\n const ripple = document.createElement('span');\n Object.assign(ripple.style, {\n position: 'absolute',\n pointerEvents: 'none',\n backgroundColor: calculatedRippleColor,\n borderRadius: '50%',\n /* Transition configuration */\n transitionProperty: 'transform opacity',\n transitionDuration: `${Math.min(size * 1.5, 350)}ms`,\n transitionTimingFunction: 'linear',\n transformOrigin: 'center',\n /* We'll animate these properties */\n transform: 'translate3d(-50%, -50%, 0) scale3d(0.1, 0.1, 0.1)',\n opacity: '0.5',\n // Position the ripple where cursor was\n left: `${touchX}px`,\n top: `${touchY}px`,\n width: `${size}px`,\n height: `${size}px`\n });\n\n // Finally, append it to DOM\n container.appendChild(ripple);\n button.appendChild(container);\n\n // rAF runs in the same frame as the event handler\n // Use double rAF to ensure the transition class is added in next frame\n // This will make sure that the transition animation is triggered\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n Object.assign(ripple.style, {\n transform: 'translate3d(-50%, -50%, 0) scale3d(1, 1, 1)',\n opacity: '1'\n });\n });\n });\n }\n }, [onPressIn, rest, rippleEffectEnabled, calculatedRippleColor]);\n const handlePressOut = React.useCallback(e => {\n onPressOut === null || onPressOut === void 0 ? void 0 : onPressOut(e);\n if (rippleEffectEnabled) {\n const containers = e.currentTarget.querySelectorAll('[data-paper-ripple]');\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n containers.forEach(container => {\n const ripple = container.firstChild;\n Object.assign(ripple.style, {\n transitionDuration: '250ms',\n opacity: 0\n });\n\n // Finally remove the span after the transition\n setTimeout(() => {\n const {\n parentNode\n } = container;\n if (parentNode) {\n parentNode.removeChild(container);\n }\n }, 500);\n });\n });\n });\n }\n }, [onPressOut, rippleEffectEnabled]);\n const hasPassedTouchHandler = hasTouchHandler({\n onPress,\n onLongPress,\n onPressIn,\n onPressOut\n });\n const disabled = disabledProp || !hasPassedTouchHandler;\n return /*#__PURE__*/React.createElement(Pressable, _extends({}, rest, {\n ref: ref,\n onPressIn: handlePressIn,\n onPressOut: handlePressOut,\n disabled: disabled,\n style: state => [styles.touchable, borderless && styles.borderless,\n // focused state is not ready yet: https://github.com/necolas/react-native-web/issues/1849\n // state.focused && { backgroundColor: ___ },\n state.hovered && {\n backgroundColor: hoverColor\n }, typeof style === 'function' ? style(state) : style]\n }), state => React.Children.only(typeof children === 'function' ? children(state) : children));\n};\n\n/**\n * Whether ripple effect is supported.\n */\nTouchableRipple.supported = true;\nconst styles = StyleSheet.create({\n touchable: {\n position: 'relative',\n ...(Platform.OS === 'web' && {\n cursor: 'pointer',\n transition: '150ms background-color'\n })\n },\n borderless: {\n overflow: 'hidden'\n }\n});\nconst Component = forwardRef(TouchableRipple);\nexport default Component;\n//# sourceMappingURL=TouchableRipple.js.map","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 = component => {\n var node;\n\n try {\n node = findDOMNode(component);\n } catch (e) {}\n\n return node;\n};\n\nexport default findNodeHandle;","export function val(v) {\n return v && v.__getValue ? v.__getValue() : v || 0;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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\nclass AnimatedNode {\n __attach() {}\n\n __detach() {\n if (this.__isNative && this.__nativeTag != null) {\n NativeAnimatedHelper.API.dropAnimatedNode(this.__nativeTag);\n this.__nativeTag = undefined;\n }\n }\n\n __getValue() {}\n\n __getAnimatedValue() {\n return this.__getValue();\n }\n\n __addChild(child) {}\n\n __removeChild(child) {}\n\n __getChildren() {\n return [];\n }\n /* Methods and props used by native Animated impl */\n\n\n constructor() {\n this._listeners = {};\n }\n\n __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 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 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 removeAllListeners() {\n this._listeners = {};\n\n if (this.__isNative) {\n this._stopListeningForNativeValueUpdates();\n }\n }\n\n hasListeners() {\n return !!Object.keys(this._listeners).length;\n }\n\n _startListeningToNativeValueUpdates() {\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', data => {\n if (data.tag !== this.__getNativeTag()) {\n return;\n }\n\n this._onAnimatedValueUpdateReceived(data.value);\n });\n }\n\n _onAnimatedValueUpdateReceived(value) {\n this.__callListeners(value);\n }\n\n __callListeners(value) {\n for (var _key in this._listeners) {\n this._listeners[_key]({\n value\n });\n }\n }\n\n _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 __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 __getNativeConfig() {\n throw new Error('This JS animated node type cannot be used as native animated node');\n }\n\n toJSON() {\n return this.__getValue();\n }\n\n}\n\nexport default AnimatedNode;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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,\n 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) {\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;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"onScroll\", \"onTouchMove\", \"onWheel\", \"scrollEnabled\", \"scrollEventThrottle\", \"showsHorizontalScrollIndicator\", \"showsVerticalScrollIndicator\", \"style\"];\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((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, _excluded);\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 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(() => {\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;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"contentContainerStyle\", \"horizontal\", \"onContentSizeChange\", \"refreshControl\", \"stickyHeaderIndices\", \"pagingEnabled\", \"forwardedRef\", \"keyboardDismissMode\", \"onScroll\", \"centerContent\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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\n getInitialState() {\n return this.scrollResponderMixinGetInitialState();\n },\n\n 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() {\n return this;\n },\n\n getScrollableNode() {\n return this._scrollNodeRef;\n },\n\n getInnerViewRef() {\n return this._innerViewRef;\n },\n\n getInnerViewNode() {\n return this._innerViewRef;\n },\n\n 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(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(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,\n y,\n animated\n });\n },\n\n 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 centerContent = _this$props.centerContent,\n other = _objectWithoutPropertiesLoose(_this$props, _excluded);\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(prop => style && style[prop] !== undefined);\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, (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: [horizontal && styles.contentContainerHorizontal, centerContent && styles.contentContainerCenterContent, 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\n _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\n _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\n _setInnerViewRef(node) {\n this._innerViewRef = node;\n },\n\n _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\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 contentContainerCenterContent: {\n justifyContent: 'center',\n flexGrow: 1\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((props, forwardedRef) => {\n return /*#__PURE__*/React.createElement(ScrollView, _extends({}, props, {\n forwardedRef: forwardedRef\n }));\n});\nForwardedScrollView.displayName = 'ScrollView';\nexport default ForwardedScrollView;","/**\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 class ImageUriCache {\n static has(uri) {\n var entries = ImageUriCache._entries;\n var isDataUri = dataUriPattern.test(uri);\n return isDataUri || Boolean(entries[uri]);\n }\n\n static 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,\n refCount: 1\n };\n }\n }\n\n static 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 static _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(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}\nImageUriCache._maximumEntries = 256;\nImageUriCache._entries = {};\nvar id = 0;\nvar requests = {};\nvar ImageLoader = {\n 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\n 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\n has(uri) {\n return ImageUriCache.has(uri);\n },\n\n load(uri, onLoad, onError) {\n id += 1;\n var image = new window.Image();\n image.onerror = onError;\n\n image.onload = e => {\n // avoid blocking the main thread\n var onDecode = () => onLoad({\n nativeEvent: e\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\n prefetch(uri) {\n return new Promise((resolve, reject) => {\n ImageLoader.load(uri, () => {\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\n queryCache(uris) {\n var result = {};\n uris.forEach(u => {\n if (ImageUriCache.has(u)) {\n result[u] = 'disk/memory';\n }\n });\n return Promise.resolve(result);\n }\n\n};\nexport default ImageLoader;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"accessibilityLabel\", \"blurRadius\", \"defaultSource\", \"draggable\", \"onError\", \"onLayout\", \"onLoad\", \"onLoadEnd\", \"onLoadStart\", \"pointerEvents\", \"source\", \"style\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 { getAssetByID } from '../../modules/AssetRegistry';\nimport { createBoxShadowValue } from '../StyleSheet/preprocess';\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 = StyleSheet.flatten(style);\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 = createBoxShadowValue(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\n if (asset == null) {\n throw new Error(\"Image: asset with ID \\\"\" + source + \"\\\" could not be found. Please check the image source or packager.\");\n }\n\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((prev, curr) => Math.abs(curr - preferredScale) < Math.abs(prev - preferredScale) ? curr : prev);\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((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, _excluded);\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(() => {\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 style: styles.accessibilityImage$raw,\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(() => {\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,\n filter\n }, backgroundSize != null && {\n 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 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 accessibilityImage$raw: _objectSpread(_objectSpread({}, StyleSheet.absoluteFillObject), {}, {\n height: '100%',\n opacity: 0,\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',\n backgroundSize: 'auto'\n },\n repeat: {\n backgroundPosition: '0',\n backgroundRepeat: 'repeat',\n backgroundSize: 'auto'\n },\n stretch: {\n backgroundSize: '100% 100%'\n }\n});\nexport default ImageWithStatics;","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { I18nManager, Image, Platform } from 'react-native';\nimport { accessibilityProps } from './MaterialCommunityIcon';\nimport { Consumer as SettingsConsumer } from '../core/settings';\nimport { useInternalTheme } from '../core/theming';\nconst isImageSource = source =>\n// source is an object with uri\ntypeof source === 'object' && source !== null && Object.prototype.hasOwnProperty.call(source, 'uri') && typeof source.uri === 'string' ||\n// source is a module, e.g. - require('image')\ntypeof source === 'number' ||\n// image url on web\nPlatform.OS === 'web' && typeof source === 'string' && (source.startsWith('data:image') || /\\.(bmp|jpg|jpeg|png|gif|svg)$/.test(source));\nconst getIconId = source => {\n if (typeof source === 'object' && source !== null && Object.prototype.hasOwnProperty.call(source, 'uri') && typeof source.uri === 'string') {\n return source.uri;\n }\n return source;\n};\nexport const isValidIcon = source => typeof source === 'string' || typeof source === 'function' || isImageSource(source);\nexport const isEqualIcon = (a, b) => a === b || getIconId(a) === getIconId(b);\n/**\n * An icon component which renders icon from vector library.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Icon, MD3Colors } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * \n * );\n *\n * export default MyComponent;\n * ```\n */\n\nconst Icon = _ref => {\n let {\n source,\n color,\n size,\n theme: themeOverrides,\n testID,\n ...rest\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const direction = typeof source === 'object' && source.direction && source.source ? source.direction === 'auto' ? I18nManager.getConstants().isRTL ? 'rtl' : 'ltr' : source.direction : null;\n const s = typeof source === 'object' && source.direction && source.source ? source.source : source;\n const iconColor = color || (theme.isV3 ? theme.colors.onSurface : theme.colors.text);\n if (isImageSource(s)) {\n return /*#__PURE__*/React.createElement(Image, _extends({}, rest, {\n testID: testID,\n source: s,\n style: [{\n transform: [{\n scaleX: direction === 'rtl' ? -1 : 1\n }]\n }, {\n width: size,\n height: size,\n tintColor: color,\n resizeMode: `contain`\n }]\n }, accessibilityProps, {\n accessibilityIgnoresInvertColors: true\n }));\n } else if (typeof s === 'string') {\n return /*#__PURE__*/React.createElement(SettingsConsumer, null, _ref2 => {\n let {\n icon\n } = _ref2;\n return icon === null || icon === void 0 ? void 0 : icon({\n name: s,\n color: iconColor,\n size,\n direction,\n testID\n });\n });\n } else if (typeof s === 'function') {\n return s({\n color: iconColor,\n size,\n direction,\n testID\n });\n }\n return null;\n};\nexport default Icon;\n//# sourceMappingURL=Icon.js.map","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 '../canUseDom';\n\nvar 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() {\n supported = true;\n return false;\n }\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 = e => listener(normalizeEvent(e));\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 createEventHandle from '../createEventHandle';\nimport canUseDOM from '../canUseDom';\n\nvar supportsPointerEvent = () => !!(typeof window !== 'undefined' && window.PointerEvent != null);\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,\n modality\n };\n listeners.forEach(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 () => {\n listeners.delete(listener);\n };\n}\nexport function testOnly_resetActiveModality() {\n isEmulatingMouseEvents = false;\n activeModality = KEYBOARD;\n modality = KEYBOARD;\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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(() => new Map());\n var addListener = useStable(() => {\n var addEventListener = createEventHandle(event, options);\n return (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(() => {\n return () => {\n targetListeners.forEach(removeListener => {\n removeListener();\n });\n targetListeners.clear();\n };\n }, [targetListeners]);\n return addListener;\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 = () => !!(typeof window !== 'undefined' && window.PointerEvent != null);\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(() => {\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) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"children\", \"delayLongPress\", \"delayPressIn\", \"delayPressOut\", \"disabled\", \"focusable\", \"onBlur\", \"onContextMenu\", \"onFocus\", \"onHoverIn\", \"onHoverOut\", \"onKeyDown\", \"onLongPress\", \"onPress\", \"onPressMove\", \"onPressIn\", \"onPressOut\", \"style\", \"testOnly_hovered\", \"testOnly_pressed\"];\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, _excluded);\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(() => ({\n delayLongPress,\n delayPressStart: delayPressIn,\n delayPressEnd: delayPressOut,\n disabled,\n onLongPress,\n onPress,\n onPressChange: setPressed,\n onPressStart: onPressIn,\n onPressMove,\n onPressEnd: onPressOut\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,\n onHoverChange: setHovered,\n onHoverStart: onHoverIn,\n onHoverEnd: onHoverOut\n });\n var interactionState = {\n hovered,\n focused,\n pressed\n };\n var blurHandler = React.useCallback(e => {\n if (e.nativeEvent.target === hostRef.current) {\n setFocused(false);\n\n if (onBlur != null) {\n onBlur(e);\n }\n }\n }, [hostRef, setFocused, onBlur]);\n var focusHandler = React.useCallback(e => {\n if (e.nativeEvent.target === hostRef.current) {\n setFocused(true);\n\n if (onFocus != null) {\n onFocus(e);\n }\n }\n }, [hostRef, setFocused, onFocus]);\n var contextMenuHandler = React.useCallback(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(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 pointerEvents: disabled ? 'none' : rest.pointerEvents,\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;","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","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 React from 'react';\n\nimport { UnavailabilityError } from './errors/UnavailabilityError';\n\nexport function requireNativeViewManager

(viewName: string): React.ComponentType

{\n throw new UnavailabilityError('expo-modules-core', 'requireNativeViewManager');\n}\n","import compareVersions from 'compare-versions';\n\nimport { CodedError } from './errors/CodedError';\n\nconst postedWarnings: { [key: string]: boolean } = {};\n\n/**\n * Used for deprecating values and throwing an error if a given version of Expo has passed.\n */\nexport default function deprecate(\n library: string,\n deprecatedAPI: string,\n options: {\n replacement?: string;\n currentVersion?: string;\n versionToRemove?: string;\n } = {}\n): void {\n const { currentVersion, versionToRemove, replacement } = options;\n const code = codeFromLibrary(library);\n const key = `${code}:${deprecatedAPI}:${replacement}`;\n if (!postedWarnings[key]) {\n postedWarnings[key] = true;\n }\n\n if (\n !currentVersion ||\n !versionToRemove ||\n compareVersions(currentVersion, versionToRemove) >= 0\n ) {\n let message = `\\`${deprecatedAPI}\\` has been removed`;\n if (versionToRemove) {\n message = `${message} as of version \"${versionToRemove}\"`;\n }\n if (replacement && replacement.length) {\n message = `${message} please migrate to: \\`${replacement}\\``;\n }\n\n throw new CodedError(`ERR_DEPRECATED_API`, prependLibrary(library, message));\n }\n\n let message = `\\`${deprecatedAPI}\\` has been deprecated`;\n if (replacement && replacement.length) {\n message = `${message} in favor of \\`${replacement}\\``;\n }\n if (versionToRemove && versionToRemove.length) {\n message = `${message} and will be removed in version \"${versionToRemove}\"`;\n }\n console.warn(prependLibrary(library, message));\n}\n\nfunction prependLibrary(library: string, message: string): string {\n return `${library}: ${message}`;\n}\n\n/**\n * Transform format:\n * Expo.AR -> EXPO_AR\n * expo-ar -> EXPO_AR\n */\nfunction codeFromLibrary(library: string): string {\n const code = library.replace(/[-.]/g, '_').toUpperCase();\n return code;\n}\n","export enum PermissionStatus {\n /**\n * User has granted the permission.\n */\n GRANTED = 'granted',\n /**\n * User hasn't granted or denied the permission yet.\n */\n UNDETERMINED = 'undetermined',\n /**\n * User has denied the permission.\n */\n DENIED = 'denied',\n}\n\n/**\n * Permission expiration time. Currently, all permissions are granted permanently.\n */\nexport type PermissionExpiration = 'never' | number;\n\n/**\n * An object obtained by permissions get and request functions.\n */\nexport interface PermissionResponse {\n /**\n * Determines the status of the permission.\n */\n status: PermissionStatus;\n /**\n * Determines time when the permission expires.\n */\n expires: PermissionExpiration;\n /**\n * A convenience boolean that indicates if the permission is granted.\n */\n granted: boolean;\n /**\n * Indicates if user can be asked again for specific permission.\n * If not, one should be directed to the Settings app\n * in order to enable/disable the permission.\n */\n canAskAgain: boolean;\n}\n","import { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { PermissionResponse } from './PermissionsInterface';\n\n// These types are identical, but improves the readability for suggestions in editors\ntype RequestPermissionMethod = () => Promise;\ntype GetPermissionMethod = () => Promise;\n\ninterface PermissionHookMethods {\n /** The permission method that requests the user to grant permission. */\n requestMethod: (options?: Options) => Promise;\n /** The permission method that only fetches the current permission status. */\n getMethod: (options?: Options) => Promise;\n}\n\ninterface PermissionHookBehavior {\n /** If the hook should automatically fetch the current permission status, without asking the user. */\n get?: boolean;\n /** If the hook should automatically request the user to grant permission. */\n request?: boolean;\n}\n\nexport type PermissionHookOptions = PermissionHookBehavior & Options;\n\n/**\n * Get or request permission for protected functionality within the app.\n * It uses separate permission requesters to interact with a single permission.\n * By default, the hook will only retrieve the permission status.\n */\nfunction usePermission(\n methods: PermissionHookMethods,\n options?: PermissionHookOptions\n): [Permission | null, RequestPermissionMethod, GetPermissionMethod] {\n const isMounted = useRef(true);\n const [status, setStatus] = useState(null);\n const { get = true, request = false, ...permissionOptions } = options || {};\n\n const getPermission = useCallback(async () => {\n const response = await methods.getMethod(\n Object.keys(permissionOptions).length > 0 ? (permissionOptions as Options) : undefined\n );\n if (isMounted.current) setStatus(response);\n return response;\n }, [methods.getMethod]);\n\n const requestPermission = useCallback(async () => {\n const response = await methods.requestMethod(\n Object.keys(permissionOptions).length > 0 ? (permissionOptions as Options) : undefined\n );\n if (isMounted.current) setStatus(response);\n return response;\n }, [methods.requestMethod]);\n\n useEffect(\n function runMethods() {\n if (request) requestPermission();\n if (!request && get) getPermission();\n },\n [get, request, requestPermission, getPermission]\n );\n\n // Workaround for unmounting components receiving state updates\n useEffect(function didMount() {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n\n return [status, requestPermission, getPermission];\n}\n\n/**\n * Create a new permission hook with the permission methods built-in.\n * This can be used to quickly create specific permission hooks in every module.\n */\nexport function createPermissionHook(\n methods: PermissionHookMethods\n) {\n return (options?: PermissionHookOptions) =>\n usePermission(methods, options);\n}\n","import { DeviceEventEmitter } from 'react-native';\n\nimport { EventEmitter, Subscription } from './EventEmitter';\nimport NativeModulesProxy from './NativeModulesProxy';\nimport { ProxyNativeModule } from './NativeModulesProxy.types';\nimport { requireNativeViewManager } from './NativeViewManagerAdapter';\nimport Platform from './Platform';\nimport SyntheticPlatformEmitter from './SyntheticPlatformEmitter';\nimport { CodedError } from './errors/CodedError';\nimport { UnavailabilityError } from './errors/UnavailabilityError';\n\nimport './sweet/setUpErrorManager.fx';\n\nexport { default as deprecate } from './deprecate';\n\nexport {\n DeviceEventEmitter,\n EventEmitter,\n NativeModulesProxy,\n ProxyNativeModule,\n Platform,\n Subscription,\n SyntheticPlatformEmitter,\n requireNativeViewManager,\n // Errors\n CodedError,\n UnavailabilityError,\n};\n\nexport * from './requireNativeModule';\nexport * from './TypedArrays.types';\n\n/**\n * @deprecated renamed to `DeviceEventEmitter`\n */\nexport const RCTDeviceEventEmitter = DeviceEventEmitter;\n\nexport * from './PermissionsInterface';\nexport * from './PermissionsHook';\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","export function goBack() {\n return {\n type: 'GO_BACK'\n };\n}\n// eslint-disable-next-line no-redeclare\nexport function navigate() {\n if (typeof (arguments.length <= 0 ? undefined : arguments[0]) === 'string') {\n return {\n type: 'NAVIGATE',\n payload: {\n name: arguments.length <= 0 ? undefined : arguments[0],\n params: arguments.length <= 1 ? undefined : arguments[1]\n }\n };\n } else {\n const payload = (arguments.length <= 0 ? undefined : arguments[0]) || {};\n if (!payload.hasOwnProperty('key') && !payload.hasOwnProperty('name')) {\n throw new Error('You need to specify name or key when calling navigate with an object as the argument. See https://reactnavigation.org/docs/navigation-actions#navigate for usage.');\n }\n return {\n type: 'NAVIGATE',\n payload\n };\n }\n}\nexport function reset(state) {\n return {\n type: 'RESET',\n payload: state\n };\n}\nexport function setParams(params) {\n return {\n type: 'SET_PARAMS',\n payload: {\n params\n }\n };\n}\n//# sourceMappingURL=CommonActions.js.map","import { nanoid } from 'nanoid/non-secure';\n/**\n * Base router object that can be used when writing custom routers.\n * This provides few helper methods to handle common actions such as `RESET`.\n */\nconst BaseRouter = {\n getStateForAction(state, action) {\n switch (action.type) {\n case 'SET_PARAMS':\n {\n const index = action.source ? state.routes.findIndex(r => r.key === action.source) : state.index;\n if (index === -1) {\n return null;\n }\n return {\n ...state,\n routes: state.routes.map((r, i) => i === index ? {\n ...r,\n params: {\n ...r.params,\n ...action.payload.params\n }\n } : r)\n };\n }\n case 'RESET':\n {\n const nextState = action.payload;\n if (nextState.routes.length === 0 || nextState.routes.some(route => !state.routeNames.includes(route.name))) {\n return null;\n }\n if (nextState.stale === false) {\n if (state.routeNames.length !== nextState.routeNames.length || nextState.routeNames.some(name => !state.routeNames.includes(name))) {\n return null;\n }\n return {\n ...nextState,\n routes: nextState.routes.map(route => route.key ? route : {\n ...route,\n key: `${route.name}-${nanoid()}`\n })\n };\n }\n return nextState;\n }\n default:\n return null;\n }\n },\n shouldActionChangeFocus(action) {\n return action.type === 'NAVIGATE';\n }\n};\nexport default BaseRouter;\n//# sourceMappingURL=BaseRouter.js.map","import { nanoid } from 'nanoid/non-secure';\nimport BaseRouter from './BaseRouter';\nconst TYPE_ROUTE = 'route';\nexport const TabActions = {\n jumpTo(name, params) {\n return {\n type: 'JUMP_TO',\n payload: {\n name,\n params\n }\n };\n }\n};\nconst getRouteHistory = (routes, index, backBehavior, initialRouteName) => {\n const history = [{\n type: TYPE_ROUTE,\n key: routes[index].key\n }];\n let initialRouteIndex;\n switch (backBehavior) {\n case 'order':\n for (let i = index; i > 0; i--) {\n history.unshift({\n type: TYPE_ROUTE,\n key: routes[i - 1].key\n });\n }\n break;\n case 'firstRoute':\n if (index !== 0) {\n history.unshift({\n type: TYPE_ROUTE,\n key: routes[0].key\n });\n }\n break;\n case 'initialRoute':\n initialRouteIndex = routes.findIndex(route => route.name === initialRouteName);\n initialRouteIndex = initialRouteIndex === -1 ? 0 : initialRouteIndex;\n if (index !== initialRouteIndex) {\n history.unshift({\n type: TYPE_ROUTE,\n key: routes[initialRouteIndex].key\n });\n }\n break;\n case 'history':\n // The history will fill up on navigation\n break;\n }\n return history;\n};\nconst changeIndex = (state, index, backBehavior, initialRouteName) => {\n let history;\n if (backBehavior === 'history') {\n const currentKey = state.routes[index].key;\n history = state.history.filter(it => it.type === 'route' ? it.key !== currentKey : false).concat({\n type: TYPE_ROUTE,\n key: currentKey\n });\n } else {\n history = getRouteHistory(state.routes, index, backBehavior, initialRouteName);\n }\n return {\n ...state,\n index,\n history\n };\n};\nexport default function TabRouter(_ref) {\n let {\n initialRouteName,\n backBehavior = 'firstRoute'\n } = _ref;\n const router = {\n ...BaseRouter,\n type: 'tab',\n getInitialState(_ref2) {\n let {\n routeNames,\n routeParamList\n } = _ref2;\n const index = initialRouteName !== undefined && routeNames.includes(initialRouteName) ? routeNames.indexOf(initialRouteName) : 0;\n const routes = routeNames.map(name => ({\n name,\n key: `${name}-${nanoid()}`,\n params: routeParamList[name]\n }));\n const history = getRouteHistory(routes, index, backBehavior, initialRouteName);\n return {\n stale: false,\n type: 'tab',\n key: `tab-${nanoid()}`,\n index,\n routeNames,\n history,\n routes\n };\n },\n getRehydratedState(partialState, _ref3) {\n var _state$routes, _state$history;\n let {\n routeNames,\n routeParamList\n } = _ref3;\n let state = partialState;\n if (state.stale === false) {\n return state;\n }\n const routes = routeNames.map(name => {\n const route = state.routes.find(r => r.name === name);\n return {\n ...route,\n name,\n key: route && route.name === name && route.key ? route.key : `${name}-${nanoid()}`,\n params: routeParamList[name] !== undefined ? {\n ...routeParamList[name],\n ...(route ? route.params : undefined)\n } : route ? route.params : undefined\n };\n });\n const index = Math.min(Math.max(routeNames.indexOf((_state$routes = state.routes[(state === null || state === void 0 ? void 0 : state.index) ?? 0]) === null || _state$routes === void 0 ? void 0 : _state$routes.name), 0), routes.length - 1);\n const history = ((_state$history = state.history) === null || _state$history === void 0 ? void 0 : _state$history.filter(it => routes.find(r => r.key === it.key))) ?? [];\n return changeIndex({\n stale: false,\n type: 'tab',\n key: `tab-${nanoid()}`,\n index,\n routeNames,\n history,\n routes\n }, index, backBehavior, initialRouteName);\n },\n getStateForRouteNamesChange(state, _ref4) {\n let {\n routeNames,\n routeParamList,\n routeKeyChanges\n } = _ref4;\n const routes = routeNames.map(name => state.routes.find(r => r.name === name && !routeKeyChanges.includes(r.name)) || {\n name,\n key: `${name}-${nanoid()}`,\n params: routeParamList[name]\n });\n const index = Math.max(0, routeNames.indexOf(state.routes[state.index].name));\n let history = state.history.filter(\n // Type will always be 'route' for tabs, but could be different in a router extending this (e.g. drawer)\n it => it.type !== 'route' || routes.find(r => r.key === it.key));\n if (!history.length) {\n history = getRouteHistory(routes, index, backBehavior, initialRouteName);\n }\n return {\n ...state,\n history,\n routeNames,\n routes,\n index\n };\n },\n getStateForRouteFocus(state, key) {\n const index = state.routes.findIndex(r => r.key === key);\n if (index === -1 || index === state.index) {\n return state;\n }\n return changeIndex(state, index, backBehavior, initialRouteName);\n },\n getStateForAction(state, action, _ref5) {\n let {\n routeParamList,\n routeGetIdList\n } = _ref5;\n switch (action.type) {\n case 'JUMP_TO':\n case 'NAVIGATE':\n {\n let index = -1;\n if (action.type === 'NAVIGATE' && action.payload.key) {\n index = state.routes.findIndex(route => route.key === action.payload.key);\n } else {\n index = state.routes.findIndex(route => route.name === action.payload.name);\n }\n if (index === -1) {\n return null;\n }\n return changeIndex({\n ...state,\n routes: state.routes.map((route, i) => {\n if (i !== index) {\n return route;\n }\n const getId = routeGetIdList[route.name];\n const currentId = getId === null || getId === void 0 ? void 0 : getId({\n params: route.params\n });\n const nextId = getId === null || getId === void 0 ? void 0 : getId({\n params: action.payload.params\n });\n const key = currentId === nextId ? route.key : `${route.name}-${nanoid()}`;\n let params;\n if (action.type === 'NAVIGATE' && action.payload.merge && currentId === nextId) {\n params = action.payload.params !== undefined || routeParamList[route.name] !== undefined ? {\n ...routeParamList[route.name],\n ...route.params,\n ...action.payload.params\n } : route.params;\n } else {\n params = routeParamList[route.name] !== undefined ? {\n ...routeParamList[route.name],\n ...action.payload.params\n } : action.payload.params;\n }\n const path = action.type === 'NAVIGATE' && action.payload.path != null ? action.payload.path : route.path;\n return params !== route.params || path !== route.path ? {\n ...route,\n key,\n path,\n params\n } : route;\n })\n }, index, backBehavior, initialRouteName);\n }\n case 'GO_BACK':\n {\n if (state.history.length === 1) {\n return null;\n }\n const previousKey = state.history[state.history.length - 2].key;\n const index = state.routes.findIndex(route => route.key === previousKey);\n if (index === -1) {\n return null;\n }\n return {\n ...state,\n history: state.history.slice(0, -1),\n index\n };\n }\n default:\n return BaseRouter.getStateForAction(state, action);\n }\n },\n shouldActionChangeFocus(action) {\n return action.type === 'NAVIGATE';\n },\n actionCreators: TabActions\n };\n return router;\n}\n//# sourceMappingURL=TabRouter.js.map","import { nanoid } from 'nanoid/non-secure';\nimport TabRouter, { TabActions } from './TabRouter';\nexport const DrawerActions = {\n ...TabActions,\n openDrawer() {\n return {\n type: 'OPEN_DRAWER'\n };\n },\n closeDrawer() {\n return {\n type: 'CLOSE_DRAWER'\n };\n },\n toggleDrawer() {\n return {\n type: 'TOGGLE_DRAWER'\n };\n }\n};\nexport default function DrawerRouter(_ref) {\n let {\n defaultStatus = 'closed',\n ...rest\n } = _ref;\n const router = TabRouter(rest);\n const isDrawerInHistory = state => {\n var _state$history;\n return Boolean((_state$history = state.history) === null || _state$history === void 0 ? void 0 : _state$history.some(it => it.type === 'drawer'));\n };\n const addDrawerToHistory = state => {\n if (isDrawerInHistory(state)) {\n return state;\n }\n return {\n ...state,\n history: [...state.history, {\n type: 'drawer',\n status: defaultStatus === 'open' ? 'closed' : 'open'\n }]\n };\n };\n const removeDrawerFromHistory = state => {\n if (!isDrawerInHistory(state)) {\n return state;\n }\n return {\n ...state,\n history: state.history.filter(it => it.type !== 'drawer')\n };\n };\n const openDrawer = state => {\n if (defaultStatus === 'open') {\n return removeDrawerFromHistory(state);\n }\n return addDrawerToHistory(state);\n };\n const closeDrawer = state => {\n if (defaultStatus === 'open') {\n return addDrawerToHistory(state);\n }\n return removeDrawerFromHistory(state);\n };\n return {\n ...router,\n type: 'drawer',\n getInitialState(_ref2) {\n let {\n routeNames,\n routeParamList,\n routeGetIdList\n } = _ref2;\n const state = router.getInitialState({\n routeNames,\n routeParamList,\n routeGetIdList\n });\n return {\n ...state,\n default: defaultStatus,\n stale: false,\n type: 'drawer',\n key: `drawer-${nanoid()}`\n };\n },\n getRehydratedState(partialState, _ref3) {\n let {\n routeNames,\n routeParamList,\n routeGetIdList\n } = _ref3;\n if (partialState.stale === false) {\n return partialState;\n }\n let state = router.getRehydratedState(partialState, {\n routeNames,\n routeParamList,\n routeGetIdList\n });\n if (isDrawerInHistory(partialState)) {\n // Re-sync the drawer entry in history to correct it if it was wrong\n state = removeDrawerFromHistory(state);\n state = addDrawerToHistory(state);\n }\n return {\n ...state,\n default: defaultStatus,\n type: 'drawer',\n key: `drawer-${nanoid()}`\n };\n },\n getStateForRouteFocus(state, key) {\n const result = router.getStateForRouteFocus(state, key);\n return closeDrawer(result);\n },\n getStateForAction(state, action, options) {\n switch (action.type) {\n case 'OPEN_DRAWER':\n return openDrawer(state);\n case 'CLOSE_DRAWER':\n return closeDrawer(state);\n case 'TOGGLE_DRAWER':\n if (isDrawerInHistory(state)) {\n return removeDrawerFromHistory(state);\n }\n return addDrawerToHistory(state);\n case 'JUMP_TO':\n case 'NAVIGATE':\n {\n const result = router.getStateForAction(state, action, options);\n if (result != null && result.index !== state.index) {\n return closeDrawer(result);\n }\n return result;\n }\n case 'GO_BACK':\n if (isDrawerInHistory(state)) {\n return removeDrawerFromHistory(state);\n }\n return router.getStateForAction(state, action, options);\n default:\n return router.getStateForAction(state, action, options);\n }\n },\n actionCreators: DrawerActions\n };\n}\n//# sourceMappingURL=DrawerRouter.js.map","import { nanoid } from 'nanoid/non-secure';\nimport BaseRouter from './BaseRouter';\nexport const StackActions = {\n replace(name, params) {\n return {\n type: 'REPLACE',\n payload: {\n name,\n params\n }\n };\n },\n push(name, params) {\n return {\n type: 'PUSH',\n payload: {\n name,\n params\n }\n };\n },\n pop() {\n let count = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n return {\n type: 'POP',\n payload: {\n count\n }\n };\n },\n popToTop() {\n return {\n type: 'POP_TO_TOP'\n };\n }\n};\nexport default function StackRouter(options) {\n const router = {\n ...BaseRouter,\n type: 'stack',\n getInitialState(_ref) {\n let {\n routeNames,\n routeParamList\n } = _ref;\n const initialRouteName = options.initialRouteName !== undefined && routeNames.includes(options.initialRouteName) ? options.initialRouteName : routeNames[0];\n return {\n stale: false,\n type: 'stack',\n key: `stack-${nanoid()}`,\n index: 0,\n routeNames,\n routes: [{\n key: `${initialRouteName}-${nanoid()}`,\n name: initialRouteName,\n params: routeParamList[initialRouteName]\n }]\n };\n },\n getRehydratedState(partialState, _ref2) {\n let {\n routeNames,\n routeParamList\n } = _ref2;\n let state = partialState;\n if (state.stale === false) {\n return state;\n }\n const routes = state.routes.filter(route => routeNames.includes(route.name)).map(route => ({\n ...route,\n key: route.key || `${route.name}-${nanoid()}`,\n params: routeParamList[route.name] !== undefined ? {\n ...routeParamList[route.name],\n ...route.params\n } : route.params\n }));\n if (routes.length === 0) {\n const initialRouteName = options.initialRouteName !== undefined ? options.initialRouteName : routeNames[0];\n routes.push({\n key: `${initialRouteName}-${nanoid()}`,\n name: initialRouteName,\n params: routeParamList[initialRouteName]\n });\n }\n return {\n stale: false,\n type: 'stack',\n key: `stack-${nanoid()}`,\n index: routes.length - 1,\n routeNames,\n routes\n };\n },\n getStateForRouteNamesChange(state, _ref3) {\n let {\n routeNames,\n routeParamList,\n routeKeyChanges\n } = _ref3;\n const routes = state.routes.filter(route => routeNames.includes(route.name) && !routeKeyChanges.includes(route.name));\n if (routes.length === 0) {\n const initialRouteName = options.initialRouteName !== undefined && routeNames.includes(options.initialRouteName) ? options.initialRouteName : routeNames[0];\n routes.push({\n key: `${initialRouteName}-${nanoid()}`,\n name: initialRouteName,\n params: routeParamList[initialRouteName]\n });\n }\n return {\n ...state,\n routeNames,\n routes,\n index: Math.min(state.index, routes.length - 1)\n };\n },\n getStateForRouteFocus(state, key) {\n const index = state.routes.findIndex(r => r.key === key);\n if (index === -1 || index === state.index) {\n return state;\n }\n return {\n ...state,\n index,\n routes: state.routes.slice(0, index + 1)\n };\n },\n getStateForAction(state, action, options) {\n const {\n routeParamList\n } = options;\n switch (action.type) {\n case 'REPLACE':\n {\n const index = action.target === state.key && action.source ? state.routes.findIndex(r => r.key === action.source) : state.index;\n if (index === -1) {\n return null;\n }\n const {\n name,\n key,\n params\n } = action.payload;\n if (!state.routeNames.includes(name)) {\n return null;\n }\n return {\n ...state,\n routes: state.routes.map((route, i) => i === index ? {\n key: key !== undefined ? key : `${name}-${nanoid()}`,\n name,\n params: routeParamList[name] !== undefined ? {\n ...routeParamList[name],\n ...params\n } : params\n } : route)\n };\n }\n case 'PUSH':\n if (state.routeNames.includes(action.payload.name)) {\n const getId = options.routeGetIdList[action.payload.name];\n const id = getId === null || getId === void 0 ? void 0 : getId({\n params: action.payload.params\n });\n const route = id ? state.routes.find(route => route.name === action.payload.name && id === (getId === null || getId === void 0 ? void 0 : getId({\n params: route.params\n }))) : undefined;\n let routes;\n if (route) {\n routes = state.routes.filter(r => r.key !== route.key);\n routes.push({\n ...route,\n params: routeParamList[action.payload.name] !== undefined ? {\n ...routeParamList[action.payload.name],\n ...action.payload.params\n } : action.payload.params\n });\n } else {\n routes = [...state.routes, {\n key: `${action.payload.name}-${nanoid()}`,\n name: action.payload.name,\n params: routeParamList[action.payload.name] !== undefined ? {\n ...routeParamList[action.payload.name],\n ...action.payload.params\n } : action.payload.params\n }];\n }\n return {\n ...state,\n index: routes.length - 1,\n routes\n };\n }\n return null;\n case 'POP':\n {\n const index = action.target === state.key && action.source ? state.routes.findIndex(r => r.key === action.source) : state.index;\n if (index > 0) {\n const count = Math.max(index - action.payload.count + 1, 1);\n const routes = state.routes.slice(0, count).concat(state.routes.slice(index + 1));\n return {\n ...state,\n index: routes.length - 1,\n routes\n };\n }\n return null;\n }\n case 'POP_TO_TOP':\n return router.getStateForAction(state, {\n type: 'POP',\n payload: {\n count: state.routes.length - 1\n }\n }, options);\n case 'NAVIGATE':\n if (action.payload.name !== undefined && !state.routeNames.includes(action.payload.name)) {\n return null;\n }\n if (action.payload.key || action.payload.name) {\n // If the route already exists, navigate to that\n let index = -1;\n const getId =\n // `getId` and `key` can't be used together\n action.payload.key === undefined && action.payload.name !== undefined ? options.routeGetIdList[action.payload.name] : undefined;\n const id = getId === null || getId === void 0 ? void 0 : getId({\n params: action.payload.params\n });\n if (id) {\n index = state.routes.findIndex(route => route.name === action.payload.name && id === (getId === null || getId === void 0 ? void 0 : getId({\n params: route.params\n })));\n } else if (state.routes[state.index].name === action.payload.name && action.payload.key === undefined || state.routes[state.index].key === action.payload.key) {\n index = state.index;\n } else {\n for (let i = state.routes.length - 1; i >= 0; i--) {\n if (state.routes[i].name === action.payload.name && action.payload.key === undefined || state.routes[i].key === action.payload.key) {\n index = i;\n break;\n }\n }\n }\n if (index === -1 && action.payload.key && action.payload.name === undefined) {\n return null;\n }\n if (index === -1 && action.payload.name !== undefined) {\n const routes = [...state.routes, {\n key: action.payload.key ?? `${action.payload.name}-${nanoid()}`,\n name: action.payload.name,\n path: action.payload.path,\n params: routeParamList[action.payload.name] !== undefined ? {\n ...routeParamList[action.payload.name],\n ...action.payload.params\n } : action.payload.params\n }];\n return {\n ...state,\n routes,\n index: routes.length - 1\n };\n }\n const route = state.routes[index];\n let params;\n if (action.payload.merge) {\n params = action.payload.params !== undefined || routeParamList[route.name] !== undefined ? {\n ...routeParamList[route.name],\n ...route.params,\n ...action.payload.params\n } : route.params;\n } else {\n params = routeParamList[route.name] !== undefined ? {\n ...routeParamList[route.name],\n ...action.payload.params\n } : action.payload.params;\n }\n return {\n ...state,\n index,\n routes: [...state.routes.slice(0, index), params !== route.params || action.payload.path && action.payload.path !== route.path ? {\n ...route,\n path: action.payload.path ?? route.path,\n params\n } : state.routes[index]]\n };\n }\n return null;\n case 'GO_BACK':\n if (state.index > 0) {\n return router.getStateForAction(state, {\n type: 'POP',\n payload: {\n count: 1\n },\n target: action.target,\n source: action.source\n }, options);\n }\n return null;\n default:\n return BaseRouter.getStateForAction(state, action);\n }\n },\n actionCreators: StackActions\n };\n return router;\n}\n//# sourceMappingURL=StackRouter.js.map","import { CommonActions } from '@react-navigation/routers';\nexport const NOT_INITIALIZED_ERROR = \"The 'navigation' object hasn't been initialized yet. This might happen if you don't have a navigator mounted, or if the navigator hasn't finished mounting. See https://reactnavigation.org/docs/navigating-without-navigation-prop#handling-initialization for more details.\";\nexport default function createNavigationContainerRef() {\n const methods = [...Object.keys(CommonActions), 'addListener', 'removeListener', 'resetRoot', 'dispatch', 'isFocused', 'canGoBack', 'getRootState', 'getState', 'getParent', 'getCurrentRoute', 'getCurrentOptions'];\n const listeners = {};\n const removeListener = (event, callback) => {\n if (listeners[event]) {\n listeners[event] = listeners[event].filter(cb => cb !== callback);\n }\n };\n let current = null;\n const ref = {\n get current() {\n return current;\n },\n set current(value) {\n current = value;\n if (value != null) {\n Object.entries(listeners).forEach(_ref => {\n let [event, callbacks] = _ref;\n callbacks.forEach(callback => {\n value.addListener(event, callback);\n });\n });\n }\n },\n isReady: () => {\n if (current == null) {\n return false;\n }\n return current.isReady();\n },\n ...methods.reduce((acc, name) => {\n acc[name] = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (current == null) {\n switch (name) {\n case 'addListener':\n {\n const [event, callback] = args;\n listeners[event] = listeners[event] || [];\n listeners[event].push(callback);\n return () => removeListener(event, callback);\n }\n case 'removeListener':\n {\n const [event, callback] = args;\n removeListener(event, callback);\n break;\n }\n default:\n console.error(NOT_INITIALIZED_ERROR);\n }\n } else {\n // @ts-expect-error: this is ok\n return current[name](...args);\n }\n };\n return acc;\n }, {})\n };\n return ref;\n}\n//# sourceMappingURL=createNavigationContainerRef.js.map","import * as React from 'react';\nconst MULTIPLE_NAVIGATOR_ERROR = `Another navigator is already registered for this container. You likely have multiple navigators under a single \"NavigationContainer\" or \"Screen\". Make sure each navigator is under a separate \"Screen\" container. See https://reactnavigation.org/docs/nesting-navigators for a guide on nesting.`;\nexport const SingleNavigatorContext = /*#__PURE__*/React.createContext(undefined);\n\n/**\n * Component which ensures that there's only one navigator nested under it.\n */\nexport default function EnsureSingleNavigator(_ref) {\n let {\n children\n } = _ref;\n const navigatorKeyRef = React.useRef();\n const value = React.useMemo(() => ({\n register(key) {\n const currentKey = navigatorKeyRef.current;\n if (currentKey !== undefined && key !== currentKey) {\n throw new Error(MULTIPLE_NAVIGATOR_ERROR);\n }\n navigatorKeyRef.current = key;\n },\n unregister(key) {\n const currentKey = navigatorKeyRef.current;\n if (key !== currentKey) {\n return;\n }\n navigatorKeyRef.current = undefined;\n }\n }), []);\n return /*#__PURE__*/React.createElement(SingleNavigatorContext.Provider, {\n value: value\n }, children);\n}\n//# sourceMappingURL=EnsureSingleNavigator.js.map","export default function findFocusedRoute(state) {\n var _current2, _current3;\n let current = state;\n while (((_current = current) === null || _current === void 0 ? void 0 : _current.routes[current.index ?? 0].state) != null) {\n var _current;\n current = current.routes[current.index ?? 0].state;\n }\n const route = (_current2 = current) === null || _current2 === void 0 ? void 0 : _current2.routes[((_current3 = current) === null || _current3 === void 0 ? void 0 : _current3.index) ?? 0];\n return route;\n}\n//# sourceMappingURL=findFocusedRoute.js.map","import * as React from 'react';\n/**\n * Context which holds the required helpers needed to build nested navigators.\n */\nconst NavigationBuilderContext = /*#__PURE__*/React.createContext({\n onDispatchAction: () => undefined,\n onOptionsChange: () => undefined\n});\nexport default NavigationBuilderContext;\n//# sourceMappingURL=NavigationBuilderContext.js.map","import * as React from 'react';\n/**\n * Context which holds the route prop for a screen.\n */\nconst NavigationContainerRefContext = /*#__PURE__*/React.createContext(undefined);\nexport default NavigationContainerRefContext;\n//# sourceMappingURL=NavigationContainerRefContext.js.map","import * as React from 'react';\n/**\n * Context which holds the navigation prop for a screen.\n */\nconst NavigationContext = /*#__PURE__*/React.createContext(undefined);\nexport default NavigationContext;\n//# sourceMappingURL=NavigationContext.js.map","import * as React from 'react';\n\n/**\n * Context which holds the route prop for a screen.\n */\nconst NavigationRouteContext = /*#__PURE__*/React.createContext(undefined);\nexport default NavigationRouteContext;\n//# sourceMappingURL=NavigationRouteContext.js.map","import * as React from 'react';\nconst MISSING_CONTEXT_ERROR = \"Couldn't find a navigation context. Have you wrapped your app with 'NavigationContainer'? See https://reactnavigation.org/docs/getting-started for setup instructions.\";\nexport default /*#__PURE__*/React.createContext({\n isDefault: true,\n get getKey() {\n throw new Error(MISSING_CONTEXT_ERROR);\n },\n get setKey() {\n throw new Error(MISSING_CONTEXT_ERROR);\n },\n get getState() {\n throw new Error(MISSING_CONTEXT_ERROR);\n },\n get setState() {\n throw new Error(MISSING_CONTEXT_ERROR);\n },\n get getIsInitial() {\n throw new Error(MISSING_CONTEXT_ERROR);\n }\n});\n//# sourceMappingURL=NavigationStateContext.js.map","import * as React from 'react';\nconst UnhandledActionContext = /*#__PURE__*/React.createContext(undefined);\nexport default UnhandledActionContext;\n//# sourceMappingURL=UnhandledActionContext.js.map","import * as React from 'react';\n/**\n * Hook which lets child navigators add action listeners.\n */\nexport default function useChildListeners() {\n const {\n current: listeners\n } = React.useRef({\n action: [],\n focus: []\n });\n const addListener = React.useCallback((type, listener) => {\n listeners[type].push(listener);\n let removed = false;\n return () => {\n const index = listeners[type].indexOf(listener);\n if (!removed && index > -1) {\n removed = true;\n listeners[type].splice(index, 1);\n }\n };\n }, [listeners]);\n return {\n listeners,\n addListener\n };\n}\n//# sourceMappingURL=useChildListeners.js.map","import * as React from 'react';\n/**\n * Hook to manage the event system used by the navigator to notify screens of various events.\n */\nexport default function useEventEmitter(listen) {\n const listenRef = React.useRef(listen);\n React.useEffect(() => {\n listenRef.current = listen;\n });\n const listeners = React.useRef(Object.create(null));\n const create = React.useCallback(target => {\n const removeListener = (type, callback) => {\n const callbacks = listeners.current[type] ? listeners.current[type][target] : undefined;\n if (!callbacks) {\n return;\n }\n const index = callbacks.indexOf(callback);\n if (index > -1) {\n callbacks.splice(index, 1);\n }\n };\n const addListener = (type, callback) => {\n listeners.current[type] = listeners.current[type] || {};\n listeners.current[type][target] = listeners.current[type][target] || [];\n listeners.current[type][target].push(callback);\n let removed = false;\n return () => {\n // Prevent removing other listeners when unsubscribing same listener multiple times\n if (!removed) {\n removed = true;\n removeListener(type, callback);\n }\n };\n };\n return {\n addListener,\n removeListener\n };\n }, []);\n const emit = React.useCallback(_ref => {\n var _items$target, _listenRef$current;\n let {\n type,\n data,\n target,\n canPreventDefault\n } = _ref;\n const items = listeners.current[type] || {};\n\n // Copy the current list of callbacks in case they are mutated during execution\n const callbacks = target !== undefined ? (_items$target = items[target]) === null || _items$target === void 0 ? void 0 : _items$target.slice() : [].concat(...Object.keys(items).map(t => items[t])).filter((cb, i, self) => self.lastIndexOf(cb) === i);\n const event = {\n get type() {\n return type;\n }\n };\n if (target !== undefined) {\n Object.defineProperty(event, 'target', {\n enumerable: true,\n get() {\n return target;\n }\n });\n }\n if (data !== undefined) {\n Object.defineProperty(event, 'data', {\n enumerable: true,\n get() {\n return data;\n }\n });\n }\n if (canPreventDefault) {\n let defaultPrevented = false;\n Object.defineProperties(event, {\n defaultPrevented: {\n enumerable: true,\n get() {\n return defaultPrevented;\n }\n },\n preventDefault: {\n enumerable: true,\n value() {\n defaultPrevented = true;\n }\n }\n });\n }\n (_listenRef$current = listenRef.current) === null || _listenRef$current === void 0 ? void 0 : _listenRef$current.call(listenRef, event);\n callbacks === null || callbacks === void 0 ? void 0 : callbacks.forEach(cb => cb(event));\n return event;\n }, []);\n return React.useMemo(() => ({\n create,\n emit\n }), [create, emit]);\n}\n//# sourceMappingURL=useEventEmitter.js.map","import * as React from 'react';\n/**\n * Hook which lets child navigators add getters to be called for obtaining rehydrated state.\n */\nexport default function useKeyedChildListeners() {\n const {\n current: keyedListeners\n } = React.useRef(Object.assign(Object.create(null), {\n getState: {},\n beforeRemove: {}\n }));\n const addKeyedListener = React.useCallback((type, key, listener) => {\n // @ts-expect-error: according to ref stated above you can use `key` to index type\n keyedListeners[type][key] = listener;\n return () => {\n // @ts-expect-error: according to ref stated above you can use `key` to index type\n keyedListeners[type][key] = undefined;\n };\n }, [keyedListeners]);\n return {\n keyedListeners,\n addKeyedListener\n };\n}\n//# sourceMappingURL=useKeyedChildListeners.js.map","import * as React from 'react';\nimport NavigationBuilderContext from './NavigationBuilderContext';\nimport NavigationStateContext from './NavigationStateContext';\nexport default function useOptionsGetters(_ref) {\n let {\n key,\n options,\n navigation\n } = _ref;\n const optionsRef = React.useRef(options);\n const optionsGettersFromChildRef = React.useRef({});\n const {\n onOptionsChange\n } = React.useContext(NavigationBuilderContext);\n const {\n addOptionsGetter: parentAddOptionsGetter\n } = React.useContext(NavigationStateContext);\n const optionsChangeListener = React.useCallback(() => {\n const isFocused = (navigation === null || navigation === void 0 ? void 0 : navigation.isFocused()) ?? true;\n const hasChildren = Object.keys(optionsGettersFromChildRef.current).length;\n if (isFocused && !hasChildren) {\n onOptionsChange(optionsRef.current ?? {});\n }\n }, [navigation, onOptionsChange]);\n React.useEffect(() => {\n optionsRef.current = options;\n optionsChangeListener();\n return navigation === null || navigation === void 0 ? void 0 : navigation.addListener('focus', optionsChangeListener);\n }, [navigation, options, optionsChangeListener]);\n const getOptionsFromListener = React.useCallback(() => {\n for (let key in optionsGettersFromChildRef.current) {\n if (optionsGettersFromChildRef.current.hasOwnProperty(key)) {\n var _optionsGettersFromCh, _optionsGettersFromCh2;\n const result = (_optionsGettersFromCh = (_optionsGettersFromCh2 = optionsGettersFromChildRef.current)[key]) === null || _optionsGettersFromCh === void 0 ? void 0 : _optionsGettersFromCh.call(_optionsGettersFromCh2);\n\n // null means unfocused route\n if (result !== null) {\n return result;\n }\n }\n }\n return null;\n }, []);\n const getCurrentOptions = React.useCallback(() => {\n const isFocused = (navigation === null || navigation === void 0 ? void 0 : navigation.isFocused()) ?? true;\n if (!isFocused) {\n return null;\n }\n const optionsFromListener = getOptionsFromListener();\n if (optionsFromListener !== null) {\n return optionsFromListener;\n }\n return optionsRef.current;\n }, [navigation, getOptionsFromListener]);\n React.useEffect(() => {\n return parentAddOptionsGetter === null || parentAddOptionsGetter === void 0 ? void 0 : parentAddOptionsGetter(key, getCurrentOptions);\n }, [getCurrentOptions, parentAddOptionsGetter, key]);\n const addOptionsGetter = React.useCallback((key, getter) => {\n optionsGettersFromChildRef.current[key] = getter;\n optionsChangeListener();\n return () => {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete optionsGettersFromChildRef.current[key];\n optionsChangeListener();\n };\n }, [optionsChangeListener]);\n return {\n addOptionsGetter,\n getCurrentOptions\n };\n}\n//# sourceMappingURL=useOptionsGetters.js.map","import * as React from 'react';\nconst MISSING_CONTEXT_ERROR = \"Couldn't find a schedule context.\";\nexport const ScheduleUpdateContext = /*#__PURE__*/React.createContext({\n scheduleUpdate() {\n throw new Error(MISSING_CONTEXT_ERROR);\n },\n flushUpdates() {\n throw new Error(MISSING_CONTEXT_ERROR);\n }\n});\n\n/**\n * When screen config changes, we want to update the navigator in the same update phase.\n * However, navigation state is in the root component and React won't let us update it from a child.\n * This is a workaround for that, the scheduled update is stored in the ref without actually calling setState.\n * It lets all subsequent updates access the latest state so it stays correct.\n * Then we call setState during after the component updates.\n */\nexport default function useScheduleUpdate(callback) {\n const {\n scheduleUpdate,\n flushUpdates\n } = React.useContext(ScheduleUpdateContext);\n scheduleUpdate(callback);\n React.useEffect(flushUpdates);\n}\n//# sourceMappingURL=useScheduleUpdate.js.map","import * as React from 'react';\nconst UNINTIALIZED_STATE = {};\n\n/**\n * This is definitely not compatible with concurrent mode, but we don't have a solution for sync state yet.\n */\nexport default function useSyncState(initialState) {\n const stateRef = React.useRef(UNINTIALIZED_STATE);\n const isSchedulingRef = React.useRef(false);\n const isMountedRef = React.useRef(true);\n React.useEffect(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n if (stateRef.current === UNINTIALIZED_STATE) {\n stateRef.current =\n // @ts-expect-error: initialState is a function, but TypeScript doesn't think so\n typeof initialState === 'function' ? initialState() : initialState;\n }\n const [trackingState, setTrackingState] = React.useState(stateRef.current);\n const getState = React.useCallback(() => stateRef.current, []);\n const setState = React.useCallback(state => {\n if (state === stateRef.current || !isMountedRef.current) {\n return;\n }\n stateRef.current = state;\n if (!isSchedulingRef.current) {\n setTrackingState(state);\n }\n }, []);\n const scheduleUpdate = React.useCallback(callback => {\n isSchedulingRef.current = true;\n try {\n callback();\n } finally {\n isSchedulingRef.current = false;\n }\n }, []);\n const flushUpdates = React.useCallback(() => {\n if (!isMountedRef.current) {\n return;\n }\n\n // Make sure that the tracking state is up-to-date.\n // We call it unconditionally, but React should skip the update if state is unchanged.\n setTrackingState(stateRef.current);\n }, []);\n\n // If we're rendering and the tracking state is out of date, update it immediately\n // This will make sure that our updates are applied as early as possible.\n if (trackingState !== stateRef.current) {\n setTrackingState(stateRef.current);\n }\n const state = stateRef.current;\n React.useDebugValue(state);\n return [state, getState, setState, scheduleUpdate, flushUpdates];\n}\n//# sourceMappingURL=useSyncState.js.map","import { CommonActions } from '@react-navigation/routers';\nimport * as React from 'react';\nimport checkDuplicateRouteNames from './checkDuplicateRouteNames';\nimport checkSerializable from './checkSerializable';\nimport { NOT_INITIALIZED_ERROR } from './createNavigationContainerRef';\nimport EnsureSingleNavigator from './EnsureSingleNavigator';\nimport findFocusedRoute from './findFocusedRoute';\nimport NavigationBuilderContext from './NavigationBuilderContext';\nimport NavigationContainerRefContext from './NavigationContainerRefContext';\nimport NavigationContext from './NavigationContext';\nimport NavigationRouteContext from './NavigationRouteContext';\nimport NavigationStateContext from './NavigationStateContext';\nimport UnhandledActionContext from './UnhandledActionContext';\nimport useChildListeners from './useChildListeners';\nimport useEventEmitter from './useEventEmitter';\nimport useKeyedChildListeners from './useKeyedChildListeners';\nimport useOptionsGetters from './useOptionsGetters';\nimport { ScheduleUpdateContext } from './useScheduleUpdate';\nimport useSyncState from './useSyncState';\nconst serializableWarnings = [];\nconst duplicateNameWarnings = [];\n\n/**\n * Remove `key` and `routeNames` from the state objects recursively to get partial state.\n *\n * @param state Initial state object.\n */\nconst getPartialState = state => {\n if (state === undefined) {\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const {\n key,\n routeNames,\n ...partialState\n } = state;\n return {\n ...partialState,\n stale: true,\n routes: state.routes.map(route => {\n if (route.state === undefined) {\n return route;\n }\n return {\n ...route,\n state: getPartialState(route.state)\n };\n })\n };\n};\n\n/**\n * Container component which holds the navigation state.\n * This should be rendered at the root wrapping the whole app.\n *\n * @param props.initialState Initial state object for the navigation tree.\n * @param props.onStateChange Callback which is called with the latest navigation state when it changes.\n * @param props.children Child elements to render the content.\n * @param props.ref Ref object which refers to the navigation object containing helper methods.\n */\nconst BaseNavigationContainer = /*#__PURE__*/React.forwardRef(function BaseNavigationContainer(_ref, ref) {\n let {\n initialState,\n onStateChange,\n onUnhandledAction,\n independent,\n children\n } = _ref;\n const parent = React.useContext(NavigationStateContext);\n if (!parent.isDefault && !independent) {\n throw new Error(\"Looks like you have nested a 'NavigationContainer' inside another. Normally you need only one container at the root of the app, so this was probably an error. If this was intentional, pass 'independent={true}' explicitly. Note that this will make the child navigators disconnected from the parent and you won't be able to navigate between them.\");\n }\n const [state, getState, setState, scheduleUpdate, flushUpdates] = useSyncState(() => getPartialState(initialState == null ? undefined : initialState));\n const isFirstMountRef = React.useRef(true);\n const navigatorKeyRef = React.useRef();\n const getKey = React.useCallback(() => navigatorKeyRef.current, []);\n const setKey = React.useCallback(key => {\n navigatorKeyRef.current = key;\n }, []);\n const {\n listeners,\n addListener\n } = useChildListeners();\n const {\n keyedListeners,\n addKeyedListener\n } = useKeyedChildListeners();\n const dispatch = React.useCallback(action => {\n if (listeners.focus[0] == null) {\n console.error(NOT_INITIALIZED_ERROR);\n } else {\n listeners.focus[0](navigation => navigation.dispatch(action));\n }\n }, [listeners.focus]);\n const canGoBack = React.useCallback(() => {\n if (listeners.focus[0] == null) {\n return false;\n }\n const {\n result,\n handled\n } = listeners.focus[0](navigation => navigation.canGoBack());\n if (handled) {\n return result;\n } else {\n return false;\n }\n }, [listeners.focus]);\n const resetRoot = React.useCallback(state => {\n var _keyedListeners$getSt, _keyedListeners$getSt2;\n const target = (state === null || state === void 0 ? void 0 : state.key) ?? ((_keyedListeners$getSt = (_keyedListeners$getSt2 = keyedListeners.getState).root) === null || _keyedListeners$getSt === void 0 ? void 0 : _keyedListeners$getSt.call(_keyedListeners$getSt2).key);\n if (target == null) {\n console.error(NOT_INITIALIZED_ERROR);\n } else {\n listeners.focus[0](navigation => navigation.dispatch({\n ...CommonActions.reset(state),\n target\n }));\n }\n }, [keyedListeners.getState, listeners.focus]);\n const getRootState = React.useCallback(() => {\n var _keyedListeners$getSt3, _keyedListeners$getSt4;\n return (_keyedListeners$getSt3 = (_keyedListeners$getSt4 = keyedListeners.getState).root) === null || _keyedListeners$getSt3 === void 0 ? void 0 : _keyedListeners$getSt3.call(_keyedListeners$getSt4);\n }, [keyedListeners.getState]);\n const getCurrentRoute = React.useCallback(() => {\n const state = getRootState();\n if (state == null) {\n return undefined;\n }\n const route = findFocusedRoute(state);\n return route;\n }, [getRootState]);\n const emitter = useEventEmitter();\n const {\n addOptionsGetter,\n getCurrentOptions\n } = useOptionsGetters({});\n const navigation = React.useMemo(() => ({\n ...Object.keys(CommonActions).reduce((acc, name) => {\n acc[name] = function () {\n return (\n // @ts-expect-error: this is ok\n dispatch(CommonActions[name](...arguments))\n );\n };\n return acc;\n }, {}),\n ...emitter.create('root'),\n dispatch,\n resetRoot,\n isFocused: () => true,\n canGoBack,\n getParent: () => undefined,\n getState: () => stateRef.current,\n getRootState,\n getCurrentRoute,\n getCurrentOptions,\n isReady: () => listeners.focus[0] != null\n }), [canGoBack, dispatch, emitter, getCurrentOptions, getCurrentRoute, getRootState, listeners.focus, resetRoot]);\n React.useImperativeHandle(ref, () => navigation, [navigation]);\n const onDispatchAction = React.useCallback((action, noop) => {\n emitter.emit({\n type: '__unsafe_action__',\n data: {\n action,\n noop,\n stack: stackRef.current\n }\n });\n }, [emitter]);\n const lastEmittedOptionsRef = React.useRef();\n const onOptionsChange = React.useCallback(options => {\n if (lastEmittedOptionsRef.current === options) {\n return;\n }\n lastEmittedOptionsRef.current = options;\n emitter.emit({\n type: 'options',\n data: {\n options\n }\n });\n }, [emitter]);\n const stackRef = React.useRef();\n const builderContext = React.useMemo(() => ({\n addListener,\n addKeyedListener,\n onDispatchAction,\n onOptionsChange,\n stackRef\n }), [addListener, addKeyedListener, onDispatchAction, onOptionsChange]);\n const scheduleContext = React.useMemo(() => ({\n scheduleUpdate,\n flushUpdates\n }), [scheduleUpdate, flushUpdates]);\n const isInitialRef = React.useRef(true);\n const getIsInitial = React.useCallback(() => isInitialRef.current, []);\n const context = React.useMemo(() => ({\n state,\n getState,\n setState,\n getKey,\n setKey,\n getIsInitial,\n addOptionsGetter\n }), [state, getState, setState, getKey, setKey, getIsInitial, addOptionsGetter]);\n const onStateChangeRef = React.useRef(onStateChange);\n const stateRef = React.useRef(state);\n React.useEffect(() => {\n isInitialRef.current = false;\n onStateChangeRef.current = onStateChange;\n stateRef.current = state;\n });\n React.useEffect(() => {\n const hydratedState = getRootState();\n if (process.env.NODE_ENV !== 'production') {\n if (hydratedState !== undefined) {\n const serializableResult = checkSerializable(hydratedState);\n if (!serializableResult.serializable) {\n const {\n location,\n reason\n } = serializableResult;\n let path = '';\n let pointer = hydratedState;\n let params = false;\n for (let i = 0; i < location.length; i++) {\n const curr = location[i];\n const prev = location[i - 1];\n pointer = pointer[curr];\n if (!params && curr === 'state') {\n continue;\n } else if (!params && curr === 'routes') {\n if (path) {\n path += ' > ';\n }\n } else if (!params && typeof curr === 'number' && prev === 'routes') {\n var _pointer;\n path += (_pointer = pointer) === null || _pointer === void 0 ? void 0 : _pointer.name;\n } else if (!params) {\n path += ` > ${curr}`;\n params = true;\n } else {\n if (typeof curr === 'number' || /^[0-9]+$/.test(curr)) {\n path += `[${curr}]`;\n } else if (/^[a-z$_]+$/i.test(curr)) {\n path += `.${curr}`;\n } else {\n path += `[${JSON.stringify(curr)}]`;\n }\n }\n }\n const message = `Non-serializable values were found in the navigation state. Check:\\n\\n${path} (${reason})\\n\\nThis can break usage such as persisting and restoring state. This might happen if you passed non-serializable values such as function, class instances etc. in params. If you need to use components with callbacks in your options, you can use 'navigation.setOptions' instead. See https://reactnavigation.org/docs/troubleshooting#i-get-the-warning-non-serializable-values-were-found-in-the-navigation-state for more details.`;\n if (!serializableWarnings.includes(message)) {\n serializableWarnings.push(message);\n console.warn(message);\n }\n }\n const duplicateRouteNamesResult = checkDuplicateRouteNames(hydratedState);\n if (duplicateRouteNamesResult.length) {\n const message = `Found screens with the same name nested inside one another. Check:\\n${duplicateRouteNamesResult.map(locations => `\\n${locations.join(', ')}`)}\\n\\nThis can cause confusing behavior during navigation. Consider using unique names for each screen instead.`;\n if (!duplicateNameWarnings.includes(message)) {\n duplicateNameWarnings.push(message);\n console.warn(message);\n }\n }\n }\n }\n emitter.emit({\n type: 'state',\n data: {\n state\n }\n });\n if (!isFirstMountRef.current && onStateChangeRef.current) {\n onStateChangeRef.current(hydratedState);\n }\n isFirstMountRef.current = false;\n }, [getRootState, emitter, state]);\n const defaultOnUnhandledAction = React.useCallback(action => {\n if (process.env.NODE_ENV === 'production') {\n return;\n }\n const payload = action.payload;\n let message = `The action '${action.type}'${payload ? ` with payload ${JSON.stringify(action.payload)}` : ''} was not handled by any navigator.`;\n switch (action.type) {\n case 'NAVIGATE':\n case 'PUSH':\n case 'REPLACE':\n case 'JUMP_TO':\n if (payload !== null && payload !== void 0 && payload.name) {\n message += `\\n\\nDo you have a screen named '${payload.name}'?\\n\\nIf you're trying to navigate to a screen in a nested navigator, see https://reactnavigation.org/docs/nesting-navigators#navigating-to-a-screen-in-a-nested-navigator.`;\n } else {\n message += `\\n\\nYou need to pass the name of the screen to navigate to.\\n\\nSee https://reactnavigation.org/docs/navigation-actions for usage.`;\n }\n break;\n case 'GO_BACK':\n case 'POP':\n case 'POP_TO_TOP':\n message += `\\n\\nIs there any screen to go back to?`;\n break;\n case 'OPEN_DRAWER':\n case 'CLOSE_DRAWER':\n case 'TOGGLE_DRAWER':\n message += `\\n\\nIs your screen inside a Drawer navigator?`;\n break;\n }\n message += `\\n\\nThis is a development-only warning and won't be shown in production.`;\n console.error(message);\n }, []);\n let element = /*#__PURE__*/React.createElement(NavigationContainerRefContext.Provider, {\n value: navigation\n }, /*#__PURE__*/React.createElement(ScheduleUpdateContext.Provider, {\n value: scheduleContext\n }, /*#__PURE__*/React.createElement(NavigationBuilderContext.Provider, {\n value: builderContext\n }, /*#__PURE__*/React.createElement(NavigationStateContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(UnhandledActionContext.Provider, {\n value: onUnhandledAction ?? defaultOnUnhandledAction\n }, /*#__PURE__*/React.createElement(EnsureSingleNavigator, null, children))))));\n if (independent) {\n // We need to clear any existing contexts for nested independent container to work correctly\n element = /*#__PURE__*/React.createElement(NavigationRouteContext.Provider, {\n value: undefined\n }, /*#__PURE__*/React.createElement(NavigationContext.Provider, {\n value: undefined\n }, element));\n }\n return element;\n});\nexport default BaseNavigationContainer;\n//# sourceMappingURL=BaseNavigationContainer.js.map","/**\n * Empty component used for grouping screen configs.\n */\nexport default function Group(_) {\n /* istanbul ignore next */\n return null;\n}\n//# sourceMappingURL=Group.js.map","import { NavigationContext, NavigationRouteContext } from '@react-navigation/native';\nimport * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { useSafeAreaFrame, useSafeAreaInsets } from 'react-native-safe-area-context';\nimport Background from './Background';\nimport getDefaultHeaderHeight from './Header/getDefaultHeaderHeight';\nimport HeaderHeightContext from './Header/HeaderHeightContext';\nimport HeaderShownContext from './Header/HeaderShownContext';\nexport default function Screen(props) {\n const dimensions = useSafeAreaFrame();\n const insets = useSafeAreaInsets();\n const isParentHeaderShown = React.useContext(HeaderShownContext);\n const parentHeaderHeight = React.useContext(HeaderHeightContext);\n const {\n focused,\n modal = false,\n header,\n headerShown = true,\n headerTransparent,\n headerStatusBarHeight = isParentHeaderShown ? 0 : insets.top,\n navigation,\n route,\n children,\n style\n } = props;\n const [headerHeight, setHeaderHeight] = React.useState(() => getDefaultHeaderHeight(dimensions, modal, headerStatusBarHeight));\n return /*#__PURE__*/React.createElement(Background, {\n accessibilityElementsHidden: !focused,\n importantForAccessibility: focused ? 'auto' : 'no-hide-descendants',\n style: [styles.container, style]\n }, /*#__PURE__*/React.createElement(View, {\n style: styles.content\n }, /*#__PURE__*/React.createElement(HeaderShownContext.Provider, {\n value: isParentHeaderShown || headerShown !== false\n }, /*#__PURE__*/React.createElement(HeaderHeightContext.Provider, {\n value: headerShown ? headerHeight : parentHeaderHeight ?? 0\n }, children))), headerShown ? /*#__PURE__*/React.createElement(NavigationContext.Provider, {\n value: navigation\n }, /*#__PURE__*/React.createElement(NavigationRouteContext.Provider, {\n value: route\n }, /*#__PURE__*/React.createElement(View, {\n onLayout: e => {\n const {\n height\n } = e.nativeEvent.layout;\n setHeaderHeight(height);\n },\n style: headerTransparent ? styles.absolute : null\n }, header))) : null);\n}\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n flexDirection: 'column-reverse'\n },\n // This is necessary to avoid applying 'column-reverse' to screen content\n content: {\n flex: 1\n },\n absolute: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0\n }\n});\n//# sourceMappingURL=Screen.js.map","import Group from './Group';\nimport Screen from './Screen';\n/**\n * Higher order component to create a `Navigator` and `Screen` pair.\n * Custom navigators should wrap the navigator component in `createNavigator` before exporting.\n *\n * @param Navigator The navigtor component to wrap.\n * @returns Factory method to create a `Navigator` and `Screen` pair.\n */\nexport default function createNavigatorFactory(Navigator) {\n return function () {\n if (arguments[0] !== undefined) {\n throw new Error(\"Creating a navigator doesn't take an argument. Maybe you are trying to use React Navigation 4 API? See https://reactnavigation.org/docs/hello-react-navigation for the latest API and guides.\");\n }\n return {\n Navigator,\n Group,\n Screen\n };\n };\n}\n//# sourceMappingURL=createNavigatorFactory.js.map","import * as React from 'react';\n\n/**\n * Context which holds the values for the current navigation tree.\n * Intended for use in SSR. This is not safe to use on the client.\n */\nconst CurrentRenderContext = /*#__PURE__*/React.createContext(undefined);\nexport default CurrentRenderContext;\n//# sourceMappingURL=CurrentRenderContext.js.map","export default function getActionFromState(state, options) {\n var _normalizedConfig$scr;\n // Create a normalized configs object which will be easier to use\n const normalizedConfig = options ? createNormalizedConfigItem(options) : {};\n const routes = state.index != null ? state.routes.slice(0, state.index + 1) : state.routes;\n if (routes.length === 0) {\n return undefined;\n }\n if (!(routes.length === 1 && routes[0].key === undefined || routes.length === 2 && routes[0].key === undefined && routes[0].name === (normalizedConfig === null || normalizedConfig === void 0 ? void 0 : normalizedConfig.initialRouteName) && routes[1].key === undefined)) {\n return {\n type: 'RESET',\n payload: state\n };\n }\n const route = state.routes[state.index ?? state.routes.length - 1];\n let current = route === null || route === void 0 ? void 0 : route.state;\n let config = normalizedConfig === null || normalizedConfig === void 0 ? void 0 : (_normalizedConfig$scr = normalizedConfig.screens) === null || _normalizedConfig$scr === void 0 ? void 0 : _normalizedConfig$scr[route === null || route === void 0 ? void 0 : route.name];\n let params = {\n ...route.params\n };\n let payload = route ? {\n name: route.name,\n path: route.path,\n params\n } : undefined;\n while (current) {\n var _config, _config2, _config2$screens;\n if (current.routes.length === 0) {\n return undefined;\n }\n const routes = current.index != null ? current.routes.slice(0, current.index + 1) : current.routes;\n const route = routes[routes.length - 1];\n\n // Explicitly set to override existing value when merging params\n Object.assign(params, {\n initial: undefined,\n screen: undefined,\n params: undefined,\n state: undefined\n });\n if (routes.length === 1 && routes[0].key === undefined) {\n params.initial = true;\n params.screen = route.name;\n } else if (routes.length === 2 && routes[0].key === undefined && routes[0].name === ((_config = config) === null || _config === void 0 ? void 0 : _config.initialRouteName) && routes[1].key === undefined) {\n params.initial = false;\n params.screen = route.name;\n } else {\n params.state = current;\n break;\n }\n if (route.state) {\n params.params = {\n ...route.params\n };\n params = params.params;\n } else {\n params.path = route.path;\n params.params = route.params;\n }\n current = route.state;\n config = (_config2 = config) === null || _config2 === void 0 ? void 0 : (_config2$screens = _config2.screens) === null || _config2$screens === void 0 ? void 0 : _config2$screens[route.name];\n }\n if (!payload) {\n return;\n }\n\n // Try to construct payload for a `NAVIGATE` action from the state\n // This lets us preserve the navigation state and not lose it\n return {\n type: 'NAVIGATE',\n payload\n };\n}\nconst createNormalizedConfigItem = config => typeof config === 'object' && config != null ? {\n initialRouteName: config.initialRouteName,\n screens: config.screens != null ? createNormalizedConfigs(config.screens) : undefined\n} : {};\nconst createNormalizedConfigs = options => Object.entries(options).reduce((acc, _ref) => {\n let [k, v] = _ref;\n acc[k] = createNormalizedConfigItem(v);\n return acc;\n}, {});\n//# sourceMappingURL=getActionFromState.js.map","import * as React from 'react';\n/**\n * Utilites such as `getFocusedRouteNameFromRoute` need to access state.\n * So we need a way to suppress the warning for those use cases.\n * This is fine since they are internal utilities and this is not public API.\n */\nexport const CHILD_STATE = Symbol('CHILD_STATE');\n\n/**\n * Hook to cache route props for each screen in the navigator.\n * This lets add warnings and modifications to the route object but keep references between renders.\n */\nexport default function useRouteCache(routes) {\n // Cache object which holds route objects for each screen\n const cache = React.useMemo(() => ({\n current: new Map()\n }), []);\n if (process.env.NODE_ENV === 'production') {\n // We don't want the overhead of creating extra maps every render in prod\n return routes;\n }\n cache.current = routes.reduce((acc, route) => {\n const previous = cache.current.get(route);\n if (previous) {\n // If a cached route object already exists, reuse it\n acc.set(route, previous);\n } else {\n const {\n state,\n ...proxy\n } = route;\n Object.defineProperty(proxy, CHILD_STATE, {\n enumerable: false,\n value: state\n });\n acc.set(route, proxy);\n }\n return acc;\n }, new Map());\n return Array.from(cache.current.values());\n}\n//# sourceMappingURL=useRouteCache.js.map","import { CHILD_STATE } from './useRouteCache';\nexport default function getFocusedRouteNameFromRoute(route) {\n // @ts-expect-error: this isn't in type definitions coz we want this private\n const state = route[CHILD_STATE] ?? route.state;\n const params = route.params;\n const routeName = state ?\n // Get the currently active route name in the nested navigator\n state.routes[\n // If we have a partial state without index, for tab/drawer, first screen will be focused one, and last for stack\n // The type property will only exist for rehydrated state and not for state from deep link\n state.index ?? (typeof state.type === 'string' && state.type !== 'stack' ? 0 : state.routes.length - 1)].name :\n // If state doesn't exist, we need to default to `screen` param if available\n typeof (params === null || params === void 0 ? void 0 : params.screen) === 'string' ? params.screen : undefined;\n return routeName;\n}\n//# sourceMappingURL=getFocusedRouteNameFromRoute.js.map","// Object.fromEntries is not available in older iOS versions\nexport default function fromEntries(entries) {\n return entries.reduce((acc, _ref) => {\n let [k, v] = _ref;\n if (acc.hasOwnProperty(k)) {\n throw new Error(`A value for key '${k}' already exists in the object.`);\n }\n acc[k] = v;\n return acc;\n }, {});\n}\n//# sourceMappingURL=fromEntries.js.map","const formatToList = items => items.map(key => `- ${key}`).join('\\n');\nexport default function validatePathConfig(config) {\n let root = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n const validKeys = ['initialRouteName', 'screens'];\n if (!root) {\n validKeys.push('path', 'exact', 'stringify', 'parse');\n }\n const invalidKeys = Object.keys(config).filter(key => !validKeys.includes(key));\n if (invalidKeys.length) {\n throw new Error(`Found invalid properties in the configuration:\\n${formatToList(invalidKeys)}\\n\\nDid you forget to specify them under a 'screens' property?\\n\\nYou can only specify the following properties:\\n${formatToList(validKeys)}\\n\\nSee https://reactnavigation.org/docs/configuring-links for more details on how to specify a linking configuration.`);\n }\n if (config.screens) {\n Object.entries(config.screens).forEach(_ref => {\n let [_, value] = _ref;\n if (typeof value !== 'string') {\n validatePathConfig(value, false);\n }\n });\n }\n}\n//# sourceMappingURL=validatePathConfig.js.map","import * as queryString from 'query-string';\nimport fromEntries from './fromEntries';\nimport validatePathConfig from './validatePathConfig';\nconst getActiveRoute = state => {\n const route = typeof state.index === 'number' ? state.routes[state.index] : state.routes[state.routes.length - 1];\n if (route.state) {\n return getActiveRoute(route.state);\n }\n return route;\n};\n\n/**\n * Utility to serialize a navigation state object to a path string.\n *\n * @example\n * ```js\n * getPathFromState(\n * {\n * routes: [\n * {\n * name: 'Chat',\n * params: { author: 'Jane', id: 42 },\n * },\n * ],\n * },\n * {\n * screens: {\n * Chat: {\n * path: 'chat/:author/:id',\n * stringify: { author: author => author.toLowerCase() }\n * }\n * }\n * }\n * )\n * ```\n *\n * @param state Navigation state to serialize.\n * @param options Extra options to fine-tune how to serialize the path.\n * @returns Path representing the state, e.g. /foo/bar?count=42.\n */\nexport default function getPathFromState(state, options) {\n if (state == null) {\n throw Error(\"Got 'undefined' for the navigation state. You must pass a valid state object.\");\n }\n if (options) {\n validatePathConfig(options);\n }\n\n // Create a normalized configs object which will be easier to use\n const configs = options !== null && options !== void 0 && options.screens ? createNormalizedConfigs(options === null || options === void 0 ? void 0 : options.screens) : {};\n let path = '/';\n let current = state;\n const allParams = {};\n while (current) {\n let index = typeof current.index === 'number' ? current.index : 0;\n let route = current.routes[index];\n let pattern;\n let focusedParams;\n let focusedRoute = getActiveRoute(state);\n let currentOptions = configs;\n\n // Keep all the route names that appeared during going deeper in config in case the pattern is resolved to undefined\n let nestedRouteNames = [];\n let hasNext = true;\n while (route.name in currentOptions && hasNext) {\n pattern = currentOptions[route.name].pattern;\n nestedRouteNames.push(route.name);\n if (route.params) {\n var _currentOptions$route;\n const stringify = (_currentOptions$route = currentOptions[route.name]) === null || _currentOptions$route === void 0 ? void 0 : _currentOptions$route.stringify;\n const currentParams = fromEntries(Object.entries(route.params).map(_ref => {\n let [key, value] = _ref;\n return [key, stringify !== null && stringify !== void 0 && stringify[key] ? stringify[key](value) : String(value)];\n }));\n if (pattern) {\n Object.assign(allParams, currentParams);\n }\n if (focusedRoute === route) {\n var _pattern;\n // If this is the focused route, keep the params for later use\n // We save it here since it's been stringified already\n focusedParams = {\n ...currentParams\n };\n (_pattern = pattern) === null || _pattern === void 0 ? void 0 : _pattern.split('/').filter(p => p.startsWith(':'))\n // eslint-disable-next-line no-loop-func\n .forEach(p => {\n const name = getParamName(p);\n\n // Remove the params present in the pattern since we'll only use the rest for query string\n if (focusedParams) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete focusedParams[name];\n }\n });\n }\n }\n\n // If there is no `screens` property or no nested state, we return pattern\n if (!currentOptions[route.name].screens || route.state === undefined) {\n hasNext = false;\n } else {\n index = typeof route.state.index === 'number' ? route.state.index : route.state.routes.length - 1;\n const nextRoute = route.state.routes[index];\n const nestedConfig = currentOptions[route.name].screens;\n\n // if there is config for next route name, we go deeper\n if (nestedConfig && nextRoute.name in nestedConfig) {\n route = nextRoute;\n currentOptions = nestedConfig;\n } else {\n // If not, there is no sense in going deeper in config\n hasNext = false;\n }\n }\n }\n if (pattern === undefined) {\n pattern = nestedRouteNames.join('/');\n }\n if (currentOptions[route.name] !== undefined) {\n path += pattern.split('/').map(p => {\n const name = getParamName(p);\n\n // We don't know what to show for wildcard patterns\n // Showing the route name seems ok, though whatever we show here will be incorrect\n // Since the page doesn't actually exist\n if (p === '*') {\n return route.name;\n }\n\n // If the path has a pattern for a param, put the param in the path\n if (p.startsWith(':')) {\n const value = allParams[name];\n if (value === undefined && p.endsWith('?')) {\n // Optional params without value assigned in route.params should be ignored\n return '';\n }\n return encodeURIComponent(value);\n }\n return encodeURIComponent(p);\n }).join('/');\n } else {\n path += encodeURIComponent(route.name);\n }\n if (!focusedParams) {\n focusedParams = focusedRoute.params;\n }\n if (route.state) {\n path += '/';\n } else if (focusedParams) {\n for (let param in focusedParams) {\n if (focusedParams[param] === 'undefined') {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete focusedParams[param];\n }\n }\n const query = queryString.stringify(focusedParams, {\n sort: false\n });\n if (query) {\n path += `?${query}`;\n }\n }\n current = route.state;\n }\n\n // Remove multiple as well as trailing slashes\n path = path.replace(/\\/+/g, '/');\n path = path.length > 1 ? path.replace(/\\/$/, '') : path;\n return path;\n}\nconst getParamName = pattern => pattern.replace(/^:/, '').replace(/\\?$/, '');\nconst joinPaths = function () {\n for (var _len = arguments.length, paths = new Array(_len), _key = 0; _key < _len; _key++) {\n paths[_key] = arguments[_key];\n }\n return [].concat(...paths.map(p => p.split('/'))).filter(Boolean).join('/');\n};\nconst createConfigItem = (config, parentPattern) => {\n var _pattern2;\n if (typeof config === 'string') {\n // If a string is specified as the value of the key(e.g. Foo: '/path'), use it as the pattern\n const pattern = parentPattern ? joinPaths(parentPattern, config) : config;\n return {\n pattern\n };\n }\n\n // If an object is specified as the value (e.g. Foo: { ... }),\n // It can have `path` property and `screens` prop which has nested configs\n let pattern;\n if (config.exact && config.path === undefined) {\n throw new Error(\"A 'path' needs to be specified when specifying 'exact: true'. If you don't want this screen in the URL, specify it as empty string, e.g. `path: ''`.\");\n }\n pattern = config.exact !== true ? joinPaths(parentPattern || '', config.path || '') : config.path || '';\n const screens = config.screens ? createNormalizedConfigs(config.screens, pattern) : undefined;\n return {\n // Normalize pattern to remove any leading, trailing slashes, duplicate slashes etc.\n pattern: (_pattern2 = pattern) === null || _pattern2 === void 0 ? void 0 : _pattern2.split('/').filter(Boolean).join('/'),\n stringify: config.stringify,\n screens\n };\n};\nconst createNormalizedConfigs = (options, pattern) => fromEntries(Object.entries(options).map(_ref2 => {\n let [name, c] = _ref2;\n const result = createConfigItem(c, pattern);\n return [name, result];\n}));\n//# sourceMappingURL=getPathFromState.js.map","import escape from 'escape-string-regexp';\nimport * as queryString from 'query-string';\nimport findFocusedRoute from './findFocusedRoute';\nimport validatePathConfig from './validatePathConfig';\n/**\n * Utility to parse a path string to initial state object accepted by the container.\n * This is useful for deep linking when we need to handle the incoming URL.\n *\n * @example\n * ```js\n * getStateFromPath(\n * '/chat/jane/42',\n * {\n * screens: {\n * Chat: {\n * path: 'chat/:author/:id',\n * parse: { id: Number }\n * }\n * }\n * }\n * )\n * ```\n * @param path Path string to parse and convert, e.g. /foo/bar?count=42.\n * @param options Extra options to fine-tune how to parse the path.\n */\nexport default function getStateFromPath(path, options) {\n if (options) {\n validatePathConfig(options);\n }\n let initialRoutes = [];\n if (options !== null && options !== void 0 && options.initialRouteName) {\n initialRoutes.push({\n initialRouteName: options.initialRouteName,\n parentScreens: []\n });\n }\n const screens = options === null || options === void 0 ? void 0 : options.screens;\n let remaining = path.replace(/\\/+/g, '/') // Replace multiple slash (//) with single ones\n .replace(/^\\//, '') // Remove extra leading slash\n .replace(/\\?.*$/, ''); // Remove query params which we will handle later\n\n // Make sure there is a trailing slash\n remaining = remaining.endsWith('/') ? remaining : `${remaining}/`;\n if (screens === undefined) {\n // When no config is specified, use the path segments as route names\n const routes = remaining.split('/').filter(Boolean).map(segment => {\n const name = decodeURIComponent(segment);\n return {\n name\n };\n });\n if (routes.length) {\n return createNestedStateObject(path, routes, initialRoutes);\n }\n return undefined;\n }\n\n // Create a normalized configs array which will be easier to use\n const configs = [].concat(...Object.keys(screens).map(key => createNormalizedConfigs(key, screens, [], initialRoutes, []))).sort((a, b) => {\n // Sort config so that:\n // - the most exhaustive ones are always at the beginning\n // - patterns with wildcard are always at the end\n\n // If 2 patterns are same, move the one with less route names up\n // This is an error state, so it's only useful for consistent error messages\n if (a.pattern === b.pattern) {\n return b.routeNames.join('>').localeCompare(a.routeNames.join('>'));\n }\n\n // If one of the patterns starts with the other, it's more exhaustive\n // So move it up\n if (a.pattern.startsWith(b.pattern)) {\n return -1;\n }\n if (b.pattern.startsWith(a.pattern)) {\n return 1;\n }\n const aParts = a.pattern.split('/');\n const bParts = b.pattern.split('/');\n for (let i = 0; i < Math.max(aParts.length, bParts.length); i++) {\n // if b is longer, b get higher priority\n if (aParts[i] == null) {\n return 1;\n }\n // if a is longer, a get higher priority\n if (bParts[i] == null) {\n return -1;\n }\n const aWildCard = aParts[i] === '*' || aParts[i].startsWith(':');\n const bWildCard = bParts[i] === '*' || bParts[i].startsWith(':');\n // if both are wildcard we compare next component\n if (aWildCard && bWildCard) {\n continue;\n }\n // if only a is wild card, b get higher priority\n if (aWildCard) {\n return 1;\n }\n // if only b is wild card, a get higher priority\n if (bWildCard) {\n return -1;\n }\n }\n return bParts.length - aParts.length;\n });\n\n // Check for duplicate patterns in the config\n configs.reduce((acc, config) => {\n if (acc[config.pattern]) {\n const a = acc[config.pattern].routeNames;\n const b = config.routeNames;\n\n // It's not a problem if the path string omitted from a inner most screen\n // For example, it's ok if a path resolves to `A > B > C` or `A > B`\n const intersects = a.length > b.length ? b.every((it, i) => a[i] === it) : a.every((it, i) => b[i] === it);\n if (!intersects) {\n throw new Error(`Found conflicting screens with the same pattern. The pattern '${config.pattern}' resolves to both '${a.join(' > ')}' and '${b.join(' > ')}'. Patterns must be unique and cannot resolve to more than one screen.`);\n }\n }\n return Object.assign(acc, {\n [config.pattern]: config\n });\n }, {});\n if (remaining === '/') {\n // We need to add special handling of empty path so navigation to empty path also works\n // When handling empty path, we should only look at the root level config\n const match = configs.find(config => config.path === '' && config.routeNames.every(\n // Make sure that none of the parent configs have a non-empty path defined\n name => {\n var _configs$find;\n return !((_configs$find = configs.find(c => c.screen === name)) !== null && _configs$find !== void 0 && _configs$find.path);\n }));\n if (match) {\n return createNestedStateObject(path, match.routeNames.map(name => ({\n name\n })), initialRoutes, configs);\n }\n return undefined;\n }\n let result;\n let current;\n\n // We match the whole path against the regex instead of segments\n // This makes sure matches such as wildcard will catch any unmatched routes, even if nested\n const {\n routes,\n remainingPath\n } = matchAgainstConfigs(remaining, configs.map(c => ({\n ...c,\n // Add `$` to the regex to make sure it matches till end of the path and not just beginning\n regex: c.regex ? new RegExp(c.regex.source + '$') : undefined\n })));\n if (routes !== undefined) {\n // This will always be empty if full path matched\n current = createNestedStateObject(path, routes, initialRoutes, configs);\n remaining = remainingPath;\n result = current;\n }\n if (current == null || result == null) {\n return undefined;\n }\n return result;\n}\nconst joinPaths = function () {\n for (var _len = arguments.length, paths = new Array(_len), _key = 0; _key < _len; _key++) {\n paths[_key] = arguments[_key];\n }\n return [].concat(...paths.map(p => p.split('/'))).filter(Boolean).join('/');\n};\nconst matchAgainstConfigs = (remaining, configs) => {\n let routes;\n let remainingPath = remaining;\n\n // Go through all configs, and see if the next path segment matches our regex\n for (const config of configs) {\n if (!config.regex) {\n continue;\n }\n const match = remainingPath.match(config.regex);\n\n // If our regex matches, we need to extract params from the path\n if (match) {\n var _config$pattern;\n const matchedParams = (_config$pattern = config.pattern) === null || _config$pattern === void 0 ? void 0 : _config$pattern.split('/').filter(p => p.startsWith(':')).reduce((acc, p, i) => Object.assign(acc, {\n // The param segments appear every second item starting from 2 in the regex match result\n [p]: match[(i + 1) * 2].replace(/\\//, '')\n }), {});\n routes = config.routeNames.map(name => {\n var _config$path;\n const config = configs.find(c => c.screen === name);\n const params = config === null || config === void 0 ? void 0 : (_config$path = config.path) === null || _config$path === void 0 ? void 0 : _config$path.split('/').filter(p => p.startsWith(':')).reduce((acc, p) => {\n const value = matchedParams[p];\n if (value) {\n var _config$parse;\n const key = p.replace(/^:/, '').replace(/\\?$/, '');\n acc[key] = (_config$parse = config.parse) !== null && _config$parse !== void 0 && _config$parse[key] ? config.parse[key](value) : value;\n }\n return acc;\n }, {});\n if (params && Object.keys(params).length) {\n return {\n name,\n params\n };\n }\n return {\n name\n };\n });\n remainingPath = remainingPath.replace(match[1], '');\n break;\n }\n }\n return {\n routes,\n remainingPath\n };\n};\nconst createNormalizedConfigs = function (screen, routeConfig) {\n let routeNames = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n let initials = arguments.length > 3 ? arguments[3] : undefined;\n let parentScreens = arguments.length > 4 ? arguments[4] : undefined;\n let parentPattern = arguments.length > 5 ? arguments[5] : undefined;\n const configs = [];\n routeNames.push(screen);\n parentScreens.push(screen);\n\n // @ts-expect-error: we can't strongly typecheck this for now\n const config = routeConfig[screen];\n if (typeof config === 'string') {\n // If a string is specified as the value of the key(e.g. Foo: '/path'), use it as the pattern\n const pattern = parentPattern ? joinPaths(parentPattern, config) : config;\n configs.push(createConfigItem(screen, routeNames, pattern, config));\n } else if (typeof config === 'object') {\n let pattern;\n\n // if an object is specified as the value (e.g. Foo: { ... }),\n // it can have `path` property and\n // it could have `screens` prop which has nested configs\n if (typeof config.path === 'string') {\n if (config.exact && config.path === undefined) {\n throw new Error(\"A 'path' needs to be specified when specifying 'exact: true'. If you don't want this screen in the URL, specify it as empty string, e.g. `path: ''`.\");\n }\n pattern = config.exact !== true ? joinPaths(parentPattern || '', config.path || '') : config.path || '';\n configs.push(createConfigItem(screen, routeNames, pattern, config.path, config.parse));\n }\n if (config.screens) {\n // property `initialRouteName` without `screens` has no purpose\n if (config.initialRouteName) {\n initials.push({\n initialRouteName: config.initialRouteName,\n parentScreens\n });\n }\n Object.keys(config.screens).forEach(nestedConfig => {\n const result = createNormalizedConfigs(nestedConfig, config.screens, routeNames, initials, [...parentScreens], pattern ?? parentPattern);\n configs.push(...result);\n });\n }\n }\n routeNames.pop();\n return configs;\n};\nconst createConfigItem = (screen, routeNames, pattern, path, parse) => {\n // Normalize pattern to remove any leading, trailing slashes, duplicate slashes etc.\n pattern = pattern.split('/').filter(Boolean).join('/');\n const regex = pattern ? new RegExp(`^(${pattern.split('/').map(it => {\n if (it.startsWith(':')) {\n return `(([^/]+\\\\/)${it.endsWith('?') ? '?' : ''})`;\n }\n return `${it === '*' ? '.*' : escape(it)}\\\\/`;\n }).join('')})`) : undefined;\n return {\n screen,\n regex,\n pattern,\n path,\n // The routeNames array is mutated, so copy it to keep the current state\n routeNames: [...routeNames],\n parse\n };\n};\nconst findParseConfigForRoute = (routeName, flatConfig) => {\n for (const config of flatConfig) {\n if (routeName === config.routeNames[config.routeNames.length - 1]) {\n return config.parse;\n }\n }\n return undefined;\n};\n\n// Try to find an initial route connected with the one passed\nconst findInitialRoute = (routeName, parentScreens, initialRoutes) => {\n for (const config of initialRoutes) {\n if (parentScreens.length === config.parentScreens.length) {\n let sameParents = true;\n for (let i = 0; i < parentScreens.length; i++) {\n if (parentScreens[i].localeCompare(config.parentScreens[i]) !== 0) {\n sameParents = false;\n break;\n }\n }\n if (sameParents) {\n return routeName !== config.initialRouteName ? config.initialRouteName : undefined;\n }\n }\n }\n return undefined;\n};\n\n// returns state object with values depending on whether\n// it is the end of state and if there is initialRoute for this level\nconst createStateObject = (initialRoute, route, isEmpty) => {\n if (isEmpty) {\n if (initialRoute) {\n return {\n index: 1,\n routes: [{\n name: initialRoute\n }, route]\n };\n } else {\n return {\n routes: [route]\n };\n }\n } else {\n if (initialRoute) {\n return {\n index: 1,\n routes: [{\n name: initialRoute\n }, {\n ...route,\n state: {\n routes: []\n }\n }]\n };\n } else {\n return {\n routes: [{\n ...route,\n state: {\n routes: []\n }\n }]\n };\n }\n }\n};\nconst createNestedStateObject = (path, routes, initialRoutes, flatConfig) => {\n let state;\n let route = routes.shift();\n const parentScreens = [];\n let initialRoute = findInitialRoute(route.name, parentScreens, initialRoutes);\n parentScreens.push(route.name);\n state = createStateObject(initialRoute, route, routes.length === 0);\n if (routes.length > 0) {\n let nestedState = state;\n while (route = routes.shift()) {\n initialRoute = findInitialRoute(route.name, parentScreens, initialRoutes);\n const nestedStateIndex = nestedState.index || nestedState.routes.length - 1;\n nestedState.routes[nestedStateIndex].state = createStateObject(initialRoute, route, routes.length === 0);\n if (routes.length > 0) {\n nestedState = nestedState.routes[nestedStateIndex].state;\n }\n parentScreens.push(route.name);\n }\n }\n route = findFocusedRoute(state);\n route.path = path;\n const params = parseQueryParams(path, flatConfig ? findParseConfigForRoute(route.name, flatConfig) : undefined);\n if (params) {\n route.params = {\n ...route.params,\n ...params\n };\n }\n return state;\n};\nconst parseQueryParams = (path, parseConfig) => {\n const query = path.split('?')[1];\n const params = queryString.parse(query);\n if (parseConfig) {\n Object.keys(params).forEach(name => {\n if (Object.hasOwnProperty.call(parseConfig, name) && typeof params[name] === 'string') {\n params[name] = parseConfig[name](params[name]);\n }\n });\n }\n return Object.keys(params).length ? params : undefined;\n};\n//# sourceMappingURL=getStateFromPath.js.map","import * as React from 'react';\n/**\n * Context which holds the navigation helpers of the parent navigator.\n * Navigators should use this context in their view component.\n */\nconst NavigationHelpersContext = /*#__PURE__*/React.createContext(undefined);\nexport default NavigationHelpersContext;\n//# sourceMappingURL=NavigationHelpersContext.js.map","import * as React from 'react';\n\n/**\n * A type of an object that have a route key as an object key\n * and a value whether to prevent that route.\n */\n\nconst PreventRemoveContext = /*#__PURE__*/React.createContext(undefined);\nexport default PreventRemoveContext;\n//# sourceMappingURL=PreventRemoveContext.js.map","import { nanoid } from 'nanoid/non-secure';\nimport * as React from 'react';\nimport useLatestCallback from 'use-latest-callback';\nimport NavigationHelpersContext from './NavigationHelpersContext';\nimport NavigationRouteContext from './NavigationRouteContext';\nimport PreventRemoveContext from './PreventRemoveContext';\n/**\n * Util function to transform map of prevented routes to a simpler object.\n */\nconst transformPreventedRoutes = preventedRoutesMap => {\n const preventedRoutesToTransform = [...preventedRoutesMap.values()];\n const preventedRoutes = preventedRoutesToTransform.reduce((acc, _ref) => {\n var _acc$routeKey;\n let {\n routeKey,\n preventRemove\n } = _ref;\n acc[routeKey] = {\n preventRemove: ((_acc$routeKey = acc[routeKey]) === null || _acc$routeKey === void 0 ? void 0 : _acc$routeKey.preventRemove) || preventRemove\n };\n return acc;\n }, {});\n return preventedRoutes;\n};\n\n/**\n * Component used for managing which routes have to be prevented from removal in native-stack.\n */\nexport default function PreventRemoveProvider(_ref2) {\n let {\n children\n } = _ref2;\n const [parentId] = React.useState(() => nanoid());\n const [preventedRoutesMap, setPreventedRoutesMap] = React.useState(new Map());\n const navigation = React.useContext(NavigationHelpersContext);\n const route = React.useContext(NavigationRouteContext);\n const preventRemoveContextValue = React.useContext(PreventRemoveContext);\n // take `setPreventRemove` from parent context - if exist it means we're in a nested context\n const setParentPrevented = preventRemoveContextValue === null || preventRemoveContextValue === void 0 ? void 0 : preventRemoveContextValue.setPreventRemove;\n const setPreventRemove = useLatestCallback((id, routeKey, preventRemove) => {\n if (preventRemove && (navigation == null || navigation !== null && navigation !== void 0 && navigation.getState().routes.every(route => route.key !== routeKey))) {\n throw new Error(`Couldn't find a route with the key ${routeKey}. Is your component inside NavigationContent?`);\n }\n setPreventedRoutesMap(prevPrevented => {\n var _prevPrevented$get, _prevPrevented$get2;\n // values haven't changed - do nothing\n if (routeKey === ((_prevPrevented$get = prevPrevented.get(id)) === null || _prevPrevented$get === void 0 ? void 0 : _prevPrevented$get.routeKey) && preventRemove === ((_prevPrevented$get2 = prevPrevented.get(id)) === null || _prevPrevented$get2 === void 0 ? void 0 : _prevPrevented$get2.preventRemove)) {\n return prevPrevented;\n }\n const nextPrevented = new Map(prevPrevented);\n if (preventRemove) {\n nextPrevented.set(id, {\n routeKey,\n preventRemove\n });\n } else {\n nextPrevented.delete(id);\n }\n return nextPrevented;\n });\n });\n const isPrevented = [...preventedRoutesMap.values()].some(_ref3 => {\n let {\n preventRemove\n } = _ref3;\n return preventRemove;\n });\n React.useEffect(() => {\n if ((route === null || route === void 0 ? void 0 : route.key) !== undefined && setParentPrevented !== undefined) {\n // when route is defined (and setParentPrevented) it means we're in a nested stack\n // route.key then will be the route key of parent\n setParentPrevented(parentId, route.key, isPrevented);\n return () => {\n setParentPrevented(parentId, route.key, false);\n };\n }\n return;\n }, [parentId, isPrevented, route === null || route === void 0 ? void 0 : route.key, setParentPrevented]);\n const value = React.useMemo(() => ({\n setPreventRemove,\n preventedRoutes: transformPreventedRoutes(preventedRoutesMap)\n }), [setPreventRemove, preventedRoutesMap]);\n return /*#__PURE__*/React.createElement(PreventRemoveContext.Provider, {\n value: value\n }, children);\n}\n//# sourceMappingURL=PreventRemoveProvider.js.map","// MD3 types\nexport let MD3TypescaleKey = /*#__PURE__*/function (MD3TypescaleKey) {\n MD3TypescaleKey[\"displayLarge\"] = \"displayLarge\";\n MD3TypescaleKey[\"displayMedium\"] = \"displayMedium\";\n MD3TypescaleKey[\"displaySmall\"] = \"displaySmall\";\n MD3TypescaleKey[\"headlineLarge\"] = \"headlineLarge\";\n MD3TypescaleKey[\"headlineMedium\"] = \"headlineMedium\";\n MD3TypescaleKey[\"headlineSmall\"] = \"headlineSmall\";\n MD3TypescaleKey[\"titleLarge\"] = \"titleLarge\";\n MD3TypescaleKey[\"titleMedium\"] = \"titleMedium\";\n MD3TypescaleKey[\"titleSmall\"] = \"titleSmall\";\n MD3TypescaleKey[\"labelLarge\"] = \"labelLarge\";\n MD3TypescaleKey[\"labelMedium\"] = \"labelMedium\";\n MD3TypescaleKey[\"labelSmall\"] = \"labelSmall\";\n MD3TypescaleKey[\"bodyLarge\"] = \"bodyLarge\";\n MD3TypescaleKey[\"bodyMedium\"] = \"bodyMedium\";\n MD3TypescaleKey[\"bodySmall\"] = \"bodySmall\";\n return MD3TypescaleKey;\n}({});\nexport let ElevationLevels = /*#__PURE__*/function (ElevationLevels) {\n ElevationLevels[ElevationLevels[\"level0\"] = 0] = \"level0\";\n ElevationLevels[ElevationLevels[\"level1\"] = 1] = \"level1\";\n ElevationLevels[ElevationLevels[\"level2\"] = 2] = \"level2\";\n ElevationLevels[ElevationLevels[\"level3\"] = 3] = \"level3\";\n ElevationLevels[ElevationLevels[\"level4\"] = 4] = \"level4\";\n ElevationLevels[ElevationLevels[\"level5\"] = 5] = \"level5\";\n return ElevationLevels;\n}({});\n//# sourceMappingURL=types.js.map","import * as React from 'react';\nimport NavigationContainerRefContext from './NavigationContainerRefContext';\nimport NavigationContext from './NavigationContext';\n/**\n * Hook to access the navigation prop of the parent screen anywhere.\n *\n * @returns Navigation prop of the parent screen.\n */\nexport default function useNavigation() {\n const root = React.useContext(NavigationContainerRefContext);\n const navigation = React.useContext(NavigationContext);\n if (navigation === undefined && root === undefined) {\n throw new Error(\"Couldn't find a navigation object. Is your component inside NavigationContainer?\");\n }\n\n // FIXME: Figure out a better way to do this\n return navigation ?? root;\n}\n//# sourceMappingURL=useNavigation.js.map","import * as React from 'react';\nimport useNavigation from './useNavigation';\n/**\n * Hook to run an effect in a focused screen, similar to `React.useEffect`.\n * This can be used to perform side-effects such as fetching data or subscribing to events.\n * The passed callback should be wrapped in `React.useCallback` to avoid running the effect too often.\n *\n * @param callback Memoized callback containing the effect, should optionally return a cleanup function.\n */\nexport default function useFocusEffect(effect) {\n const navigation = useNavigation();\n if (arguments[1] !== undefined) {\n const message = \"You passed a second argument to 'useFocusEffect', but it only accepts one argument. \" + \"If you want to pass a dependency array, you can use 'React.useCallback':\\n\\n\" + 'useFocusEffect(\\n' + ' React.useCallback(() => {\\n' + ' // Your code here\\n' + ' }, [depA, depB])\\n' + ');\\n\\n' + 'See usage guide: https://reactnavigation.org/docs/use-focus-effect';\n console.error(message);\n }\n React.useEffect(() => {\n let isFocused = false;\n let cleanup;\n const callback = () => {\n const destroy = effect();\n if (destroy === undefined || typeof destroy === 'function') {\n return destroy;\n }\n if (process.env.NODE_ENV !== 'production') {\n let message = 'An effect function must not return anything besides a function, which is used for clean-up.';\n if (destroy === null) {\n message += \" You returned 'null'. If your effect does not require clean-up, return 'undefined' (or nothing).\";\n } else if (typeof destroy.then === 'function') {\n message += \"\\n\\nIt looks like you wrote 'useFocusEffect(async () => ...)' or returned a Promise. \" + 'Instead, write the async function inside your effect ' + 'and call it immediately:\\n\\n' + 'useFocusEffect(\\n' + ' React.useCallback(() => {\\n' + ' async function fetchData() {\\n' + ' // You can await here\\n' + ' const response = await MyAPI.getData(someId);\\n' + ' // ...\\n' + ' }\\n\\n' + ' fetchData();\\n' + ' }, [someId])\\n' + ');\\n\\n' + 'See usage guide: https://reactnavigation.org/docs/use-focus-effect';\n } else {\n message += ` You returned '${JSON.stringify(destroy)}'.`;\n }\n console.error(message);\n }\n };\n\n // We need to run the effect on intial render/dep changes if the screen is focused\n if (navigation.isFocused()) {\n cleanup = callback();\n isFocused = true;\n }\n const unsubscribeFocus = navigation.addListener('focus', () => {\n // If callback was already called for focus, avoid calling it again\n // The focus event may also fire on intial render, so we guard against runing the effect twice\n if (isFocused) {\n return;\n }\n if (cleanup !== undefined) {\n cleanup();\n }\n cleanup = callback();\n isFocused = true;\n });\n const unsubscribeBlur = navigation.addListener('blur', () => {\n if (cleanup !== undefined) {\n cleanup();\n }\n cleanup = undefined;\n isFocused = false;\n });\n return () => {\n if (cleanup !== undefined) {\n cleanup();\n }\n unsubscribeFocus();\n unsubscribeBlur();\n };\n }, [effect, navigation]);\n}\n//# sourceMappingURL=useFocusEffect.js.map","import * as React from 'react';\nimport { useState } from 'react';\nimport useNavigation from './useNavigation';\n\n/**\n * Hook to get the current focus state of the screen. Returns a `true` if screen is focused, otherwise `false`.\n * This can be used if a component needs to render something based on the focus state.\n */\nexport default function useIsFocused() {\n const navigation = useNavigation();\n const [isFocused, setIsFocused] = useState(navigation.isFocused);\n const valueToReturn = navigation.isFocused();\n if (isFocused !== valueToReturn) {\n // If the value has changed since the last render, we need to update it.\n // This could happen if we missed an update from the event listeners during re-render.\n // React will process this update immediately, so the old subscription value won't be committed.\n // It is still nice to avoid returning a mismatched value though, so let's override the return value.\n // This is the same logic as in https://github.com/facebook/react/tree/master/packages/use-subscription\n setIsFocused(valueToReturn);\n }\n React.useEffect(() => {\n const unsubscribeFocus = navigation.addListener('focus', () => setIsFocused(true));\n const unsubscribeBlur = navigation.addListener('blur', () => setIsFocused(false));\n return () => {\n unsubscribeFocus();\n unsubscribeBlur();\n };\n }, [navigation]);\n React.useDebugValue(valueToReturn);\n return valueToReturn;\n}\n//# sourceMappingURL=useIsFocused.js.map","/**\n * Compare two arrays with primitive values as the content.\n * We need to make sure that both values and order match.\n */\nexport default function isArrayEqual(a, b) {\n if (a === b) {\n return true;\n }\n if (a.length !== b.length) {\n return false;\n }\n return a.every((it, index) => it === b[index]);\n}\n//# sourceMappingURL=isArrayEqual.js.map","import * as React from 'react';\nconst NavigationContent = _ref => {\n let {\n render,\n children\n } = _ref;\n return render(children);\n};\nexport default function useComponent(render) {\n const renderRef = React.useRef(render);\n\n // Normally refs shouldn't be mutated in render\n // But we return a component which will be rendered\n // So it's just for immediate consumption\n renderRef.current = render;\n React.useEffect(() => {\n renderRef.current = null;\n });\n return React.useRef(_ref2 => {\n let {\n children\n } = _ref2;\n const render = renderRef.current;\n if (render === null) {\n throw new Error('The returned component must be rendered in the same render phase as the hook.');\n }\n return /*#__PURE__*/React.createElement(NavigationContent, {\n render: render\n }, children);\n }).current;\n}\n//# sourceMappingURL=useComponent.js.map","import * as React from 'react';\n\n/**\n * Component which prevents updates for children if no props changed\n */\nfunction StaticContainer(props) {\n return props.children;\n}\nexport default /*#__PURE__*/React.memo(StaticContainer, (prevProps, nextProps) => {\n const prevPropKeys = Object.keys(prevProps);\n const nextPropKeys = Object.keys(nextProps);\n if (prevPropKeys.length !== nextPropKeys.length) {\n return false;\n }\n for (const key of prevPropKeys) {\n if (key === 'children') {\n continue;\n }\n if (prevProps[key] !== nextProps[key]) {\n return false;\n }\n }\n return true;\n});\n//# sourceMappingURL=StaticContainer.js.map","import * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nexport function SceneView(_ref) {\n let {\n children,\n navigationState,\n lazy,\n layout,\n index,\n lazyPreloadDistance,\n addEnterListener,\n style\n } = _ref;\n const [isLoading, setIsLoading] = React.useState(Math.abs(navigationState.index - index) > lazyPreloadDistance);\n if (isLoading && Math.abs(navigationState.index - index) <= lazyPreloadDistance) {\n // Always render the route when it becomes focused\n setIsLoading(false);\n }\n React.useEffect(() => {\n const handleEnter = value => {\n // If we're entering the current route, we need to load it\n if (value === index) {\n setIsLoading(prevState => {\n if (prevState) {\n return false;\n }\n return prevState;\n });\n }\n };\n let unsubscribe;\n let timer;\n if (lazy && isLoading) {\n // If lazy mode is enabled, listen to when we enter screens\n unsubscribe = addEnterListener(handleEnter);\n } else if (isLoading) {\n // If lazy mode is not enabled, render the scene with a delay if not loaded already\n // This improves the initial startup time as the scene is no longer blocking\n timer = setTimeout(() => setIsLoading(false), 0);\n }\n return () => {\n var _unsubscribe;\n (_unsubscribe = unsubscribe) === null || _unsubscribe === void 0 ? void 0 : _unsubscribe();\n clearTimeout(timer);\n };\n }, [addEnterListener, index, isLoading, lazy]);\n const focused = navigationState.index === index;\n return /*#__PURE__*/React.createElement(View, {\n accessibilityElementsHidden: !focused,\n importantForAccessibility: focused ? 'auto' : 'no-hide-descendants',\n style: [styles.route,\n // If we don't have the layout yet, make the focused screen fill the container\n // This avoids delay before we are able to render pages side by side\n layout.width ? {\n width: layout.width\n } : focused ? StyleSheet.absoluteFill : null, style]\n },\n // Only render the route only if it's either focused or layout is available\n // When layout is not available, we must not render unfocused routes\n // so that the focused route can fill the screen\n focused || layout.width ? children({\n loading: isLoading\n }) : null);\n}\nconst styles = StyleSheet.create({\n route: {\n flex: 1,\n overflow: 'hidden'\n }\n});\n//# sourceMappingURL=SceneView.js.map","import * as React from 'react';\nimport NavigationBuilderContext from './NavigationBuilderContext';\nimport NavigationContext from './NavigationContext';\nimport NavigationRouteContext from './NavigationRouteContext';\nimport SceneView from './SceneView';\nimport useNavigationCache from './useNavigationCache';\nimport useRouteCache from './useRouteCache';\n/**\n * Hook to create descriptor objects for the child routes.\n *\n * A descriptor object provides 3 things:\n * - Helper method to render a screen\n * - Options specified by the screen for the navigator\n * - Navigation object intended for the route\n */\nexport default function useDescriptors(_ref) {\n let {\n state,\n screens,\n navigation,\n screenOptions,\n defaultScreenOptions,\n onAction,\n getState,\n setState,\n addListener,\n addKeyedListener,\n onRouteFocus,\n router,\n emitter\n } = _ref;\n const [options, setOptions] = React.useState({});\n const {\n onDispatchAction,\n onOptionsChange,\n stackRef\n } = React.useContext(NavigationBuilderContext);\n const context = React.useMemo(() => ({\n navigation,\n onAction,\n addListener,\n addKeyedListener,\n onRouteFocus,\n onDispatchAction,\n onOptionsChange,\n stackRef\n }), [navigation, onAction, addListener, addKeyedListener, onRouteFocus, onDispatchAction, onOptionsChange, stackRef]);\n const navigations = useNavigationCache({\n state,\n getState,\n navigation,\n setOptions,\n router,\n emitter\n });\n const routes = useRouteCache(state.routes);\n return routes.reduce((acc, route, i) => {\n const config = screens[route.name];\n const screen = config.props;\n const navigation = navigations[route.key];\n const optionsList = [\n // The default `screenOptions` passed to the navigator\n screenOptions,\n // The `screenOptions` props passed to `Group` elements\n ...(config.options ? config.options.filter(Boolean) : []),\n // The `options` prop passed to `Screen` elements,\n screen.options,\n // The options set via `navigation.setOptions`\n options[route.key]];\n const customOptions = optionsList.reduce((acc, curr) => Object.assign(acc,\n // @ts-expect-error: we check for function but TS still complains\n typeof curr !== 'function' ? curr : curr({\n route,\n navigation\n })), {});\n const mergedOptions = {\n ...(typeof defaultScreenOptions === 'function' ?\n // @ts-expect-error: ts gives incorrect error here\n defaultScreenOptions({\n route,\n navigation,\n options: customOptions\n }) : defaultScreenOptions),\n ...customOptions\n };\n const clearOptions = () => setOptions(o => {\n if (route.key in o) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const {\n [route.key]: _,\n ...rest\n } = o;\n return rest;\n }\n return o;\n });\n acc[route.key] = {\n route,\n // @ts-expect-error: it's missing action helpers, fix later\n navigation,\n render() {\n return /*#__PURE__*/React.createElement(NavigationBuilderContext.Provider, {\n key: route.key,\n value: context\n }, /*#__PURE__*/React.createElement(NavigationContext.Provider, {\n value: navigation\n }, /*#__PURE__*/React.createElement(NavigationRouteContext.Provider, {\n value: route\n }, /*#__PURE__*/React.createElement(SceneView, {\n navigation: navigation,\n route: route,\n screen: screen,\n routeState: state.routes[i].state,\n getState: getState,\n setState: setState,\n options: mergedOptions,\n clearOptions: clearOptions\n }))));\n },\n options: mergedOptions\n };\n return acc;\n }, {});\n}\n//# sourceMappingURL=useDescriptors.js.map","import { CommonActions } from '@react-navigation/routers';\nimport * as React from 'react';\nimport NavigationBuilderContext from './NavigationBuilderContext';\n/**\n * Hook to cache navigation objects for each screen in the navigator.\n * It's important to cache them to make sure navigation objects don't change between renders.\n * This lets us apply optimizations like `React.memo` to minimize re-rendering screens.\n */\nexport default function useNavigationCache(_ref) {\n let {\n state,\n getState,\n navigation,\n setOptions,\n router,\n emitter\n } = _ref;\n const {\n stackRef\n } = React.useContext(NavigationBuilderContext);\n\n // Cache object which holds navigation objects for each screen\n // We use `React.useMemo` instead of `React.useRef` coz we want to invalidate it when deps change\n // In reality, these deps will rarely change, if ever\n const cache = React.useMemo(() => ({\n current: {}\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [getState, navigation, setOptions, router, emitter]);\n const actions = {\n ...router.actionCreators,\n ...CommonActions\n };\n cache.current = state.routes.reduce((acc, route) => {\n const previous = cache.current[route.key];\n if (previous) {\n // If a cached navigation object already exists, reuse it\n acc[route.key] = previous;\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const {\n emit,\n ...rest\n } = navigation;\n const dispatch = thunk => {\n const action = typeof thunk === 'function' ? thunk(getState()) : thunk;\n if (action != null) {\n navigation.dispatch({\n source: route.key,\n ...action\n });\n }\n };\n const withStack = callback => {\n let isStackSet = false;\n try {\n if (process.env.NODE_ENV !== 'production' && stackRef && !stackRef.current) {\n // Capture the stack trace for devtools\n stackRef.current = new Error().stack;\n isStackSet = true;\n }\n callback();\n } finally {\n if (isStackSet && stackRef) {\n stackRef.current = undefined;\n }\n }\n };\n const helpers = Object.keys(actions).reduce((acc, name) => {\n acc[name] = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return withStack(() =>\n // @ts-expect-error: name is a valid key, but TypeScript is dumb\n dispatch(actions[name](...args)));\n };\n return acc;\n }, {});\n acc[route.key] = {\n ...rest,\n ...helpers,\n // FIXME: too much work to fix the types for now\n ...emitter.create(route.key),\n dispatch: thunk => withStack(() => dispatch(thunk)),\n getParent: id => {\n if (id !== undefined && id === rest.getId()) {\n // If the passed id is the same as the current navigation id,\n // we return the cached navigation object for the relevant route\n return acc[route.key];\n }\n return rest.getParent(id);\n },\n setOptions: options => setOptions(o => ({\n ...o,\n [route.key]: {\n ...o[route.key],\n ...options\n }\n })),\n isFocused: () => {\n const state = getState();\n if (state.routes[state.index].key !== route.key) {\n return false;\n }\n\n // If the current screen is focused, we also need to check if parent navigator is focused\n // This makes sure that we return the focus state in the whole tree, not just this navigator\n return navigation ? navigation.isFocused() : true;\n }\n };\n }\n return acc;\n }, {});\n return cache.current;\n}\n//# sourceMappingURL=useNavigationCache.js.map","import * as React from 'react';\nimport NavigationBuilderContext from './NavigationBuilderContext';\nimport NavigationRouteContext from './NavigationRouteContext';\nconst VISITED_ROUTE_KEYS = Symbol('VISITED_ROUTE_KEYS');\nexport const shouldPreventRemove = (emitter, beforeRemoveListeners, currentRoutes, nextRoutes, action) => {\n const nextRouteKeys = nextRoutes.map(route => route.key);\n\n // Call these in reverse order so last screens handle the event first\n const removedRoutes = currentRoutes.filter(route => !nextRouteKeys.includes(route.key)).reverse();\n const visitedRouteKeys =\n // @ts-expect-error: add this property to mark that we've already emitted this action\n action[VISITED_ROUTE_KEYS] ?? new Set();\n const beforeRemoveAction = {\n ...action,\n [VISITED_ROUTE_KEYS]: visitedRouteKeys\n };\n for (const route of removedRoutes) {\n var _beforeRemoveListener;\n if (visitedRouteKeys.has(route.key)) {\n // Skip if we've already emitted this action for this screen\n continue;\n }\n\n // First, we need to check if any child screens want to prevent it\n const isPrevented = (_beforeRemoveListener = beforeRemoveListeners[route.key]) === null || _beforeRemoveListener === void 0 ? void 0 : _beforeRemoveListener.call(beforeRemoveListeners, beforeRemoveAction);\n if (isPrevented) {\n return true;\n }\n visitedRouteKeys.add(route.key);\n const event = emitter.emit({\n type: 'beforeRemove',\n target: route.key,\n data: {\n action: beforeRemoveAction\n },\n canPreventDefault: true\n });\n if (event.defaultPrevented) {\n return true;\n }\n }\n return false;\n};\nexport default function useOnPreventRemove(_ref) {\n let {\n getState,\n emitter,\n beforeRemoveListeners\n } = _ref;\n const {\n addKeyedListener\n } = React.useContext(NavigationBuilderContext);\n const route = React.useContext(NavigationRouteContext);\n const routeKey = route === null || route === void 0 ? void 0 : route.key;\n React.useEffect(() => {\n if (routeKey) {\n return addKeyedListener === null || addKeyedListener === void 0 ? void 0 : addKeyedListener('beforeRemove', routeKey, action => {\n const state = getState();\n return shouldPreventRemove(emitter, beforeRemoveListeners, state.routes, [], action);\n });\n }\n }, [addKeyedListener, beforeRemoveListeners, emitter, getState, routeKey]);\n}\n//# sourceMappingURL=useOnPreventRemove.js.map","import * as React from 'react';\nimport NavigationBuilderContext from './NavigationBuilderContext';\nimport useOnPreventRemove, { shouldPreventRemove } from './useOnPreventRemove';\n/**\n * Hook to handle actions for a navigator, including state updates and bubbling.\n *\n * Bubbling an action is achieved in 2 ways:\n * 1. To bubble action to parent, we expose the action handler in context and then access the parent context\n * 2. To bubble action to child, child adds event listeners subscribing to actions from parent\n *\n * When the action handler handles as action, it returns `true`, otherwise `false`.\n */\nexport default function useOnAction(_ref) {\n let {\n router,\n getState,\n setState,\n key,\n actionListeners,\n beforeRemoveListeners,\n routerConfigOptions,\n emitter\n } = _ref;\n const {\n onAction: onActionParent,\n onRouteFocus: onRouteFocusParent,\n addListener: addListenerParent,\n onDispatchAction\n } = React.useContext(NavigationBuilderContext);\n const routerConfigOptionsRef = React.useRef(routerConfigOptions);\n React.useEffect(() => {\n routerConfigOptionsRef.current = routerConfigOptions;\n });\n const onAction = React.useCallback(function (action) {\n let visitedNavigators = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Set();\n const state = getState();\n\n // Since actions can bubble both up and down, they could come to the same navigator again\n // We keep track of navigators which have already tried to handle the action and return if it's already visited\n if (visitedNavigators.has(state.key)) {\n return false;\n }\n visitedNavigators.add(state.key);\n if (typeof action.target !== 'string' || action.target === state.key) {\n let result = router.getStateForAction(state, action, routerConfigOptionsRef.current);\n\n // If a target is specified and set to current navigator, the action shouldn't bubble\n // So instead of `null`, we use the state object for such cases to signal that action was handled\n result = result === null && action.target === state.key ? state : result;\n if (result !== null) {\n onDispatchAction(action, state === result);\n if (state !== result) {\n const isPrevented = shouldPreventRemove(emitter, beforeRemoveListeners, state.routes, result.routes, action);\n if (isPrevented) {\n return true;\n }\n setState(result);\n }\n if (onRouteFocusParent !== undefined) {\n // Some actions such as `NAVIGATE` also want to bring the navigated route to focus in the whole tree\n // This means we need to focus all of the parent navigators of this navigator as well\n const shouldFocus = router.shouldActionChangeFocus(action);\n if (shouldFocus && key !== undefined) {\n onRouteFocusParent(key);\n }\n }\n return true;\n }\n }\n if (onActionParent !== undefined) {\n // Bubble action to the parent if the current navigator didn't handle it\n if (onActionParent(action, visitedNavigators)) {\n return true;\n }\n }\n\n // If the action wasn't handled by current navigator or a parent navigator, let children handle it\n for (let i = actionListeners.length - 1; i >= 0; i--) {\n const listener = actionListeners[i];\n if (listener(action, visitedNavigators)) {\n return true;\n }\n }\n return false;\n }, [actionListeners, beforeRemoveListeners, emitter, getState, key, onActionParent, onDispatchAction, onRouteFocusParent, router, setState]);\n useOnPreventRemove({\n getState,\n emitter,\n beforeRemoveListeners\n });\n React.useEffect(() => addListenerParent === null || addListenerParent === void 0 ? void 0 : addListenerParent('action', onAction), [addListenerParent, onAction]);\n return onAction;\n}\n//# sourceMappingURL=useOnAction.js.map","import { CommonActions } from '@react-navigation/routers';\nimport * as React from 'react';\nimport { isValidElementType } from 'react-is';\nimport Group from './Group';\nimport isArrayEqual from './isArrayEqual';\nimport isRecordEqual from './isRecordEqual';\nimport NavigationHelpersContext from './NavigationHelpersContext';\nimport NavigationRouteContext from './NavigationRouteContext';\nimport NavigationStateContext from './NavigationStateContext';\nimport PreventRemoveProvider from './PreventRemoveProvider';\nimport Screen from './Screen';\nimport { PrivateValueStore } from './types';\nimport useChildListeners from './useChildListeners';\nimport useComponent from './useComponent';\nimport useCurrentRender from './useCurrentRender';\nimport useDescriptors from './useDescriptors';\nimport useEventEmitter from './useEventEmitter';\nimport useFocusedListenersChildrenAdapter from './useFocusedListenersChildrenAdapter';\nimport useFocusEvents from './useFocusEvents';\nimport useKeyedChildListeners from './useKeyedChildListeners';\nimport useNavigationHelpers from './useNavigationHelpers';\nimport useOnAction from './useOnAction';\nimport useOnGetState from './useOnGetState';\nimport useOnRouteFocus from './useOnRouteFocus';\nimport useRegisterNavigator from './useRegisterNavigator';\nimport useScheduleUpdate from './useScheduleUpdate';\n\n// This is to make TypeScript compiler happy\n// eslint-disable-next-line babel/no-unused-expressions\nPrivateValueStore;\nconst isValidKey = key => key === undefined || typeof key === 'string' && key !== '';\n\n/**\n * Extract route config object from React children elements.\n *\n * @param children React Elements to extract the config from.\n */\nconst getRouteConfigsFromChildren = (children, groupKey, groupOptions) => {\n const configs = React.Children.toArray(children).reduce((acc, child) => {\n var _child$type, _child$props;\n if ( /*#__PURE__*/React.isValidElement(child)) {\n if (child.type === Screen) {\n // We can only extract the config from `Screen` elements\n // If something else was rendered, it's probably a bug\n\n if (!isValidKey(child.props.navigationKey)) {\n throw new Error(`Got an invalid 'navigationKey' prop (${JSON.stringify(child.props.navigationKey)}) for the screen '${child.props.name}'. It must be a non-empty string or 'undefined'.`);\n }\n acc.push({\n keys: [groupKey, child.props.navigationKey],\n options: groupOptions,\n props: child.props\n });\n return acc;\n }\n if (child.type === React.Fragment || child.type === Group) {\n if (!isValidKey(child.props.navigationKey)) {\n throw new Error(`Got an invalid 'navigationKey' prop (${JSON.stringify(child.props.navigationKey)}) for the group. It must be a non-empty string or 'undefined'.`);\n }\n\n // When we encounter a fragment or group, we need to dive into its children to extract the configs\n // This is handy to conditionally define a group of screens\n acc.push(...getRouteConfigsFromChildren(child.props.children, child.props.navigationKey, child.type !== Group ? groupOptions : groupOptions != null ? [...groupOptions, child.props.screenOptions] : [child.props.screenOptions]));\n return acc;\n }\n }\n throw new Error(`A navigator can only contain 'Screen', 'Group' or 'React.Fragment' as its direct children (found ${/*#__PURE__*/React.isValidElement(child) ? `'${typeof child.type === 'string' ? child.type : (_child$type = child.type) === null || _child$type === void 0 ? void 0 : _child$type.name}'${child.props != null && typeof child.props === 'object' && 'name' in child.props && (_child$props = child.props) !== null && _child$props !== void 0 && _child$props.name ? ` for the screen '${child.props.name}'` : ''}` : typeof child === 'object' ? JSON.stringify(child) : `'${String(child)}'`}). To render this component in the navigator, pass it in the 'component' prop to 'Screen'.`);\n }, []);\n if (process.env.NODE_ENV !== 'production') {\n configs.forEach(config => {\n const {\n name,\n children,\n component,\n getComponent\n } = config.props;\n if (typeof name !== 'string' || !name) {\n throw new Error(`Got an invalid name (${JSON.stringify(name)}) for the screen. It must be a non-empty string.`);\n }\n if (children != null || component !== undefined || getComponent !== undefined) {\n if (children != null && component !== undefined) {\n throw new Error(`Got both 'component' and 'children' props for the screen '${name}'. You must pass only one of them.`);\n }\n if (children != null && getComponent !== undefined) {\n throw new Error(`Got both 'getComponent' and 'children' props for the screen '${name}'. You must pass only one of them.`);\n }\n if (component !== undefined && getComponent !== undefined) {\n throw new Error(`Got both 'component' and 'getComponent' props for the screen '${name}'. You must pass only one of them.`);\n }\n if (children != null && typeof children !== 'function') {\n throw new Error(`Got an invalid value for 'children' prop for the screen '${name}'. It must be a function returning a React Element.`);\n }\n if (component !== undefined && !isValidElementType(component)) {\n throw new Error(`Got an invalid value for 'component' prop for the screen '${name}'. It must be a valid React Component.`);\n }\n if (getComponent !== undefined && typeof getComponent !== 'function') {\n throw new Error(`Got an invalid value for 'getComponent' prop for the screen '${name}'. It must be a function returning a React Component.`);\n }\n if (typeof component === 'function') {\n if (component.name === 'component') {\n // Inline anonymous functions passed in the `component` prop will have the name of the prop\n // It's relatively safe to assume that it's not a component since it should also have PascalCase name\n // We won't catch all scenarios here, but this should catch a good chunk of incorrect use.\n console.warn(`Looks like you're passing an inline function for 'component' prop for the screen '${name}' (e.g. component={() => }). Passing an inline function will cause the component state to be lost on re-render and cause perf issues since it's re-created every render. You can pass the function as children to 'Screen' instead to achieve the desired behaviour.`);\n } else if (/^[a-z]/.test(component.name)) {\n console.warn(`Got a component with the name '${component.name}' for the screen '${name}'. React Components must start with an uppercase letter. If you're passing a regular function and not a component, pass it as children to 'Screen' instead. Otherwise capitalize your component's name.`);\n }\n }\n } else {\n throw new Error(`Couldn't find a 'component', 'getComponent' or 'children' prop for the screen '${name}'. This can happen if you passed 'undefined'. You likely forgot to export your component from the file it's defined in, or mixed up default import and named import when importing.`);\n }\n });\n }\n return configs;\n};\n\n/**\n * Hook for building navigators.\n *\n * @param createRouter Factory method which returns router object.\n * @param options Options object containing `children` and additional options for the router.\n * @returns An object containing `state`, `navigation`, `descriptors` objects.\n */\nexport default function useNavigationBuilder(createRouter, options) {\n const navigatorKey = useRegisterNavigator();\n const route = React.useContext(NavigationRouteContext);\n const {\n children,\n screenListeners,\n ...rest\n } = options;\n const {\n current: router\n } = React.useRef(createRouter({\n ...rest,\n ...(route !== null && route !== void 0 && route.params && route.params.state == null && route.params.initial !== false && typeof route.params.screen === 'string' ? {\n initialRouteName: route.params.screen\n } : null)\n }));\n const routeConfigs = getRouteConfigsFromChildren(children);\n const screens = routeConfigs.reduce((acc, config) => {\n if (config.props.name in acc) {\n throw new Error(`A navigator cannot contain multiple 'Screen' components with the same name (found duplicate screen named '${config.props.name}')`);\n }\n acc[config.props.name] = config;\n return acc;\n }, {});\n const routeNames = routeConfigs.map(config => config.props.name);\n const routeKeyList = routeNames.reduce((acc, curr) => {\n acc[curr] = screens[curr].keys.map(key => key ?? '').join(':');\n return acc;\n }, {});\n const routeParamList = routeNames.reduce((acc, curr) => {\n const {\n initialParams\n } = screens[curr].props;\n acc[curr] = initialParams;\n return acc;\n }, {});\n const routeGetIdList = routeNames.reduce((acc, curr) => Object.assign(acc, {\n [curr]: screens[curr].props.getId\n }), {});\n if (!routeNames.length) {\n throw new Error(\"Couldn't find any screens for the navigator. Have you defined any screens as its children?\");\n }\n const isStateValid = React.useCallback(state => state.type === undefined || state.type === router.type, [router.type]);\n const isStateInitialized = React.useCallback(state => state !== undefined && state.stale === false && isStateValid(state), [isStateValid]);\n const {\n state: currentState,\n getState: getCurrentState,\n setState: setCurrentState,\n setKey,\n getKey,\n getIsInitial\n } = React.useContext(NavigationStateContext);\n const stateCleanedUp = React.useRef(false);\n const cleanUpState = React.useCallback(() => {\n setCurrentState(undefined);\n stateCleanedUp.current = true;\n }, [setCurrentState]);\n const setState = React.useCallback(state => {\n if (stateCleanedUp.current) {\n // State might have been already cleaned up due to unmount\n // We do not want to expose API allowing to override this\n // This would lead to old data preservation on main navigator unmount\n return;\n }\n setCurrentState(state);\n }, [setCurrentState]);\n const [initializedState, isFirstStateInitialization] = React.useMemo(() => {\n var _route$params4;\n const initialRouteParamList = routeNames.reduce((acc, curr) => {\n var _route$params, _route$params2, _route$params3;\n const {\n initialParams\n } = screens[curr].props;\n const initialParamsFromParams = (route === null || route === void 0 ? void 0 : (_route$params = route.params) === null || _route$params === void 0 ? void 0 : _route$params.state) == null && (route === null || route === void 0 ? void 0 : (_route$params2 = route.params) === null || _route$params2 === void 0 ? void 0 : _route$params2.initial) !== false && (route === null || route === void 0 ? void 0 : (_route$params3 = route.params) === null || _route$params3 === void 0 ? void 0 : _route$params3.screen) === curr ? route.params.params : undefined;\n acc[curr] = initialParams !== undefined || initialParamsFromParams !== undefined ? {\n ...initialParams,\n ...initialParamsFromParams\n } : undefined;\n return acc;\n }, {});\n\n // If the current state isn't initialized on first render, we initialize it\n // We also need to re-initialize it if the state passed from parent was changed (maybe due to reset)\n // Otherwise assume that the state was provided as initial state\n // So we need to rehydrate it to make it usable\n if ((currentState === undefined || !isStateValid(currentState)) && (route === null || route === void 0 ? void 0 : (_route$params4 = route.params) === null || _route$params4 === void 0 ? void 0 : _route$params4.state) == null) {\n return [router.getInitialState({\n routeNames,\n routeParamList: initialRouteParamList,\n routeGetIdList\n }), true];\n } else {\n var _route$params5;\n return [router.getRehydratedState((route === null || route === void 0 ? void 0 : (_route$params5 = route.params) === null || _route$params5 === void 0 ? void 0 : _route$params5.state) ?? currentState, {\n routeNames,\n routeParamList: initialRouteParamList,\n routeGetIdList\n }), false];\n }\n // We explicitly don't include routeNames, route.params etc. in the dep list\n // below. We want to avoid forcing a new state to be calculated in those cases\n // Instead, we handle changes to these in the nextState code below. Note\n // that some changes to routeConfigs are explicitly ignored, such as changes\n // to initialParams\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currentState, router, isStateValid]);\n const previousRouteKeyListRef = React.useRef(routeKeyList);\n React.useEffect(() => {\n previousRouteKeyListRef.current = routeKeyList;\n });\n const previousRouteKeyList = previousRouteKeyListRef.current;\n let state =\n // If the state isn't initialized, or stale, use the state we initialized instead\n // The state won't update until there's a change needed in the state we have initalized locally\n // So it'll be `undefined` or stale until the first navigation event happens\n isStateInitialized(currentState) ? currentState : initializedState;\n let nextState = state;\n if (!isArrayEqual(state.routeNames, routeNames) || !isRecordEqual(routeKeyList, previousRouteKeyList)) {\n // When the list of route names change, the router should handle it to remove invalid routes\n nextState = router.getStateForRouteNamesChange(state, {\n routeNames,\n routeParamList,\n routeGetIdList,\n routeKeyChanges: Object.keys(routeKeyList).filter(name => previousRouteKeyList.hasOwnProperty(name) && routeKeyList[name] !== previousRouteKeyList[name])\n });\n }\n const previousNestedParamsRef = React.useRef(route === null || route === void 0 ? void 0 : route.params);\n React.useEffect(() => {\n previousNestedParamsRef.current = route === null || route === void 0 ? void 0 : route.params;\n }, [route === null || route === void 0 ? void 0 : route.params]);\n if (route !== null && route !== void 0 && route.params) {\n const previousParams = previousNestedParamsRef.current;\n let action;\n if (typeof route.params.state === 'object' && route.params.state != null && route.params !== previousParams) {\n // If the route was updated with new state, we should reset to it\n action = CommonActions.reset(route.params.state);\n } else if (typeof route.params.screen === 'string' && (route.params.initial === false && isFirstStateInitialization || route.params !== previousParams)) {\n // If the route was updated with new screen name and/or params, we should navigate there\n action = CommonActions.navigate({\n name: route.params.screen,\n params: route.params.params,\n path: route.params.path\n });\n }\n\n // The update should be limited to current navigator only, so we call the router manually\n const updatedState = action ? router.getStateForAction(nextState, action, {\n routeNames,\n routeParamList,\n routeGetIdList\n }) : null;\n nextState = updatedState !== null ? router.getRehydratedState(updatedState, {\n routeNames,\n routeParamList,\n routeGetIdList\n }) : nextState;\n }\n const shouldUpdate = state !== nextState;\n useScheduleUpdate(() => {\n if (shouldUpdate) {\n // If the state needs to be updated, we'll schedule an update\n setState(nextState);\n }\n });\n\n // The up-to-date state will come in next render, but we don't need to wait for it\n // We can't use the outdated state since the screens have changed, which will cause error due to mismatched config\n // So we override the state object we return to use the latest state as soon as possible\n state = nextState;\n React.useEffect(() => {\n setKey(navigatorKey);\n if (!getIsInitial()) {\n // If it's not initial render, we need to update the state\n // This will make sure that our container gets notifier of state changes due to new mounts\n // This is necessary for proper screen tracking, URL updates etc.\n setState(nextState);\n }\n return () => {\n // We need to clean up state for this navigator on unmount\n // We do it in a timeout because we need to detect if another navigator mounted in the meantime\n // For example, if another navigator has started rendering, we should skip cleanup\n // Otherwise, our cleanup step will cleanup state for the other navigator and re-initialize it\n setTimeout(() => {\n if (getCurrentState() !== undefined && getKey() === navigatorKey) {\n cleanUpState();\n }\n }, 0);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // We initialize this ref here to avoid a new getState getting initialized\n // whenever initializedState changes. We want getState to have access to the\n // latest initializedState, but don't need it to change when that happens\n const initializedStateRef = React.useRef();\n initializedStateRef.current = initializedState;\n const getState = React.useCallback(() => {\n const currentState = getCurrentState();\n return isStateInitialized(currentState) ? currentState : initializedStateRef.current;\n }, [getCurrentState, isStateInitialized]);\n const emitter = useEventEmitter(e => {\n let routeNames = [];\n let route;\n if (e.target) {\n var _route;\n route = state.routes.find(route => route.key === e.target);\n if ((_route = route) !== null && _route !== void 0 && _route.name) {\n routeNames.push(route.name);\n }\n } else {\n route = state.routes[state.index];\n routeNames.push(...Object.keys(screens).filter(name => {\n var _route2;\n return ((_route2 = route) === null || _route2 === void 0 ? void 0 : _route2.name) === name;\n }));\n }\n if (route == null) {\n return;\n }\n const navigation = descriptors[route.key].navigation;\n const listeners = [].concat(\n // Get an array of listeners for all screens + common listeners on navigator\n ...[screenListeners, ...routeNames.map(name => {\n const {\n listeners\n } = screens[name].props;\n return listeners;\n })].map(listeners => {\n const map = typeof listeners === 'function' ? listeners({\n route: route,\n navigation\n }) : listeners;\n return map ? Object.keys(map).filter(type => type === e.type).map(type => map === null || map === void 0 ? void 0 : map[type]) : undefined;\n }))\n // We don't want same listener to be called multiple times for same event\n // So we remove any duplicate functions from the array\n .filter((cb, i, self) => cb && self.lastIndexOf(cb) === i);\n listeners.forEach(listener => listener === null || listener === void 0 ? void 0 : listener(e));\n });\n useFocusEvents({\n state,\n emitter\n });\n React.useEffect(() => {\n emitter.emit({\n type: 'state',\n data: {\n state\n }\n });\n }, [emitter, state]);\n const {\n listeners: childListeners,\n addListener\n } = useChildListeners();\n const {\n keyedListeners,\n addKeyedListener\n } = useKeyedChildListeners();\n const onAction = useOnAction({\n router,\n getState,\n setState,\n key: route === null || route === void 0 ? void 0 : route.key,\n actionListeners: childListeners.action,\n beforeRemoveListeners: keyedListeners.beforeRemove,\n routerConfigOptions: {\n routeNames,\n routeParamList,\n routeGetIdList\n },\n emitter\n });\n const onRouteFocus = useOnRouteFocus({\n router,\n key: route === null || route === void 0 ? void 0 : route.key,\n getState,\n setState\n });\n const navigation = useNavigationHelpers({\n id: options.id,\n onAction,\n getState,\n emitter,\n router\n });\n useFocusedListenersChildrenAdapter({\n navigation,\n focusedListeners: childListeners.focus\n });\n useOnGetState({\n getState,\n getStateListeners: keyedListeners.getState\n });\n const descriptors = useDescriptors({\n state,\n screens,\n navigation,\n screenOptions: options.screenOptions,\n defaultScreenOptions: options.defaultScreenOptions,\n onAction,\n getState,\n setState,\n onRouteFocus,\n addListener,\n addKeyedListener,\n router,\n // @ts-expect-error: this should have both core and custom events, but too much work right now\n emitter\n });\n useCurrentRender({\n state,\n navigation,\n descriptors\n });\n const NavigationContent = useComponent(children => /*#__PURE__*/React.createElement(NavigationHelpersContext.Provider, {\n value: navigation\n }, /*#__PURE__*/React.createElement(PreventRemoveProvider, null, children)));\n return {\n state,\n navigation,\n descriptors,\n NavigationContent\n };\n}\n//# sourceMappingURL=useNavigationBuilder.js.map","import { nanoid } from 'nanoid/non-secure';\nimport * as React from 'react';\nimport { SingleNavigatorContext } from './EnsureSingleNavigator';\n\n/**\n * Register a navigator in the parent context (either a navigation container or a screen).\n * This is used to prevent multiple navigators under a single container or screen.\n */\nexport default function useRegisterNavigator() {\n const [key] = React.useState(() => nanoid());\n const container = React.useContext(SingleNavigatorContext);\n if (container === undefined) {\n throw new Error(\"Couldn't register the navigator. Have you wrapped your app with 'NavigationContainer'?\\n\\nThis can also happen if there are multiple copies of '@react-navigation' packages installed.\");\n }\n React.useEffect(() => {\n const {\n register,\n unregister\n } = container;\n register(key);\n return () => unregister(key);\n }, [container, key]);\n return key;\n}\n//# sourceMappingURL=useRegisterNavigator.js.map","/**\n * Compare two records with primitive values as the content.\n */\nexport default function isRecordEqual(a, b) {\n if (a === b) {\n return true;\n }\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b);\n if (aKeys.length !== bKeys.length) {\n return false;\n }\n return aKeys.every(key => a[key] === b[key]);\n}\n//# sourceMappingURL=isRecordEqual.js.map","import * as React from 'react';\nimport NavigationContext from './NavigationContext';\n/**\n * Hook to take care of emitting `focus` and `blur` events.\n */\nexport default function useFocusEvents(_ref) {\n let {\n state,\n emitter\n } = _ref;\n const navigation = React.useContext(NavigationContext);\n const lastFocusedKeyRef = React.useRef();\n const currentFocusedKey = state.routes[state.index].key;\n\n // When the parent screen changes its focus state, we also need to change child's focus\n // Coz the child screen can't be focused if the parent screen is out of focus\n React.useEffect(() => navigation === null || navigation === void 0 ? void 0 : navigation.addListener('focus', () => {\n lastFocusedKeyRef.current = currentFocusedKey;\n emitter.emit({\n type: 'focus',\n target: currentFocusedKey\n });\n }), [currentFocusedKey, emitter, navigation]);\n React.useEffect(() => navigation === null || navigation === void 0 ? void 0 : navigation.addListener('blur', () => {\n lastFocusedKeyRef.current = undefined;\n emitter.emit({\n type: 'blur',\n target: currentFocusedKey\n });\n }), [currentFocusedKey, emitter, navigation]);\n React.useEffect(() => {\n const lastFocusedKey = lastFocusedKeyRef.current;\n lastFocusedKeyRef.current = currentFocusedKey;\n\n // We wouldn't have `lastFocusedKey` on initial mount\n // Fire focus event for the current route on mount if there's no parent navigator\n if (lastFocusedKey === undefined && !navigation) {\n emitter.emit({\n type: 'focus',\n target: currentFocusedKey\n });\n }\n\n // We should only emit events when the focused key changed and navigator is focused\n // When navigator is not focused, screens inside shouldn't receive focused status either\n if (lastFocusedKey === currentFocusedKey || !(navigation ? navigation.isFocused() : true)) {\n return;\n }\n if (lastFocusedKey === undefined) {\n // Only fire events after initial mount\n return;\n }\n emitter.emit({\n type: 'blur',\n target: lastFocusedKey\n });\n emitter.emit({\n type: 'focus',\n target: currentFocusedKey\n });\n }, [currentFocusedKey, emitter, navigation]);\n}\n//# sourceMappingURL=useFocusEvents.js.map","import * as React from 'react';\nimport NavigationBuilderContext from './NavigationBuilderContext';\n/**\n * Hook to handle focus actions for a route.\n * Focus action needs to be treated specially, coz when a nested route is focused,\n * the parent navigators also needs to be focused.\n */\nexport default function useOnRouteFocus(_ref) {\n let {\n router,\n getState,\n key: sourceRouteKey,\n setState\n } = _ref;\n const {\n onRouteFocus: onRouteFocusParent\n } = React.useContext(NavigationBuilderContext);\n return React.useCallback(key => {\n const state = getState();\n const result = router.getStateForRouteFocus(state, key);\n if (result !== state) {\n setState(result);\n }\n if (onRouteFocusParent !== undefined && sourceRouteKey !== undefined) {\n onRouteFocusParent(sourceRouteKey);\n }\n }, [getState, onRouteFocusParent, router, setState, sourceRouteKey]);\n}\n//# sourceMappingURL=useOnRouteFocus.js.map","import { CommonActions } from '@react-navigation/routers';\nimport * as React from 'react';\nimport NavigationContext from './NavigationContext';\nimport { PrivateValueStore } from './types';\nimport UnhandledActionContext from './UnhandledActionContext';\n// This is to make TypeScript compiler happy\n// eslint-disable-next-line babel/no-unused-expressions\nPrivateValueStore;\n/**\n * Navigation object with helper methods to be used by a navigator.\n * This object includes methods for common actions as well as methods the parent screen's navigation object.\n */\nexport default function useNavigationHelpers(_ref) {\n let {\n id: navigatorId,\n onAction,\n getState,\n emitter,\n router\n } = _ref;\n const onUnhandledAction = React.useContext(UnhandledActionContext);\n const parentNavigationHelpers = React.useContext(NavigationContext);\n return React.useMemo(() => {\n const dispatch = op => {\n const action = typeof op === 'function' ? op(getState()) : op;\n const handled = onAction(action);\n if (!handled) {\n onUnhandledAction === null || onUnhandledAction === void 0 ? void 0 : onUnhandledAction(action);\n }\n };\n const actions = {\n ...router.actionCreators,\n ...CommonActions\n };\n const helpers = Object.keys(actions).reduce((acc, name) => {\n // @ts-expect-error: name is a valid key, but TypeScript is dumb\n acc[name] = function () {\n return dispatch(actions[name](...arguments));\n };\n return acc;\n }, {});\n const navigationHelpers = {\n ...parentNavigationHelpers,\n ...helpers,\n dispatch,\n emit: emitter.emit,\n isFocused: parentNavigationHelpers ? parentNavigationHelpers.isFocused : () => true,\n canGoBack: () => {\n const state = getState();\n return router.getStateForAction(state, CommonActions.goBack(), {\n routeNames: state.routeNames,\n routeParamList: {},\n routeGetIdList: {}\n }) !== null || (parentNavigationHelpers === null || parentNavigationHelpers === void 0 ? void 0 : parentNavigationHelpers.canGoBack()) || false;\n },\n getId: () => navigatorId,\n getParent: id => {\n if (id !== undefined) {\n let current = navigationHelpers;\n while (current && id !== current.getId()) {\n current = current.getParent();\n }\n return current;\n }\n return parentNavigationHelpers;\n },\n getState\n };\n return navigationHelpers;\n }, [navigatorId, emitter.emit, getState, onAction, onUnhandledAction, parentNavigationHelpers, router]);\n}\n//# sourceMappingURL=useNavigationHelpers.js.map","import * as React from 'react';\nimport NavigationBuilderContext from './NavigationBuilderContext';\n/**\n * Hook for passing focus callback to children\n */\nexport default function useFocusedListenersChildrenAdapter(_ref) {\n let {\n navigation,\n focusedListeners\n } = _ref;\n const {\n addListener\n } = React.useContext(NavigationBuilderContext);\n const listener = React.useCallback(callback => {\n if (navigation.isFocused()) {\n for (const listener of focusedListeners) {\n const {\n handled,\n result\n } = listener(callback);\n if (handled) {\n return {\n handled,\n result\n };\n }\n }\n return {\n handled: true,\n result: callback(navigation)\n };\n } else {\n return {\n handled: false,\n result: null\n };\n }\n }, [focusedListeners, navigation]);\n React.useEffect(() => addListener === null || addListener === void 0 ? void 0 : addListener('focus', listener), [addListener, listener]);\n}\n//# sourceMappingURL=useFocusedListenersChildrenAdapter.js.map","import * as React from 'react';\nimport isArrayEqual from './isArrayEqual';\nimport NavigationBuilderContext from './NavigationBuilderContext';\nimport NavigationRouteContext from './NavigationRouteContext';\nexport default function useOnGetState(_ref) {\n let {\n getState,\n getStateListeners\n } = _ref;\n const {\n addKeyedListener\n } = React.useContext(NavigationBuilderContext);\n const route = React.useContext(NavigationRouteContext);\n const key = route ? route.key : 'root';\n const getRehydratedState = React.useCallback(() => {\n const state = getState();\n\n // Avoid returning new route objects if we don't need to\n const routes = state.routes.map(route => {\n var _getStateListeners$ro;\n const childState = (_getStateListeners$ro = getStateListeners[route.key]) === null || _getStateListeners$ro === void 0 ? void 0 : _getStateListeners$ro.call(getStateListeners);\n if (route.state === childState) {\n return route;\n }\n return {\n ...route,\n state: childState\n };\n });\n if (isArrayEqual(state.routes, routes)) {\n return state;\n }\n return {\n ...state,\n routes\n };\n }, [getState, getStateListeners]);\n React.useEffect(() => {\n return addKeyedListener === null || addKeyedListener === void 0 ? void 0 : addKeyedListener('getState', key, getRehydratedState);\n }, [addKeyedListener, getRehydratedState, key]);\n}\n//# sourceMappingURL=useOnGetState.js.map","import * as React from 'react';\nimport CurrentRenderContext from './CurrentRenderContext';\n/**\n * Write the current options, so that server renderer can get current values\n * Mutating values like this is not safe in async mode, but it doesn't apply to SSR\n */\nexport default function useCurrentRender(_ref) {\n let {\n state,\n navigation,\n descriptors\n } = _ref;\n const current = React.useContext(CurrentRenderContext);\n if (current && navigation.isFocused()) {\n current.options = descriptors[state.routes[state.index].key].options;\n }\n}\n//# sourceMappingURL=useCurrentRender.js.map","import * as React from 'react';\nimport createNavigationContainerRef from './createNavigationContainerRef';\nexport default function useNavigationContainerRef() {\n const navigation = React.useRef(null);\n if (navigation.current == null) {\n navigation.current = createNavigationContainerRef();\n }\n return navigation.current;\n}\n//# sourceMappingURL=useNavigationContainerRef.js.map","import * as React from 'react';\nimport useNavigation from './useNavigation';\n/**\n * Hook to get a value from the current navigation state using a selector.\n *\n * @param selector Selector function to get a value from the state.\n */\nexport default function useNavigationState(selector) {\n const navigation = useNavigation();\n\n // We don't care about the state value, we run the selector again at the end\n // The state is only to make sure that there's a re-render when we have a new value\n const [, setResult] = React.useState(() => selector(navigation.getState()));\n\n // We store the selector in a ref to avoid re-subscribing listeners every render\n const selectorRef = React.useRef(selector);\n React.useEffect(() => {\n selectorRef.current = selector;\n });\n React.useEffect(() => {\n const unsubscribe = navigation.addListener('state', e => {\n setResult(selectorRef.current(e.data.state));\n });\n return unsubscribe;\n }, [navigation]);\n return selector(navigation.getState());\n}\n//# sourceMappingURL=useNavigationState.js.map","import * as React from 'react';\nimport PreventRemoveContext from './PreventRemoveContext';\nexport default function usePreventRemoveContext() {\n const value = React.useContext(PreventRemoveContext);\n if (value == null) {\n throw new Error(\"Couldn't find the prevent remove context. Is your component inside NavigationContent?\");\n }\n return value;\n}\n//# sourceMappingURL=usePreventRemoveContext.js.map","import * as React from 'react';\nimport NavigationRouteContext from './NavigationRouteContext';\n/**\n * Hook to access the route prop of the parent screen anywhere.\n *\n * @returns Route prop of the parent screen.\n */\nexport default function useRoute() {\n const route = React.useContext(NavigationRouteContext);\n if (route === undefined) {\n throw new Error(\"Couldn't find a route object. Is your component inside a screen in a navigator?\");\n }\n return route;\n}\n//# sourceMappingURL=useRoute.js.map","import { nanoid } from 'nanoid/non-secure';\nimport * as React from 'react';\nimport useLatestCallback from 'use-latest-callback';\nimport useNavigation from './useNavigation';\nimport usePreventRemoveContext from './usePreventRemoveContext';\nimport useRoute from './useRoute';\n\n/**\n * Hook to prevent screen from being removed. Can be used to prevent users from leaving the screen.\n *\n * @param preventRemove Boolean indicating whether to prevent screen from being removed.\n * @param callback Function which is executed when screen was prevented from being removed.\n */\nexport default function usePreventRemove(preventRemove, callback) {\n const [id] = React.useState(() => nanoid());\n const navigation = useNavigation();\n const {\n key: routeKey\n } = useRoute();\n const {\n setPreventRemove\n } = usePreventRemoveContext();\n React.useEffect(() => {\n setPreventRemove(id, routeKey, preventRemove);\n return () => {\n setPreventRemove(id, routeKey, false);\n };\n }, [setPreventRemove, id, routeKey, preventRemove]);\n const beforeRemoveListener = useLatestCallback(e => {\n if (!preventRemove) {\n return;\n }\n e.preventDefault();\n callback({\n data: e.data\n });\n });\n React.useEffect(() => navigation === null || navigation === void 0 ? void 0 : navigation.addListener('beforeRemove', beforeRemoveListener), [navigation, beforeRemoveListener]);\n}\n//# sourceMappingURL=usePreventRemove.js.map","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"style\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 canUseDOM from '../../modules/canUseDom';\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((props, ref) => {\n var style = props.style,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\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;","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","// Previous types exported gesture handlers as classes which creates an interface and variable, both named the same as class.\n// Without those types, we'd introduce breaking change, forcing users to prefix every handler type specification with typeof\n// e.g. React.createRef -> 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 { TouchEventType } from '../TouchEventType';\nimport { ValueOf } from '../typeUtils';\nimport { handlerIDToTag } from './handlersRegistry';\nimport { toArray } from '../utils';\nimport RNGestureHandlerModule from '../RNGestureHandlerModule';\n\nconst commonProps = [\n 'id',\n 'enabled',\n 'shouldCancelWhenOutside',\n 'hitSlop',\n 'cancelsTouchesInView',\n 'userSelect',\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}\nexport interface HandlerStateChangeEventPayload extends GestureEventPayload {\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\nexport type UserSelect = 'none' | 'auto' | 'text';\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: TouchEventType;\n allTouches: TouchData[];\n changedTouches: TouchData[];\n};\n\nexport type GestureUpdateEvent> =\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 userSelect?: UserSelect;\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 testID?: string;\n cancelsTouchesInView?: boolean;\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 // implicit `children` prop has been removed in @types/react^18.0.0\n children?: React.ReactNode;\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') {\n return node;\n }\n return findNodeHandleRN(node);\n}\n\nlet scheduledFlushOperationsId: ReturnType<\n typeof requestAnimationFrame\n> | null = null;\n\nexport function scheduleFlushOperations() {\n if (scheduledFlushOperationsId === null) {\n scheduledFlushOperationsId = requestAnimationFrame(() => {\n RNGestureHandlerModule.flushOperations();\n\n scheduledFlushOperationsId = null;\n });\n }\n}\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 _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { StyleSheet, Text, Platform } from 'react-native';\nimport { black } from '../styles/themes/v2/colors';\nlet MaterialCommunityIcons;\ntry {\n // Optionally require vector-icons\n MaterialCommunityIcons = require('react-native-vector-icons/MaterialCommunityIcons').default;\n} catch (e) {\n let isErrorLogged = false;\n\n // Fallback component for icons\n MaterialCommunityIcons = _ref => {\n let {\n name,\n color,\n size,\n ...rest\n } = _ref;\n /* eslint-disable no-console */\n if (!isErrorLogged) {\n if (!/(Cannot find module|Module not found|Cannot resolve module)/.test(e.message)) {\n console.error(e);\n }\n console.warn(`Tried to use the icon '${name}' in a component from 'react-native-paper', but 'react-native-vector-icons/MaterialCommunityIcons' could not be loaded.`, `To remove this warning, try installing 'react-native-vector-icons' or use another method to specify icon: https://callstack.github.io/react-native-paper/docs/guides/icons`);\n isErrorLogged = true;\n }\n return /*#__PURE__*/React.createElement(Text, _extends({}, rest, {\n style: [styles.icon, {\n color,\n fontSize: size\n }]\n // @ts-expect-error: Text doesn't support this, but it seems to affect TouchableNativeFeedback\n ,\n pointerEvents: \"none\",\n selectable: false\n }), \"\\u25A1\");\n };\n}\nexport const accessibilityProps = Platform.OS === 'web' ? {\n role: 'img',\n focusable: false\n} : {\n accessibilityElementsHidden: true,\n importantForAccessibility: 'no-hide-descendants'\n};\nconst defaultIcon = _ref2 => {\n let {\n name,\n color = black,\n size,\n direction,\n allowFontScaling,\n testID\n } = _ref2;\n return /*#__PURE__*/React.createElement(MaterialCommunityIcons, _extends({\n allowFontScaling: allowFontScaling,\n name: name,\n color: color,\n size: size,\n style: [{\n transform: [{\n scaleX: direction === 'rtl' ? -1 : 1\n }],\n lineHeight: size\n }, styles.icon],\n pointerEvents: \"none\",\n selectable: false,\n testID: testID\n }, accessibilityProps));\n};\nconst styles = StyleSheet.create({\n // eslint-disable-next-line react-native/no-color-literals\n icon: {\n backgroundColor: 'transparent'\n }\n});\nexport default defaultIcon;\n//# sourceMappingURL=MaterialCommunityIcon.js.map","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 { 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 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) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 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(animatedStyle => animatedStyle.update());\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\nclass AnimatedValue extends AnimatedWithChildren {\n constructor(value) {\n super();\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 }\n\n __detach() {\n if (this.__isNative) {\n NativeAnimatedAPI.getValue(this.__getNativeTag(), value => {\n this._value = value;\n });\n }\n\n this.stopAnimation();\n\n super.__detach();\n }\n\n __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 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 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 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 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 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 resetAnimation(callback) {\n this.stopAnimation(callback);\n this._value = this._startingValue;\n }\n\n _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 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 animate(animation, callback) {\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, 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 this._updateValue(value, true\n /* flush */\n );\n }, result => {\n this._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 stopTracking() {\n this._tracking && this._tracking.__detach();\n this._tracking = null;\n }\n /**\n * Typically only used internally.\n */\n\n\n track(tracking) {\n this.stopTracking();\n this._tracking = tracking;\n }\n\n _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 super.__callListeners(this.__getValue());\n }\n\n __getNativeConfig() {\n return {\n type: 'value',\n value: this._value,\n offset: this._offset\n };\n }\n\n}\n\nexport default AnimatedValue;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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};\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};","/* 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 const { prefix: paPrefix, suffix: paSuffix, strippedValue: paStrippedValue, } = recognizePrefixSuffix(previousAnimation.current);\n previousAnimation.current = paStrippedValue;\n previousAnimation.__prefix = paPrefix;\n previousAnimation.__suffix = paSuffix;\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","/**\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","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { Animated, Platform, StyleSheet } from 'react-native';\nimport { useInternalTheme } from '../core/theming';\nimport overlay, { isAnimatedValue } from '../styles/overlay';\nimport shadow from '../styles/shadow';\nimport { forwardRef } from '../utils/forwardRef';\nimport { splitStyles } from '../utils/splitStyles';\nconst MD2Surface = forwardRef((_ref, ref) => {\n let {\n style,\n theme: overrideTheme,\n ...rest\n } = _ref;\n const {\n elevation = 4\n } = StyleSheet.flatten(style) || {};\n const {\n dark: isDarkTheme,\n mode,\n colors\n } = useInternalTheme(overrideTheme);\n return /*#__PURE__*/React.createElement(Animated.View, _extends({\n ref: ref\n }, rest, {\n style: [{\n backgroundColor: isDarkTheme && mode === 'adaptive' ? overlay(elevation, colors === null || colors === void 0 ? void 0 : colors.surface) : colors === null || colors === void 0 ? void 0 : colors.surface\n }, elevation ? shadow(elevation) : null, style]\n }));\n});\nconst outerLayerStyleProperties = ['position', 'alignSelf', 'top', 'right', 'bottom', 'left', 'start', 'end', 'flex', 'flexShrink', 'flexGrow', 'width', 'height', 'transform', 'opacity'];\nconst shadowColor = '#000';\nconst iOSShadowOutputRanges = [{\n shadowOpacity: 0.15,\n height: [0, 1, 2, 4, 6, 8],\n shadowRadius: [0, 3, 6, 8, 10, 12]\n}, {\n shadowOpacity: 0.3,\n height: [0, 1, 1, 1, 2, 4],\n shadowRadius: [0, 1, 2, 3, 3, 4]\n}];\nconst inputRange = [0, 1, 2, 3, 4, 5];\nfunction getStyleForShadowLayer(elevation, layer) {\n if (isAnimatedValue(elevation)) {\n return {\n shadowColor,\n shadowOpacity: elevation.interpolate({\n inputRange: [0, 1],\n outputRange: [0, iOSShadowOutputRanges[layer].shadowOpacity],\n extrapolate: 'clamp'\n }),\n shadowOffset: {\n width: 0,\n height: elevation.interpolate({\n inputRange,\n outputRange: iOSShadowOutputRanges[layer].height\n })\n },\n shadowRadius: elevation.interpolate({\n inputRange,\n outputRange: iOSShadowOutputRanges[layer].shadowRadius\n })\n };\n }\n return {\n shadowColor,\n shadowOpacity: elevation ? iOSShadowOutputRanges[layer].shadowOpacity : 0,\n shadowOffset: {\n width: 0,\n height: iOSShadowOutputRanges[layer].height[elevation]\n },\n shadowRadius: iOSShadowOutputRanges[layer].shadowRadius[elevation]\n };\n}\nconst SurfaceIOS = forwardRef((_ref2, ref) => {\n let {\n elevation,\n style,\n backgroundColor,\n testID,\n children,\n mode = 'elevated',\n ...props\n } = _ref2;\n const [outerLayerViewStyles, innerLayerViewStyles] = React.useMemo(() => {\n const flattenedStyles = StyleSheet.flatten(style) || {};\n const [filteredStyles, outerLayerStyles, borderRadiusStyles] = splitStyles(flattenedStyles, style => outerLayerStyleProperties.includes(style) || style.startsWith('margin'), style => style.startsWith('border') && style.endsWith('Radius'));\n if (process.env.NODE_ENV !== 'production' && filteredStyles.overflow === 'hidden' && elevation !== 0) {\n console.warn('When setting overflow to hidden on Surface the shadow will not be displayed correctly. Wrap the content of your component in a separate View with the overflow style.');\n }\n const bgColor = flattenedStyles.backgroundColor || backgroundColor;\n const isElevated = mode === 'elevated';\n const outerLayerViewStyles = {\n ...(isElevated && getStyleForShadowLayer(elevation, 0)),\n ...outerLayerStyles,\n ...borderRadiusStyles,\n backgroundColor: bgColor\n };\n const innerLayerViewStyles = {\n ...(isElevated && getStyleForShadowLayer(elevation, 1)),\n ...filteredStyles,\n ...borderRadiusStyles,\n flex: flattenedStyles.height ? 1 : undefined,\n backgroundColor: bgColor\n };\n return [outerLayerViewStyles, innerLayerViewStyles];\n }, [style, elevation, backgroundColor, mode]);\n return /*#__PURE__*/React.createElement(Animated.View, {\n ref: ref,\n style: outerLayerViewStyles,\n testID: `${testID}-outer-layer`\n }, /*#__PURE__*/React.createElement(Animated.View, _extends({}, props, {\n style: innerLayerViewStyles,\n testID: testID\n }), children));\n});\n\n/**\n * Surface is a basic container that can give depth to an element with elevation shadow.\n * On dark theme with `adaptive` mode, surface is constructed by also placing a semi-transparent white overlay over a component surface.\n * See [Dark Theme](https://callstack.github.io/react-native-paper/docs/guides/theming#dark-theme) for more information.\n * Overlay and shadow can be applied by specifying the `elevation` property both on Android and iOS.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Surface, Text } from 'react-native-paper';\n * import { StyleSheet } from 'react-native';\n *\n * const MyComponent = () => (\n * \n * Surface\n * \n * );\n *\n * export default MyComponent;\n *\n * const styles = StyleSheet.create({\n * surface: {\n * padding: 8,\n * height: 80,\n * width: 80,\n * alignItems: 'center',\n * justifyContent: 'center',\n * },\n * });\n * ```\n */\nconst Surface = forwardRef((_ref3, ref) => {\n let {\n elevation = 1,\n children,\n theme: overridenTheme,\n style,\n testID = 'surface',\n mode = 'elevated',\n ...props\n } = _ref3;\n const theme = useInternalTheme(overridenTheme);\n if (!theme.isV3) return /*#__PURE__*/React.createElement(MD2Surface, _extends({}, props, {\n theme: theme,\n style: style,\n ref: ref\n }), children);\n const {\n colors\n } = theme;\n const inputRange = [0, 1, 2, 3, 4, 5];\n const backgroundColor = (_colors$elevation2 => {\n if (isAnimatedValue(elevation)) {\n return elevation.interpolate({\n inputRange,\n outputRange: inputRange.map(elevation => {\n var _colors$elevation;\n return (_colors$elevation = colors.elevation) === null || _colors$elevation === void 0 ? void 0 : _colors$elevation[`level${elevation}`];\n })\n });\n }\n return (_colors$elevation2 = colors.elevation) === null || _colors$elevation2 === void 0 ? void 0 : _colors$elevation2[`level${elevation}`];\n })();\n const isElevated = mode === 'elevated';\n if (Platform.OS === 'web') {\n const {\n pointerEvents = 'auto'\n } = props;\n return /*#__PURE__*/React.createElement(Animated.View, _extends({}, props, {\n pointerEvents: pointerEvents,\n ref: ref,\n testID: testID,\n style: [{\n backgroundColor\n }, elevation && isElevated ? shadow(elevation, theme.isV3) : null, style]\n }), children);\n }\n if (Platform.OS === 'android') {\n const elevationLevel = [0, 3, 6, 9, 12, 15];\n const getElevationAndroid = () => {\n if (isAnimatedValue(elevation)) {\n return elevation.interpolate({\n inputRange,\n outputRange: elevationLevel\n });\n }\n return elevationLevel[elevation];\n };\n const {\n margin,\n padding,\n transform,\n borderRadius\n } = StyleSheet.flatten(style) || {};\n const outerLayerStyles = {\n margin,\n padding,\n transform,\n borderRadius\n };\n const sharedStyle = [{\n backgroundColor\n }, style];\n return /*#__PURE__*/React.createElement(Animated.View, _extends({}, props, {\n testID: testID,\n ref: ref,\n style: [{\n backgroundColor,\n transform\n }, outerLayerStyles, sharedStyle, isElevated && {\n elevation: getElevationAndroid()\n }]\n }), children);\n }\n return /*#__PURE__*/React.createElement(SurfaceIOS, _extends({}, props, {\n ref: ref,\n elevation: elevation,\n backgroundColor: backgroundColor,\n style: style,\n testID: testID,\n mode: mode\n }), children);\n});\nexport default Surface;\n//# sourceMappingURL=Surface.js.map","import * as React from 'react';\n/**\n * TypeScript generated a large union of props from `ViewProps` in\n * `d.ts` files when using `React.forwardRef`. To prevent this\n * `ForwardRefComponent` was created and exported. Use this\n * `forwardRef` instead of `React.forwardRef` so you don't have to\n * import `ForwardRefComponent`.\n * More info: https://github.com/callstack/react-native-paper/pull/3603\n */\nexport const forwardRef = React.forwardRef;\n//# sourceMappingURL=forwardRef.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = __importStar(require(\"react\"));\nvar useIsomorphicLayoutEffect_1 = __importDefault(require(\"./useIsomorphicLayoutEffect\"));\n/**\n * React hook which returns the latest callback without changing the reference.\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction useLatestCallback(callback) {\n var ref = React.useRef(callback);\n var latestCallback = React.useRef(function latestCallback() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return ref.current.apply(this, args);\n }).current;\n (0, useIsomorphicLayoutEffect_1.default)(function () {\n ref.current = callback;\n });\n return latestCallback;\n}\nexports.default = useLatestCallback;\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","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 = (prefix, key) => {\n return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n};\n\nObject.keys(unitlessNumbers).forEach(prop => {\n prefixes.forEach(prefix => {\n unitlessNumbers[prefixKey(prefix, prop)] = unitlessNumbers[prop];\n });\n});\nexport default unitlessNumbers;","/* eslint-disable */\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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) Meta Platforms, Inc. and affiliates.\n *\n * This 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 = 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,\n y,\n width,\n height,\n top,\n left\n };\n};\n\nvar measureLayout = (node, relativeToNativeNode, callback) => {\n var relativeNode = relativeToNativeNode || node && node.parentNode;\n\n if (node && relativeNode) {\n setTimeout(() => {\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 elementsToIgnore = {\n A: true,\n BODY: true,\n INPUT: true,\n SELECT: true,\n TEXTAREA: true\n};\nvar UIManager = {\n blur(node) {\n try {\n node.blur();\n } catch (err) {}\n },\n\n focus(node) {\n try {\n var name = node.nodeName; // A tabIndex of -1 allows element to be programmatically focused but\n // prevents keyboard focus. We don't want to set the tabindex value on\n // elements that should not prevent keyboard focus.\n\n if (node.getAttribute('tabIndex') == null && node.isContentEditable !== true && elementsToIgnore[name] == null) {\n node.setAttribute('tabIndex', '-1');\n }\n\n node.focus();\n } catch (err) {}\n },\n\n measure(node, callback) {\n measureLayout(node, null, callback);\n },\n\n measureInWindow(node, callback) {\n if (node) {\n setTimeout(() => {\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\n measureLayout(node, relativeToNativeNode, onFail, onSuccess) {\n measureLayout(node, relativeToNativeNode, onSuccess);\n },\n\n 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\n configureNextLayoutAnimation(config, onAnimationDidEnd) {\n onAnimationDidEnd();\n },\n\n // mocks\n setLayoutAnimationEnabledExperimental() {}\n\n};\nexport default UIManager;","import { BackHandler, Platform } from 'react-native';\n\nexport const isSearchBarAvailableForCurrentPlatform = [\n 'ios',\n 'android',\n].includes(Platform.OS);\n\nexport function executeNativeBackPress() {\n // This function invokes the native back press event\n BackHandler.exitApp();\n return true;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"activeOpacity\", \"delayPressIn\", \"delayPressOut\", \"delayLongPress\", \"disabled\", \"focusable\", \"onLongPress\", \"onPress\", \"onPressIn\", \"onPressOut\", \"rejectResponderTermination\", \"style\"];\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, _excluded);\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((value, duration) => {\n setOpacityOverride(value);\n setDuration(duration ? duration / 1000 + \"s\" : '0s');\n }, [setOpacityOverride, setDuration]);\n var setOpacityActive = useCallback(duration => {\n setOpacityTo(activeOpacity !== null && activeOpacity !== void 0 ? activeOpacity : 0.2, duration);\n }, [activeOpacity, setOpacityTo]);\n var setOpacityInactive = useCallback(duration => {\n setOpacityTo(null, duration);\n }, [setOpacityTo]);\n var pressConfig = useMemo(() => ({\n cancelable: !rejectResponderTermination,\n disabled,\n delayLongPress,\n delayPressStart: delayPressIn,\n delayPressEnd: delayPressOut,\n onLongPress,\n onPress,\n\n 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\n 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 pointerEvents: disabled ? 'none' : undefined,\n ref: setRef,\n style: [styles.root, !disabled && styles.actionable, style, opacityOverride != null && {\n opacity: opacityOverride\n }, {\n transitionDuration: duration\n }]\n }));\n}\n\nvar styles = StyleSheet.create({\n root: {\n transitionProperty: 'opacity',\n transitionDuration: '0.15s',\n userSelect: 'none'\n },\n actionable: {\n cursor: 'pointer',\n touchAction: 'manipulation'\n }\n});\nvar MemoedTouchableOpacity = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(TouchableOpacity));\nMemoedTouchableOpacity.displayName = 'TouchableOpacity';\nexport default MemoedTouchableOpacity;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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() {\n return {\n remove: () => {}\n };\n },\n\n dismiss() {\n dismissKeyboard();\n },\n\n removeAllListeners() {},\n\n removeListener() {}\n\n};\nexport default Keyboard;","/**\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\n};\nexport default NativeModules;","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) 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';\nimport { LocaleProvider } from '../../modules/useLocale';\n\nvar createElement = (component, props, options) => {\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, options);\n var element = /*#__PURE__*/React.createElement(Component, domProps); // Update locale context if element's writing direction prop changes\n\n var elementWithLocaleProvider = domProps.dir ? /*#__PURE__*/React.createElement(LocaleProvider, {\n children: element,\n direction: domProps.dir,\n locale: domProps.lang\n }) : element;\n return elementWithLocaleProvider;\n};\n\nexport default createElement;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 _createForOfIteratorHelperLoose from \"@babel/runtime/helpers/createForOfIteratorHelperLoose\";\nimport AnimatedNode from './AnimatedNode';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\n\nclass AnimatedWithChildren extends AnimatedNode {\n constructor() {\n super();\n this._children = [];\n }\n\n __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 super.__makeNative();\n }\n\n __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 __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 __getChildren() {\n return this._children;\n }\n\n __callListeners(value) {\n super.__callListeners(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}\n\nexport default AnimatedWithChildren;","/**\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 '../canUseDom';\n\nvar _requestIdleCallback = function _requestIdleCallback(cb, options) {\n return setTimeout(() => {\n var start = Date.now();\n cb({\n didTimeout: false,\n\n timeRemaining() {\n return Math.max(0, 50 - (Date.now() - start));\n }\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) Meta Platforms, Inc. and affiliates.\n *\n * This source 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(task) {\n var handle;\n var promise = new Promise(resolve => {\n handle = requestIdleCallback(() => {\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: () => {\n cancelIdleCallback(handle);\n }\n };\n },\n\n /**\n * Notify manager that an interaction has started.\n */\n createInteractionHandle() {\n return 1;\n },\n\n /**\n * Notify manager that an interaction has completed.\n */\n clearInteractionHandle(handle) {\n invariant(!!handle, 'Must provide a handle to clear.');\n },\n\n addListener: () => {}\n};\nexport default InteractionManager;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\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 = t => t;\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 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(() => []);\n outputRange.forEach(value => {\n /* $FlowFixMe(>=0.18.0): `value.match()` can return `null`. Need to guard\n * against this possibility.\n */\n value.match(stringShapeRegex).forEach((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((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 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, () => {\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\nclass AnimatedInterpolation extends AnimatedWithChildren {\n // Export for testing.\n constructor(parent, config) {\n super();\n this._parent = parent;\n this._config = config;\n this._interpolation = createInterpolation(config);\n }\n\n __makeNative() {\n this._parent.__makeNative();\n\n super.__makeNative();\n }\n\n __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 interpolate(config) {\n return new AnimatedInterpolation(this, config);\n }\n\n __attach() {\n this._parent.__addChild(this);\n }\n\n __detach() {\n this._parent.__removeChild(this);\n\n super.__detach();\n }\n\n __transformDataType(range) {\n return range.map(NativeAnimatedHelper.transformDataType);\n }\n\n __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}\n\nAnimatedInterpolation.__createInterpolation = createInterpolation;\nexport default AnimatedInterpolation;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\nvar setPrototypeOf = require(\"./setPrototypeOf.js\");\nvar isNativeFunction = require(\"./isNativeFunction.js\");\nvar construct = require(\"./construct.js\");\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\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}\nmodule.exports = _wrapNativeSuper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","export * from './ReactNativeSVG';\n\nexport { default } from './ReactNativeSVG';\n","import { Platform } from 'react-native';\nconst ref = {\n palette: {\n primary100: 'rgba(255, 255, 255, 1)',\n primary99: 'rgba(255, 251, 254, 1)',\n primary95: 'rgba(246, 237, 255, 1)',\n primary90: 'rgba(234, 221, 255, 1)',\n primary80: 'rgba(208, 188, 255, 1)',\n primary70: 'rgba(182, 157, 248, 1)',\n primary60: 'rgba(154, 130, 219, 1)',\n primary50: 'rgba(127, 103, 190, 1)',\n primary40: 'rgba(103, 80, 164, 1)',\n primary30: 'rgba(79, 55, 139, 1)',\n primary20: 'rgba(56, 30, 114, 1)',\n primary10: 'rgba(33, 0, 93, 1)',\n primary0: 'rgba(0, 0, 0, 1)',\n secondary100: 'rgba(255, 255, 255, 1)',\n secondary99: 'rgba(255, 251, 254, 1)',\n secondary95: 'rgba(246, 237, 255, 1)',\n secondary90: 'rgba(232, 222, 248, 1)',\n secondary80: 'rgba(204, 194, 220, 1)',\n secondary70: 'rgba(176, 167, 192, 1)',\n secondary60: 'rgba(149, 141, 165, 1)',\n secondary50: 'rgba(122, 114, 137, 1)',\n secondary40: 'rgba(98, 91, 113, 1)',\n secondary30: 'rgba(74, 68, 88, 1)',\n secondary20: 'rgba(51, 45, 65, 1)',\n secondary10: 'rgba(29, 25, 43, 1)',\n secondary0: 'rgba(0, 0, 0, 1)',\n tertiary100: 'rgba(255, 255, 255, 1)',\n tertiary99: 'rgba(255, 251, 250, 1)',\n tertiary95: 'rgba(255, 236, 241, 1)',\n tertiary90: 'rgba(255, 216, 228, 1)',\n tertiary80: 'rgba(239, 184, 200, 1)',\n tertiary70: 'rgba(210, 157, 172, 1)',\n tertiary60: 'rgba(181, 131, 146, 1)',\n tertiary50: 'rgba(152, 105, 119, 1)',\n tertiary40: 'rgba(125, 82, 96, 1)',\n tertiary30: 'rgba(99, 59, 72, 1)',\n tertiary20: 'rgba(73, 37, 50, 1)',\n tertiary10: 'rgba(49, 17, 29, 1)',\n tertiary0: 'rgba(0, 0, 0, 1)',\n neutral100: 'rgba(255, 255, 255, 1)',\n neutral99: 'rgba(255, 251, 254, 1)',\n neutral95: 'rgba(244, 239, 244, 1)',\n neutral90: 'rgba(230, 225, 229, 1)',\n neutral80: 'rgba(201, 197, 202, 1)',\n neutral70: 'rgba(174, 170, 174, 1)',\n neutral60: 'rgba(147, 144, 148, 1)',\n neutral50: 'rgba(120, 117, 121, 1)',\n neutral40: 'rgba(96, 93, 98, 1)',\n neutral30: 'rgba(72, 70, 73, 1)',\n neutral20: 'rgba(49, 48, 51, 1)',\n neutral10: 'rgba(28, 27, 31, 1)',\n neutral0: 'rgba(0, 0, 0, 1)',\n neutralVariant100: 'rgba(255, 255, 255, 1)',\n neutralVariant99: 'rgba(255, 251, 254, 1)',\n neutralVariant95: 'rgba(245, 238, 250, 1)',\n neutralVariant90: 'rgba(231, 224, 236, 1)',\n neutralVariant80: 'rgba(202, 196, 208, 1)',\n neutralVariant70: 'rgba(174, 169, 180, 1)',\n neutralVariant60: 'rgba(147, 143, 153, 1)',\n neutralVariant50: 'rgba(121, 116, 126, 1)',\n neutralVariant40: 'rgba(96, 93, 102, 1)',\n neutralVariant30: 'rgba(73, 69, 79, 1)',\n neutralVariant20: 'rgba(50, 47, 55, 1)',\n neutralVariant10: 'rgba(29, 26, 34, 1)',\n neutralVariant0: 'rgba(0, 0, 0, 1)',\n error100: 'rgba(255, 255, 255, 1)',\n error99: 'rgba(255, 251, 249, 1)',\n error95: 'rgba(252, 238, 238, 1)',\n error90: 'rgba(249, 222, 220, 1)',\n error80: 'rgba(242, 184, 181, 1)',\n error70: 'rgba(236, 146, 142, 1)',\n error60: 'rgba(228, 105, 98, 1)',\n error50: 'rgba(220, 54, 46, 1)',\n error40: 'rgba(179, 38, 30, 1)',\n error30: 'rgba(140, 29, 24, 1)',\n error20: 'rgba(96, 20, 16, 1)',\n error10: 'rgba(65, 14, 11, 1)',\n error0: 'rgba(0, 0, 0, 1)'\n },\n typeface: {\n brandRegular: Platform.select({\n web: 'Roboto, \"Helvetica Neue\", Helvetica, Arial, sans-serif',\n ios: 'System',\n default: 'sans-serif'\n }),\n weightRegular: '400',\n plainMedium: Platform.select({\n web: 'Roboto, \"Helvetica Neue\", Helvetica, Arial, sans-serif',\n ios: 'System',\n default: 'sans-serif-medium'\n }),\n weightMedium: '500'\n },\n opacity: {\n level1: 0.08,\n level2: 0.12,\n level3: 0.16,\n level4: 0.38\n }\n};\nconst regularType = {\n fontFamily: ref.typeface.brandRegular,\n letterSpacing: 0,\n fontWeight: ref.typeface.weightRegular\n};\nconst mediumType = {\n fontFamily: ref.typeface.plainMedium,\n letterSpacing: 0.15,\n fontWeight: ref.typeface.weightMedium\n};\nexport const typescale = {\n displayLarge: {\n ...regularType,\n lineHeight: 64,\n fontSize: 57\n },\n displayMedium: {\n ...regularType,\n lineHeight: 52,\n fontSize: 45\n },\n displaySmall: {\n ...regularType,\n lineHeight: 44,\n fontSize: 36\n },\n headlineLarge: {\n ...regularType,\n lineHeight: 40,\n fontSize: 32\n },\n headlineMedium: {\n ...regularType,\n lineHeight: 36,\n fontSize: 28\n },\n headlineSmall: {\n ...regularType,\n lineHeight: 32,\n fontSize: 24\n },\n titleLarge: {\n ...regularType,\n lineHeight: 28,\n fontSize: 22\n },\n titleMedium: {\n ...mediumType,\n lineHeight: 24,\n fontSize: 16\n },\n titleSmall: {\n ...mediumType,\n letterSpacing: 0.1,\n lineHeight: 20,\n fontSize: 14\n },\n labelLarge: {\n ...mediumType,\n letterSpacing: 0.1,\n lineHeight: 20,\n fontSize: 14\n },\n labelMedium: {\n ...mediumType,\n letterSpacing: 0.5,\n lineHeight: 16,\n fontSize: 12\n },\n labelSmall: {\n ...mediumType,\n letterSpacing: 0.5,\n lineHeight: 16,\n fontSize: 11\n },\n bodyLarge: {\n ...mediumType,\n fontWeight: ref.typeface.weightRegular,\n fontFamily: ref.typeface.brandRegular,\n lineHeight: 24,\n fontSize: 16\n },\n bodyMedium: {\n ...mediumType,\n fontWeight: ref.typeface.weightRegular,\n fontFamily: ref.typeface.brandRegular,\n letterSpacing: 0.25,\n lineHeight: 20,\n fontSize: 14\n },\n bodySmall: {\n ...mediumType,\n fontWeight: ref.typeface.weightRegular,\n fontFamily: ref.typeface.brandRegular,\n letterSpacing: 0.4,\n lineHeight: 16,\n fontSize: 12\n },\n default: {\n ...regularType\n }\n};\nexport const tokens = {\n md: {\n ref,\n sys: {\n typescale\n }\n }\n};\nexport const MD3Colors = ref.palette;\n//# sourceMappingURL=tokens.js.map","import color from 'color';\nconst getBorderColor = _ref => {\n let {\n theme,\n disabled\n } = _ref;\n if (theme.isV3) {\n if (disabled) {\n return theme.colors.surfaceDisabled;\n }\n return theme.colors.outline;\n }\n return undefined;\n};\nconst getBackgroundColor = _ref2 => {\n let {\n theme,\n isMode,\n disabled,\n selected,\n customContainerColor\n } = _ref2;\n if (theme.isV3) {\n if (disabled) {\n if (isMode('contained') || isMode('contained-tonal')) {\n return theme.colors.surfaceDisabled;\n }\n }\n if (typeof customContainerColor !== 'undefined') {\n return customContainerColor;\n }\n if (isMode('contained')) {\n if (selected) {\n return theme.colors.primary;\n }\n return theme.colors.surfaceVariant;\n }\n if (isMode('contained-tonal')) {\n if (selected) {\n return theme.colors.secondaryContainer;\n }\n return theme.colors.surfaceVariant;\n }\n if (isMode('outlined')) {\n if (selected) {\n return theme.colors.inverseSurface;\n }\n }\n }\n if (typeof customContainerColor !== 'undefined') {\n return customContainerColor;\n }\n return undefined;\n};\nconst getIconColor = _ref3 => {\n let {\n theme,\n isMode,\n disabled,\n selected,\n customIconColor\n } = _ref3;\n if (theme.isV3) {\n if (disabled) {\n return theme.colors.onSurfaceDisabled;\n }\n if (typeof customIconColor !== 'undefined') {\n return customIconColor;\n }\n if (isMode('contained')) {\n if (selected) {\n return theme.colors.onPrimary;\n }\n return theme.colors.primary;\n }\n if (isMode('contained-tonal')) {\n if (selected) {\n return theme.colors.onSecondaryContainer;\n }\n return theme.colors.onSurfaceVariant;\n }\n if (isMode('outlined')) {\n if (selected) {\n return theme.colors.inverseOnSurface;\n }\n return theme.colors.onSurfaceVariant;\n }\n if (selected) {\n return theme.colors.primary;\n }\n return theme.colors.onSurfaceVariant;\n }\n if (typeof customIconColor !== 'undefined') {\n return customIconColor;\n }\n return theme.colors.text;\n};\nconst getRippleColor = _ref4 => {\n let {\n theme,\n iconColor,\n customRippleColor\n } = _ref4;\n if (customRippleColor) {\n return customRippleColor;\n }\n if (theme.isV3) {\n return color(iconColor).alpha(0.12).rgb().string();\n }\n return color(iconColor).alpha(0.32).rgb().string();\n};\nexport const getIconButtonColor = _ref5 => {\n let {\n theme,\n disabled,\n mode,\n selected,\n customIconColor,\n customContainerColor,\n customRippleColor\n } = _ref5;\n const isMode = modeToCompare => {\n return mode === modeToCompare;\n };\n const baseIconColorProps = {\n theme,\n isMode,\n disabled,\n selected\n };\n const iconColor = getIconColor({\n ...baseIconColorProps,\n customIconColor\n });\n return {\n iconColor,\n backgroundColor: getBackgroundColor({\n ...baseIconColorProps,\n customContainerColor\n }),\n rippleColor: getRippleColor({\n theme,\n iconColor,\n customRippleColor\n }),\n borderColor: getBorderColor({\n theme,\n disabled\n })\n };\n};\n//# sourceMappingURL=utils.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { StyleSheet } from 'react-native';\nimport { getIconButtonColor } from './utils';\nimport { useInternalTheme } from '../../core/theming';\nimport { forwardRef } from '../../utils/forwardRef';\nimport ActivityIndicator from '../ActivityIndicator';\nimport CrossFadeIcon from '../CrossFadeIcon';\nimport Icon from '../Icon';\nimport Surface from '../Surface';\nimport TouchableRipple from '../TouchableRipple/TouchableRipple';\nconst PADDING = 8;\n/**\n * An icon button is a button which displays only an icon without a label.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { IconButton, MD3Colors } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * console.log('Pressed')}\n * />\n * );\n *\n * export default MyComponent;\n * ```\n *\n * @extends TouchableRipple props https://callstack.github.io/react-native-paper/docs/components/TouchableRipple\n */\nconst IconButton = forwardRef((_ref, ref) => {\n let {\n icon,\n iconColor: customIconColor,\n containerColor: customContainerColor,\n rippleColor: customRippleColor,\n size = 24,\n accessibilityLabel,\n disabled,\n onPress,\n selected = false,\n animated = false,\n mode,\n style,\n theme: themeOverrides,\n testID = 'icon-button',\n loading = false,\n ...rest\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const {\n isV3\n } = theme;\n const IconComponent = animated ? CrossFadeIcon : Icon;\n const {\n iconColor,\n rippleColor,\n backgroundColor,\n borderColor\n } = getIconButtonColor({\n theme,\n disabled,\n selected,\n mode,\n customIconColor,\n customContainerColor,\n customRippleColor\n });\n const buttonSize = isV3 ? size + 2 * PADDING : size * 1.5;\n const {\n borderWidth = isV3 && mode === 'outlined' && !selected ? 1 : 0,\n borderRadius = buttonSize / 2\n } = StyleSheet.flatten(style) || {};\n const borderStyles = {\n borderWidth,\n borderRadius,\n borderColor\n };\n return /*#__PURE__*/React.createElement(Surface, _extends({\n ref: ref,\n testID: `${testID}-container`,\n style: [{\n backgroundColor,\n width: buttonSize,\n height: buttonSize\n }, styles.container, borderStyles, !isV3 && disabled && styles.disabled, style]\n }, isV3 && {\n elevation: 0\n }), /*#__PURE__*/React.createElement(TouchableRipple, _extends({\n borderless: true,\n centered: true,\n onPress: onPress,\n rippleColor: rippleColor,\n accessibilityLabel: accessibilityLabel,\n style: [styles.touchable, {\n borderRadius\n }]\n // @ts-expect-error We keep old a11y props for backwards compat with old RN versions\n ,\n accessibilityTraits: disabled ? ['button', 'disabled'] : 'button',\n accessibilityComponentType: \"button\",\n accessibilityRole: \"button\",\n accessibilityState: {\n disabled\n },\n disabled: disabled,\n hitSlop: TouchableRipple.supported ? {\n top: 10,\n left: 10,\n bottom: 10,\n right: 10\n } : {\n top: 6,\n left: 6,\n bottom: 6,\n right: 6\n },\n testID: testID\n }, rest), loading ? /*#__PURE__*/React.createElement(ActivityIndicator, {\n size: size,\n color: iconColor\n }) : /*#__PURE__*/React.createElement(IconComponent, {\n color: iconColor,\n source: icon,\n size: size\n })));\n});\nconst styles = StyleSheet.create({\n container: {\n overflow: 'hidden',\n margin: 6,\n elevation: 0\n },\n touchable: {\n flexGrow: 1,\n justifyContent: 'center',\n alignItems: 'center'\n },\n disabled: {\n opacity: 0.32\n }\n});\nexport default IconButton;\n//# sourceMappingURL=IconButton.js.map","/**\n * chroma.js - JavaScript library for color conversions\n *\n * Copyright (c) 2011-2019, Gregor Aisch\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n *\n * 3. The name Gregor Aisch may not be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL GREGOR AISCH OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * -------------------------------------------------------\n *\n * chroma.js includes colors from colorbrewer2.org, which are released under\n * the following license:\n *\n * Copyright (c) 2002 Cynthia Brewer, Mark Harrower,\n * and The Pennsylvania State University.\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 * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,\n * either express or implied. See the License for the specific\n * language governing permissions and limitations under the License.\n *\n * ------------------------------------------------------\n *\n * Named colors are taken from X11 Color Names.\n * http://www.w3.org/TR/css3-color/#svg-color\n *\n * @preserve\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.chroma = factory());\n})(this, (function () { 'use strict';\n\n var limit$2 = function (x, min, max) {\n if ( min === void 0 ) min=0;\n if ( max === void 0 ) max=1;\n\n return x < min ? min : x > max ? max : x;\n };\n\n var limit$1 = limit$2;\n\n var clip_rgb$3 = function (rgb) {\n rgb._clipped = false;\n rgb._unclipped = rgb.slice(0);\n for (var i=0; i<=3; i++) {\n if (i < 3) {\n if (rgb[i] < 0 || rgb[i] > 255) { rgb._clipped = true; }\n rgb[i] = limit$1(rgb[i], 0, 255);\n } else if (i === 3) {\n rgb[i] = limit$1(rgb[i], 0, 1);\n }\n }\n return rgb;\n };\n\n // ported from jQuery's $.type\n var classToType = {};\n for (var i$1 = 0, list$1 = ['Boolean', 'Number', 'String', 'Function', 'Array', 'Date', 'RegExp', 'Undefined', 'Null']; i$1 < list$1.length; i$1 += 1) {\n var name = list$1[i$1];\n\n classToType[(\"[object \" + name + \"]\")] = name.toLowerCase();\n }\n var type$p = function(obj) {\n return classToType[Object.prototype.toString.call(obj)] || \"object\";\n };\n\n var type$o = type$p;\n\n var unpack$B = function (args, keyOrder) {\n if ( keyOrder === void 0 ) keyOrder=null;\n\n \t// if called with more than 3 arguments, we return the arguments\n if (args.length >= 3) { return Array.prototype.slice.call(args); }\n // with less than 3 args we check if first arg is object\n // and use the keyOrder string to extract and sort properties\n \tif (type$o(args[0]) == 'object' && keyOrder) {\n \t\treturn keyOrder.split('')\n \t\t\t.filter(function (k) { return args[0][k] !== undefined; })\n \t\t\t.map(function (k) { return args[0][k]; });\n \t}\n \t// otherwise we just return the first argument\n \t// (which we suppose is an array of args)\n return args[0];\n };\n\n var type$n = type$p;\n\n var last$4 = function (args) {\n if (args.length < 2) { return null; }\n var l = args.length-1;\n if (type$n(args[l]) == 'string') { return args[l].toLowerCase(); }\n return null;\n };\n\n var PI$2 = Math.PI;\n\n var utils = {\n \tclip_rgb: clip_rgb$3,\n \tlimit: limit$2,\n \ttype: type$p,\n \tunpack: unpack$B,\n \tlast: last$4,\n \tPI: PI$2,\n \tTWOPI: PI$2*2,\n \tPITHIRD: PI$2/3,\n \tDEG2RAD: PI$2 / 180,\n \tRAD2DEG: 180 / PI$2\n };\n\n var input$h = {\n \tformat: {},\n \tautodetect: []\n };\n\n var last$3 = utils.last;\n var clip_rgb$2 = utils.clip_rgb;\n var type$m = utils.type;\n var _input = input$h;\n\n var Color$D = function Color() {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var me = this;\n if (type$m(args[0]) === 'object' &&\n args[0].constructor &&\n args[0].constructor === this.constructor) {\n // the argument is already a Color instance\n return args[0];\n }\n\n // last argument could be the mode\n var mode = last$3(args);\n var autodetect = false;\n\n if (!mode) {\n autodetect = true;\n if (!_input.sorted) {\n _input.autodetect = _input.autodetect.sort(function (a,b) { return b.p - a.p; });\n _input.sorted = true;\n }\n // auto-detect format\n for (var i = 0, list = _input.autodetect; i < list.length; i += 1) {\n var chk = list[i];\n\n mode = chk.test.apply(chk, args);\n if (mode) { break; }\n }\n }\n\n if (_input.format[mode]) {\n var rgb = _input.format[mode].apply(null, autodetect ? args : args.slice(0,-1));\n me._rgb = clip_rgb$2(rgb);\n } else {\n throw new Error('unknown format: '+args);\n }\n\n // add alpha channel\n if (me._rgb.length === 3) { me._rgb.push(1); }\n };\n\n Color$D.prototype.toString = function toString () {\n if (type$m(this.hex) == 'function') { return this.hex(); }\n return (\"[\" + (this._rgb.join(',')) + \"]\");\n };\n\n var Color_1 = Color$D;\n\n var chroma$k = function () {\n \tvar args = [], len = arguments.length;\n \twhile ( len-- ) args[ len ] = arguments[ len ];\n\n \treturn new (Function.prototype.bind.apply( chroma$k.Color, [ null ].concat( args) ));\n };\n\n chroma$k.Color = Color_1;\n chroma$k.version = '2.4.2';\n\n var chroma_1 = chroma$k;\n\n var unpack$A = utils.unpack;\n var max$2 = Math.max;\n\n var rgb2cmyk$1 = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var ref = unpack$A(args, 'rgb');\n var r = ref[0];\n var g = ref[1];\n var b = ref[2];\n r = r / 255;\n g = g / 255;\n b = b / 255;\n var k = 1 - max$2(r,max$2(g,b));\n var f = k < 1 ? 1 / (1-k) : 0;\n var c = (1-r-k) * f;\n var m = (1-g-k) * f;\n var y = (1-b-k) * f;\n return [c,m,y,k];\n };\n\n var rgb2cmyk_1 = rgb2cmyk$1;\n\n var unpack$z = utils.unpack;\n\n var cmyk2rgb = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n args = unpack$z(args, 'cmyk');\n var c = args[0];\n var m = args[1];\n var y = args[2];\n var k = args[3];\n var alpha = args.length > 4 ? args[4] : 1;\n if (k === 1) { return [0,0,0,alpha]; }\n return [\n c >= 1 ? 0 : 255 * (1-c) * (1-k), // r\n m >= 1 ? 0 : 255 * (1-m) * (1-k), // g\n y >= 1 ? 0 : 255 * (1-y) * (1-k), // b\n alpha\n ];\n };\n\n var cmyk2rgb_1 = cmyk2rgb;\n\n var chroma$j = chroma_1;\n var Color$C = Color_1;\n var input$g = input$h;\n var unpack$y = utils.unpack;\n var type$l = utils.type;\n\n var rgb2cmyk = rgb2cmyk_1;\n\n Color$C.prototype.cmyk = function() {\n return rgb2cmyk(this._rgb);\n };\n\n chroma$j.cmyk = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return new (Function.prototype.bind.apply( Color$C, [ null ].concat( args, ['cmyk']) ));\n };\n\n input$g.format.cmyk = cmyk2rgb_1;\n\n input$g.autodetect.push({\n p: 2,\n test: function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n args = unpack$y(args, 'cmyk');\n if (type$l(args) === 'array' && args.length === 4) {\n return 'cmyk';\n }\n }\n });\n\n var unpack$x = utils.unpack;\n var last$2 = utils.last;\n var rnd = function (a) { return Math.round(a*100)/100; };\n\n /*\n * supported arguments:\n * - hsl2css(h,s,l)\n * - hsl2css(h,s,l,a)\n * - hsl2css([h,s,l], mode)\n * - hsl2css([h,s,l,a], mode)\n * - hsl2css({h,s,l,a}, mode)\n */\n var hsl2css$1 = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var hsla = unpack$x(args, 'hsla');\n var mode = last$2(args) || 'lsa';\n hsla[0] = rnd(hsla[0] || 0);\n hsla[1] = rnd(hsla[1]*100) + '%';\n hsla[2] = rnd(hsla[2]*100) + '%';\n if (mode === 'hsla' || (hsla.length > 3 && hsla[3]<1)) {\n hsla[3] = hsla.length > 3 ? hsla[3] : 1;\n mode = 'hsla';\n } else {\n hsla.length = 3;\n }\n return (mode + \"(\" + (hsla.join(',')) + \")\");\n };\n\n var hsl2css_1 = hsl2css$1;\n\n var unpack$w = utils.unpack;\n\n /*\n * supported arguments:\n * - rgb2hsl(r,g,b)\n * - rgb2hsl(r,g,b,a)\n * - rgb2hsl([r,g,b])\n * - rgb2hsl([r,g,b,a])\n * - rgb2hsl({r,g,b,a})\n */\n var rgb2hsl$3 = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n args = unpack$w(args, 'rgba');\n var r = args[0];\n var g = args[1];\n var b = args[2];\n\n r /= 255;\n g /= 255;\n b /= 255;\n\n var min = Math.min(r, g, b);\n var max = Math.max(r, g, b);\n\n var l = (max + min) / 2;\n var s, h;\n\n if (max === min){\n s = 0;\n h = Number.NaN;\n } else {\n s = l < 0.5 ? (max - min) / (max + min) : (max - min) / (2 - max - min);\n }\n\n if (r == max) { h = (g - b) / (max - min); }\n else if (g == max) { h = 2 + (b - r) / (max - min); }\n else if (b == max) { h = 4 + (r - g) / (max - min); }\n\n h *= 60;\n if (h < 0) { h += 360; }\n if (args.length>3 && args[3]!==undefined) { return [h,s,l,args[3]]; }\n return [h,s,l];\n };\n\n var rgb2hsl_1 = rgb2hsl$3;\n\n var unpack$v = utils.unpack;\n var last$1 = utils.last;\n var hsl2css = hsl2css_1;\n var rgb2hsl$2 = rgb2hsl_1;\n var round$6 = Math.round;\n\n /*\n * supported arguments:\n * - rgb2css(r,g,b)\n * - rgb2css(r,g,b,a)\n * - rgb2css([r,g,b], mode)\n * - rgb2css([r,g,b,a], mode)\n * - rgb2css({r,g,b,a}, mode)\n */\n var rgb2css$1 = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var rgba = unpack$v(args, 'rgba');\n var mode = last$1(args) || 'rgb';\n if (mode.substr(0,3) == 'hsl') {\n return hsl2css(rgb2hsl$2(rgba), mode);\n }\n rgba[0] = round$6(rgba[0]);\n rgba[1] = round$6(rgba[1]);\n rgba[2] = round$6(rgba[2]);\n if (mode === 'rgba' || (rgba.length > 3 && rgba[3]<1)) {\n rgba[3] = rgba.length > 3 ? rgba[3] : 1;\n mode = 'rgba';\n }\n return (mode + \"(\" + (rgba.slice(0,mode==='rgb'?3:4).join(',')) + \")\");\n };\n\n var rgb2css_1 = rgb2css$1;\n\n var unpack$u = utils.unpack;\n var round$5 = Math.round;\n\n var hsl2rgb$1 = function () {\n var assign;\n\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n args = unpack$u(args, 'hsl');\n var h = args[0];\n var s = args[1];\n var l = args[2];\n var r,g,b;\n if (s === 0) {\n r = g = b = l*255;\n } else {\n var t3 = [0,0,0];\n var c = [0,0,0];\n var t2 = l < 0.5 ? l * (1+s) : l+s-l*s;\n var t1 = 2 * l - t2;\n var h_ = h / 360;\n t3[0] = h_ + 1/3;\n t3[1] = h_;\n t3[2] = h_ - 1/3;\n for (var i=0; i<3; i++) {\n if (t3[i] < 0) { t3[i] += 1; }\n if (t3[i] > 1) { t3[i] -= 1; }\n if (6 * t3[i] < 1)\n { c[i] = t1 + (t2 - t1) * 6 * t3[i]; }\n else if (2 * t3[i] < 1)\n { c[i] = t2; }\n else if (3 * t3[i] < 2)\n { c[i] = t1 + (t2 - t1) * ((2 / 3) - t3[i]) * 6; }\n else\n { c[i] = t1; }\n }\n (assign = [round$5(c[0]*255),round$5(c[1]*255),round$5(c[2]*255)], r = assign[0], g = assign[1], b = assign[2]);\n }\n if (args.length > 3) {\n // keep alpha channel\n return [r,g,b,args[3]];\n }\n return [r,g,b,1];\n };\n\n var hsl2rgb_1 = hsl2rgb$1;\n\n var hsl2rgb = hsl2rgb_1;\n var input$f = input$h;\n\n var RE_RGB = /^rgb\\(\\s*(-?\\d+),\\s*(-?\\d+)\\s*,\\s*(-?\\d+)\\s*\\)$/;\n var RE_RGBA = /^rgba\\(\\s*(-?\\d+),\\s*(-?\\d+)\\s*,\\s*(-?\\d+)\\s*,\\s*([01]|[01]?\\.\\d+)\\)$/;\n var RE_RGB_PCT = /^rgb\\(\\s*(-?\\d+(?:\\.\\d+)?)%,\\s*(-?\\d+(?:\\.\\d+)?)%\\s*,\\s*(-?\\d+(?:\\.\\d+)?)%\\s*\\)$/;\n var RE_RGBA_PCT = /^rgba\\(\\s*(-?\\d+(?:\\.\\d+)?)%,\\s*(-?\\d+(?:\\.\\d+)?)%\\s*,\\s*(-?\\d+(?:\\.\\d+)?)%\\s*,\\s*([01]|[01]?\\.\\d+)\\)$/;\n var RE_HSL = /^hsl\\(\\s*(-?\\d+(?:\\.\\d+)?),\\s*(-?\\d+(?:\\.\\d+)?)%\\s*,\\s*(-?\\d+(?:\\.\\d+)?)%\\s*\\)$/;\n var RE_HSLA = /^hsla\\(\\s*(-?\\d+(?:\\.\\d+)?),\\s*(-?\\d+(?:\\.\\d+)?)%\\s*,\\s*(-?\\d+(?:\\.\\d+)?)%\\s*,\\s*([01]|[01]?\\.\\d+)\\)$/;\n\n var round$4 = Math.round;\n\n var css2rgb$1 = function (css) {\n css = css.toLowerCase().trim();\n var m;\n\n if (input$f.format.named) {\n try {\n return input$f.format.named(css);\n } catch (e) {\n // eslint-disable-next-line\n }\n }\n\n // rgb(250,20,0)\n if ((m = css.match(RE_RGB))) {\n var rgb = m.slice(1,4);\n for (var i=0; i<3; i++) {\n rgb[i] = +rgb[i];\n }\n rgb[3] = 1; // default alpha\n return rgb;\n }\n\n // rgba(250,20,0,0.4)\n if ((m = css.match(RE_RGBA))) {\n var rgb$1 = m.slice(1,5);\n for (var i$1=0; i$1<4; i$1++) {\n rgb$1[i$1] = +rgb$1[i$1];\n }\n return rgb$1;\n }\n\n // rgb(100%,0%,0%)\n if ((m = css.match(RE_RGB_PCT))) {\n var rgb$2 = m.slice(1,4);\n for (var i$2=0; i$2<3; i$2++) {\n rgb$2[i$2] = round$4(rgb$2[i$2] * 2.55);\n }\n rgb$2[3] = 1; // default alpha\n return rgb$2;\n }\n\n // rgba(100%,0%,0%,0.4)\n if ((m = css.match(RE_RGBA_PCT))) {\n var rgb$3 = m.slice(1,5);\n for (var i$3=0; i$3<3; i$3++) {\n rgb$3[i$3] = round$4(rgb$3[i$3] * 2.55);\n }\n rgb$3[3] = +rgb$3[3];\n return rgb$3;\n }\n\n // hsl(0,100%,50%)\n if ((m = css.match(RE_HSL))) {\n var hsl = m.slice(1,4);\n hsl[1] *= 0.01;\n hsl[2] *= 0.01;\n var rgb$4 = hsl2rgb(hsl);\n rgb$4[3] = 1;\n return rgb$4;\n }\n\n // hsla(0,100%,50%,0.5)\n if ((m = css.match(RE_HSLA))) {\n var hsl$1 = m.slice(1,4);\n hsl$1[1] *= 0.01;\n hsl$1[2] *= 0.01;\n var rgb$5 = hsl2rgb(hsl$1);\n rgb$5[3] = +m[4]; // default alpha = 1\n return rgb$5;\n }\n };\n\n css2rgb$1.test = function (s) {\n return RE_RGB.test(s) ||\n RE_RGBA.test(s) ||\n RE_RGB_PCT.test(s) ||\n RE_RGBA_PCT.test(s) ||\n RE_HSL.test(s) ||\n RE_HSLA.test(s);\n };\n\n var css2rgb_1 = css2rgb$1;\n\n var chroma$i = chroma_1;\n var Color$B = Color_1;\n var input$e = input$h;\n var type$k = utils.type;\n\n var rgb2css = rgb2css_1;\n var css2rgb = css2rgb_1;\n\n Color$B.prototype.css = function(mode) {\n return rgb2css(this._rgb, mode);\n };\n\n chroma$i.css = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return new (Function.prototype.bind.apply( Color$B, [ null ].concat( args, ['css']) ));\n };\n\n input$e.format.css = css2rgb;\n\n input$e.autodetect.push({\n p: 5,\n test: function (h) {\n var rest = [], len = arguments.length - 1;\n while ( len-- > 0 ) rest[ len ] = arguments[ len + 1 ];\n\n if (!rest.length && type$k(h) === 'string' && css2rgb.test(h)) {\n return 'css';\n }\n }\n });\n\n var Color$A = Color_1;\n var chroma$h = chroma_1;\n var input$d = input$h;\n var unpack$t = utils.unpack;\n\n input$d.format.gl = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var rgb = unpack$t(args, 'rgba');\n rgb[0] *= 255;\n rgb[1] *= 255;\n rgb[2] *= 255;\n return rgb;\n };\n\n chroma$h.gl = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return new (Function.prototype.bind.apply( Color$A, [ null ].concat( args, ['gl']) ));\n };\n\n Color$A.prototype.gl = function() {\n var rgb = this._rgb;\n return [rgb[0]/255, rgb[1]/255, rgb[2]/255, rgb[3]];\n };\n\n var unpack$s = utils.unpack;\n\n var rgb2hcg$1 = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var ref = unpack$s(args, 'rgb');\n var r = ref[0];\n var g = ref[1];\n var b = ref[2];\n var min = Math.min(r, g, b);\n var max = Math.max(r, g, b);\n var delta = max - min;\n var c = delta * 100 / 255;\n var _g = min / (255 - delta) * 100;\n var h;\n if (delta === 0) {\n h = Number.NaN;\n } else {\n if (r === max) { h = (g - b) / delta; }\n if (g === max) { h = 2+(b - r) / delta; }\n if (b === max) { h = 4+(r - g) / delta; }\n h *= 60;\n if (h < 0) { h += 360; }\n }\n return [h, c, _g];\n };\n\n var rgb2hcg_1 = rgb2hcg$1;\n\n var unpack$r = utils.unpack;\n var floor$3 = Math.floor;\n\n /*\n * this is basically just HSV with some minor tweaks\n *\n * hue.. [0..360]\n * chroma .. [0..1]\n * grayness .. [0..1]\n */\n\n var hcg2rgb = function () {\n var assign, assign$1, assign$2, assign$3, assign$4, assign$5;\n\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n args = unpack$r(args, 'hcg');\n var h = args[0];\n var c = args[1];\n var _g = args[2];\n var r,g,b;\n _g = _g * 255;\n var _c = c * 255;\n if (c === 0) {\n r = g = b = _g;\n } else {\n if (h === 360) { h = 0; }\n if (h > 360) { h -= 360; }\n if (h < 0) { h += 360; }\n h /= 60;\n var i = floor$3(h);\n var f = h - i;\n var p = _g * (1 - c);\n var q = p + _c * (1 - f);\n var t = p + _c * f;\n var v = p + _c;\n switch (i) {\n case 0: (assign = [v, t, p], r = assign[0], g = assign[1], b = assign[2]); break\n case 1: (assign$1 = [q, v, p], r = assign$1[0], g = assign$1[1], b = assign$1[2]); break\n case 2: (assign$2 = [p, v, t], r = assign$2[0], g = assign$2[1], b = assign$2[2]); break\n case 3: (assign$3 = [p, q, v], r = assign$3[0], g = assign$3[1], b = assign$3[2]); break\n case 4: (assign$4 = [t, p, v], r = assign$4[0], g = assign$4[1], b = assign$4[2]); break\n case 5: (assign$5 = [v, p, q], r = assign$5[0], g = assign$5[1], b = assign$5[2]); break\n }\n }\n return [r, g, b, args.length > 3 ? args[3] : 1];\n };\n\n var hcg2rgb_1 = hcg2rgb;\n\n var unpack$q = utils.unpack;\n var type$j = utils.type;\n var chroma$g = chroma_1;\n var Color$z = Color_1;\n var input$c = input$h;\n\n var rgb2hcg = rgb2hcg_1;\n\n Color$z.prototype.hcg = function() {\n return rgb2hcg(this._rgb);\n };\n\n chroma$g.hcg = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return new (Function.prototype.bind.apply( Color$z, [ null ].concat( args, ['hcg']) ));\n };\n\n input$c.format.hcg = hcg2rgb_1;\n\n input$c.autodetect.push({\n p: 1,\n test: function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n args = unpack$q(args, 'hcg');\n if (type$j(args) === 'array' && args.length === 3) {\n return 'hcg';\n }\n }\n });\n\n var unpack$p = utils.unpack;\n var last = utils.last;\n var round$3 = Math.round;\n\n var rgb2hex$2 = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var ref = unpack$p(args, 'rgba');\n var r = ref[0];\n var g = ref[1];\n var b = ref[2];\n var a = ref[3];\n var mode = last(args) || 'auto';\n if (a === undefined) { a = 1; }\n if (mode === 'auto') {\n mode = a < 1 ? 'rgba' : 'rgb';\n }\n r = round$3(r);\n g = round$3(g);\n b = round$3(b);\n var u = r << 16 | g << 8 | b;\n var str = \"000000\" + u.toString(16); //#.toUpperCase();\n str = str.substr(str.length - 6);\n var hxa = '0' + round$3(a * 255).toString(16);\n hxa = hxa.substr(hxa.length - 2);\n switch (mode.toLowerCase()) {\n case 'rgba': return (\"#\" + str + hxa);\n case 'argb': return (\"#\" + hxa + str);\n default: return (\"#\" + str);\n }\n };\n\n var rgb2hex_1 = rgb2hex$2;\n\n var RE_HEX = /^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/;\n var RE_HEXA = /^#?([A-Fa-f0-9]{8}|[A-Fa-f0-9]{4})$/;\n\n var hex2rgb$1 = function (hex) {\n if (hex.match(RE_HEX)) {\n // remove optional leading #\n if (hex.length === 4 || hex.length === 7) {\n hex = hex.substr(1);\n }\n // expand short-notation to full six-digit\n if (hex.length === 3) {\n hex = hex.split('');\n hex = hex[0]+hex[0]+hex[1]+hex[1]+hex[2]+hex[2];\n }\n var u = parseInt(hex, 16);\n var r = u >> 16;\n var g = u >> 8 & 0xFF;\n var b = u & 0xFF;\n return [r,g,b,1];\n }\n\n // match rgba hex format, eg #FF000077\n if (hex.match(RE_HEXA)) {\n if (hex.length === 5 || hex.length === 9) {\n // remove optional leading #\n hex = hex.substr(1);\n }\n // expand short-notation to full eight-digit\n if (hex.length === 4) {\n hex = hex.split('');\n hex = hex[0]+hex[0]+hex[1]+hex[1]+hex[2]+hex[2]+hex[3]+hex[3];\n }\n var u$1 = parseInt(hex, 16);\n var r$1 = u$1 >> 24 & 0xFF;\n var g$1 = u$1 >> 16 & 0xFF;\n var b$1 = u$1 >> 8 & 0xFF;\n var a = Math.round((u$1 & 0xFF) / 0xFF * 100) / 100;\n return [r$1,g$1,b$1,a];\n }\n\n // we used to check for css colors here\n // if _input.css? and rgb = _input.css hex\n // return rgb\n\n throw new Error((\"unknown hex color: \" + hex));\n };\n\n var hex2rgb_1 = hex2rgb$1;\n\n var chroma$f = chroma_1;\n var Color$y = Color_1;\n var type$i = utils.type;\n var input$b = input$h;\n\n var rgb2hex$1 = rgb2hex_1;\n\n Color$y.prototype.hex = function(mode) {\n return rgb2hex$1(this._rgb, mode);\n };\n\n chroma$f.hex = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return new (Function.prototype.bind.apply( Color$y, [ null ].concat( args, ['hex']) ));\n };\n\n input$b.format.hex = hex2rgb_1;\n input$b.autodetect.push({\n p: 4,\n test: function (h) {\n var rest = [], len = arguments.length - 1;\n while ( len-- > 0 ) rest[ len ] = arguments[ len + 1 ];\n\n if (!rest.length && type$i(h) === 'string' && [3,4,5,6,7,8,9].indexOf(h.length) >= 0) {\n return 'hex';\n }\n }\n });\n\n var unpack$o = utils.unpack;\n var TWOPI$2 = utils.TWOPI;\n var min$2 = Math.min;\n var sqrt$4 = Math.sqrt;\n var acos = Math.acos;\n\n var rgb2hsi$1 = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n /*\n borrowed from here:\n http://hummer.stanford.edu/museinfo/doc/examples/humdrum/keyscape2/rgb2hsi.cpp\n */\n var ref = unpack$o(args, 'rgb');\n var r = ref[0];\n var g = ref[1];\n var b = ref[2];\n r /= 255;\n g /= 255;\n b /= 255;\n var h;\n var min_ = min$2(r,g,b);\n var i = (r+g+b) / 3;\n var s = i > 0 ? 1 - min_/i : 0;\n if (s === 0) {\n h = NaN;\n } else {\n h = ((r-g)+(r-b)) / 2;\n h /= sqrt$4((r-g)*(r-g) + (r-b)*(g-b));\n h = acos(h);\n if (b > g) {\n h = TWOPI$2 - h;\n }\n h /= TWOPI$2;\n }\n return [h*360,s,i];\n };\n\n var rgb2hsi_1 = rgb2hsi$1;\n\n var unpack$n = utils.unpack;\n var limit = utils.limit;\n var TWOPI$1 = utils.TWOPI;\n var PITHIRD = utils.PITHIRD;\n var cos$4 = Math.cos;\n\n /*\n * hue [0..360]\n * saturation [0..1]\n * intensity [0..1]\n */\n var hsi2rgb = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n /*\n borrowed from here:\n http://hummer.stanford.edu/museinfo/doc/examples/humdrum/keyscape2/hsi2rgb.cpp\n */\n args = unpack$n(args, 'hsi');\n var h = args[0];\n var s = args[1];\n var i = args[2];\n var r,g,b;\n\n if (isNaN(h)) { h = 0; }\n if (isNaN(s)) { s = 0; }\n // normalize hue\n if (h > 360) { h -= 360; }\n if (h < 0) { h += 360; }\n h /= 360;\n if (h < 1/3) {\n b = (1-s)/3;\n r = (1+s*cos$4(TWOPI$1*h)/cos$4(PITHIRD-TWOPI$1*h))/3;\n g = 1 - (b+r);\n } else if (h < 2/3) {\n h -= 1/3;\n r = (1-s)/3;\n g = (1+s*cos$4(TWOPI$1*h)/cos$4(PITHIRD-TWOPI$1*h))/3;\n b = 1 - (r+g);\n } else {\n h -= 2/3;\n g = (1-s)/3;\n b = (1+s*cos$4(TWOPI$1*h)/cos$4(PITHIRD-TWOPI$1*h))/3;\n r = 1 - (g+b);\n }\n r = limit(i*r*3);\n g = limit(i*g*3);\n b = limit(i*b*3);\n return [r*255, g*255, b*255, args.length > 3 ? args[3] : 1];\n };\n\n var hsi2rgb_1 = hsi2rgb;\n\n var unpack$m = utils.unpack;\n var type$h = utils.type;\n var chroma$e = chroma_1;\n var Color$x = Color_1;\n var input$a = input$h;\n\n var rgb2hsi = rgb2hsi_1;\n\n Color$x.prototype.hsi = function() {\n return rgb2hsi(this._rgb);\n };\n\n chroma$e.hsi = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return new (Function.prototype.bind.apply( Color$x, [ null ].concat( args, ['hsi']) ));\n };\n\n input$a.format.hsi = hsi2rgb_1;\n\n input$a.autodetect.push({\n p: 2,\n test: function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n args = unpack$m(args, 'hsi');\n if (type$h(args) === 'array' && args.length === 3) {\n return 'hsi';\n }\n }\n });\n\n var unpack$l = utils.unpack;\n var type$g = utils.type;\n var chroma$d = chroma_1;\n var Color$w = Color_1;\n var input$9 = input$h;\n\n var rgb2hsl$1 = rgb2hsl_1;\n\n Color$w.prototype.hsl = function() {\n return rgb2hsl$1(this._rgb);\n };\n\n chroma$d.hsl = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return new (Function.prototype.bind.apply( Color$w, [ null ].concat( args, ['hsl']) ));\n };\n\n input$9.format.hsl = hsl2rgb_1;\n\n input$9.autodetect.push({\n p: 2,\n test: function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n args = unpack$l(args, 'hsl');\n if (type$g(args) === 'array' && args.length === 3) {\n return 'hsl';\n }\n }\n });\n\n var unpack$k = utils.unpack;\n var min$1 = Math.min;\n var max$1 = Math.max;\n\n /*\n * supported arguments:\n * - rgb2hsv(r,g,b)\n * - rgb2hsv([r,g,b])\n * - rgb2hsv({r,g,b})\n */\n var rgb2hsl = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n args = unpack$k(args, 'rgb');\n var r = args[0];\n var g = args[1];\n var b = args[2];\n var min_ = min$1(r, g, b);\n var max_ = max$1(r, g, b);\n var delta = max_ - min_;\n var h,s,v;\n v = max_ / 255.0;\n if (max_ === 0) {\n h = Number.NaN;\n s = 0;\n } else {\n s = delta / max_;\n if (r === max_) { h = (g - b) / delta; }\n if (g === max_) { h = 2+(b - r) / delta; }\n if (b === max_) { h = 4+(r - g) / delta; }\n h *= 60;\n if (h < 0) { h += 360; }\n }\n return [h, s, v]\n };\n\n var rgb2hsv$1 = rgb2hsl;\n\n var unpack$j = utils.unpack;\n var floor$2 = Math.floor;\n\n var hsv2rgb = function () {\n var assign, assign$1, assign$2, assign$3, assign$4, assign$5;\n\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n args = unpack$j(args, 'hsv');\n var h = args[0];\n var s = args[1];\n var v = args[2];\n var r,g,b;\n v *= 255;\n if (s === 0) {\n r = g = b = v;\n } else {\n if (h === 360) { h = 0; }\n if (h > 360) { h -= 360; }\n if (h < 0) { h += 360; }\n h /= 60;\n\n var i = floor$2(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - s * f);\n var t = v * (1 - s * (1 - f));\n\n switch (i) {\n case 0: (assign = [v, t, p], r = assign[0], g = assign[1], b = assign[2]); break\n case 1: (assign$1 = [q, v, p], r = assign$1[0], g = assign$1[1], b = assign$1[2]); break\n case 2: (assign$2 = [p, v, t], r = assign$2[0], g = assign$2[1], b = assign$2[2]); break\n case 3: (assign$3 = [p, q, v], r = assign$3[0], g = assign$3[1], b = assign$3[2]); break\n case 4: (assign$4 = [t, p, v], r = assign$4[0], g = assign$4[1], b = assign$4[2]); break\n case 5: (assign$5 = [v, p, q], r = assign$5[0], g = assign$5[1], b = assign$5[2]); break\n }\n }\n return [r,g,b,args.length > 3?args[3]:1];\n };\n\n var hsv2rgb_1 = hsv2rgb;\n\n var unpack$i = utils.unpack;\n var type$f = utils.type;\n var chroma$c = chroma_1;\n var Color$v = Color_1;\n var input$8 = input$h;\n\n var rgb2hsv = rgb2hsv$1;\n\n Color$v.prototype.hsv = function() {\n return rgb2hsv(this._rgb);\n };\n\n chroma$c.hsv = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return new (Function.prototype.bind.apply( Color$v, [ null ].concat( args, ['hsv']) ));\n };\n\n input$8.format.hsv = hsv2rgb_1;\n\n input$8.autodetect.push({\n p: 2,\n test: function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n args = unpack$i(args, 'hsv');\n if (type$f(args) === 'array' && args.length === 3) {\n return 'hsv';\n }\n }\n });\n\n var labConstants = {\n // Corresponds roughly to RGB brighter/darker\n Kn: 18,\n\n // D65 standard referent\n Xn: 0.950470,\n Yn: 1,\n Zn: 1.088830,\n\n t0: 0.137931034, // 4 / 29\n t1: 0.206896552, // 6 / 29\n t2: 0.12841855, // 3 * t1 * t1\n t3: 0.008856452, // t1 * t1 * t1\n };\n\n var LAB_CONSTANTS$3 = labConstants;\n var unpack$h = utils.unpack;\n var pow$a = Math.pow;\n\n var rgb2lab$2 = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var ref = unpack$h(args, 'rgb');\n var r = ref[0];\n var g = ref[1];\n var b = ref[2];\n var ref$1 = rgb2xyz(r,g,b);\n var x = ref$1[0];\n var y = ref$1[1];\n var z = ref$1[2];\n var l = 116 * y - 16;\n return [l < 0 ? 0 : l, 500 * (x - y), 200 * (y - z)];\n };\n\n var rgb_xyz = function (r) {\n if ((r /= 255) <= 0.04045) { return r / 12.92; }\n return pow$a((r + 0.055) / 1.055, 2.4);\n };\n\n var xyz_lab = function (t) {\n if (t > LAB_CONSTANTS$3.t3) { return pow$a(t, 1 / 3); }\n return t / LAB_CONSTANTS$3.t2 + LAB_CONSTANTS$3.t0;\n };\n\n var rgb2xyz = function (r,g,b) {\n r = rgb_xyz(r);\n g = rgb_xyz(g);\n b = rgb_xyz(b);\n var x = xyz_lab((0.4124564 * r + 0.3575761 * g + 0.1804375 * b) / LAB_CONSTANTS$3.Xn);\n var y = xyz_lab((0.2126729 * r + 0.7151522 * g + 0.0721750 * b) / LAB_CONSTANTS$3.Yn);\n var z = xyz_lab((0.0193339 * r + 0.1191920 * g + 0.9503041 * b) / LAB_CONSTANTS$3.Zn);\n return [x,y,z];\n };\n\n var rgb2lab_1 = rgb2lab$2;\n\n var LAB_CONSTANTS$2 = labConstants;\n var unpack$g = utils.unpack;\n var pow$9 = Math.pow;\n\n /*\n * L* [0..100]\n * a [-100..100]\n * b [-100..100]\n */\n var lab2rgb$1 = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n args = unpack$g(args, 'lab');\n var l = args[0];\n var a = args[1];\n var b = args[2];\n var x,y,z, r,g,b_;\n\n y = (l + 16) / 116;\n x = isNaN(a) ? y : y + a / 500;\n z = isNaN(b) ? y : y - b / 200;\n\n y = LAB_CONSTANTS$2.Yn * lab_xyz(y);\n x = LAB_CONSTANTS$2.Xn * lab_xyz(x);\n z = LAB_CONSTANTS$2.Zn * lab_xyz(z);\n\n r = xyz_rgb(3.2404542 * x - 1.5371385 * y - 0.4985314 * z); // D65 -> sRGB\n g = xyz_rgb(-0.9692660 * x + 1.8760108 * y + 0.0415560 * z);\n b_ = xyz_rgb(0.0556434 * x - 0.2040259 * y + 1.0572252 * z);\n\n return [r,g,b_,args.length > 3 ? args[3] : 1];\n };\n\n var xyz_rgb = function (r) {\n return 255 * (r <= 0.00304 ? 12.92 * r : 1.055 * pow$9(r, 1 / 2.4) - 0.055)\n };\n\n var lab_xyz = function (t) {\n return t > LAB_CONSTANTS$2.t1 ? t * t * t : LAB_CONSTANTS$2.t2 * (t - LAB_CONSTANTS$2.t0)\n };\n\n var lab2rgb_1 = lab2rgb$1;\n\n var unpack$f = utils.unpack;\n var type$e = utils.type;\n var chroma$b = chroma_1;\n var Color$u = Color_1;\n var input$7 = input$h;\n\n var rgb2lab$1 = rgb2lab_1;\n\n Color$u.prototype.lab = function() {\n return rgb2lab$1(this._rgb);\n };\n\n chroma$b.lab = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return new (Function.prototype.bind.apply( Color$u, [ null ].concat( args, ['lab']) ));\n };\n\n input$7.format.lab = lab2rgb_1;\n\n input$7.autodetect.push({\n p: 2,\n test: function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n args = unpack$f(args, 'lab');\n if (type$e(args) === 'array' && args.length === 3) {\n return 'lab';\n }\n }\n });\n\n var unpack$e = utils.unpack;\n var RAD2DEG = utils.RAD2DEG;\n var sqrt$3 = Math.sqrt;\n var atan2$2 = Math.atan2;\n var round$2 = Math.round;\n\n var lab2lch$2 = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var ref = unpack$e(args, 'lab');\n var l = ref[0];\n var a = ref[1];\n var b = ref[2];\n var c = sqrt$3(a * a + b * b);\n var h = (atan2$2(b, a) * RAD2DEG + 360) % 360;\n if (round$2(c*10000) === 0) { h = Number.NaN; }\n return [l, c, h];\n };\n\n var lab2lch_1 = lab2lch$2;\n\n var unpack$d = utils.unpack;\n var rgb2lab = rgb2lab_1;\n var lab2lch$1 = lab2lch_1;\n\n var rgb2lch$1 = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var ref = unpack$d(args, 'rgb');\n var r = ref[0];\n var g = ref[1];\n var b = ref[2];\n var ref$1 = rgb2lab(r,g,b);\n var l = ref$1[0];\n var a = ref$1[1];\n var b_ = ref$1[2];\n return lab2lch$1(l,a,b_);\n };\n\n var rgb2lch_1 = rgb2lch$1;\n\n var unpack$c = utils.unpack;\n var DEG2RAD = utils.DEG2RAD;\n var sin$3 = Math.sin;\n var cos$3 = Math.cos;\n\n var lch2lab$2 = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n /*\n Convert from a qualitative parameter h and a quantitative parameter l to a 24-bit pixel.\n These formulas were invented by David Dalrymple to obtain maximum contrast without going\n out of gamut if the parameters are in the range 0-1.\n\n A saturation multiplier was added by Gregor Aisch\n */\n var ref = unpack$c(args, 'lch');\n var l = ref[0];\n var c = ref[1];\n var h = ref[2];\n if (isNaN(h)) { h = 0; }\n h = h * DEG2RAD;\n return [l, cos$3(h) * c, sin$3(h) * c]\n };\n\n var lch2lab_1 = lch2lab$2;\n\n var unpack$b = utils.unpack;\n var lch2lab$1 = lch2lab_1;\n var lab2rgb = lab2rgb_1;\n\n var lch2rgb$1 = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n args = unpack$b(args, 'lch');\n var l = args[0];\n var c = args[1];\n var h = args[2];\n var ref = lch2lab$1 (l,c,h);\n var L = ref[0];\n var a = ref[1];\n var b_ = ref[2];\n var ref$1 = lab2rgb (L,a,b_);\n var r = ref$1[0];\n var g = ref$1[1];\n var b = ref$1[2];\n return [r, g, b, args.length > 3 ? args[3] : 1];\n };\n\n var lch2rgb_1 = lch2rgb$1;\n\n var unpack$a = utils.unpack;\n var lch2rgb = lch2rgb_1;\n\n var hcl2rgb = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var hcl = unpack$a(args, 'hcl').reverse();\n return lch2rgb.apply(void 0, hcl);\n };\n\n var hcl2rgb_1 = hcl2rgb;\n\n var unpack$9 = utils.unpack;\n var type$d = utils.type;\n var chroma$a = chroma_1;\n var Color$t = Color_1;\n var input$6 = input$h;\n\n var rgb2lch = rgb2lch_1;\n\n Color$t.prototype.lch = function() { return rgb2lch(this._rgb); };\n Color$t.prototype.hcl = function() { return rgb2lch(this._rgb).reverse(); };\n\n chroma$a.lch = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return new (Function.prototype.bind.apply( Color$t, [ null ].concat( args, ['lch']) ));\n };\n chroma$a.hcl = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return new (Function.prototype.bind.apply( Color$t, [ null ].concat( args, ['hcl']) ));\n };\n\n input$6.format.lch = lch2rgb_1;\n input$6.format.hcl = hcl2rgb_1;\n\n ['lch','hcl'].forEach(function (m) { return input$6.autodetect.push({\n p: 2,\n test: function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n args = unpack$9(args, m);\n if (type$d(args) === 'array' && args.length === 3) {\n return m;\n }\n }\n }); });\n\n /**\n \tX11 color names\n\n \thttp://www.w3.org/TR/css3-color/#svg-color\n */\n\n var w3cx11$1 = {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflower: '#6495ed',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyan: '#00ffff',\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: '#ff00ff',\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 laserlemon: '#ffff54',\n lavender: '#e6e6fa',\n lavenderblush: '#fff0f5',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrod: '#fafad2',\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: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n maroon2: '#7f0000',\n maroon3: '#b03060',\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 purple2: '#7f007f',\n purple3: '#a020f0',\n rebeccapurple: '#663399',\n red: '#ff0000',\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: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32'\n };\n\n var w3cx11_1 = w3cx11$1;\n\n var Color$s = Color_1;\n var input$5 = input$h;\n var type$c = utils.type;\n\n var w3cx11 = w3cx11_1;\n var hex2rgb = hex2rgb_1;\n var rgb2hex = rgb2hex_1;\n\n Color$s.prototype.name = function() {\n var hex = rgb2hex(this._rgb, 'rgb');\n for (var i = 0, list = Object.keys(w3cx11); i < list.length; i += 1) {\n var n = list[i];\n\n if (w3cx11[n] === hex) { return n.toLowerCase(); }\n }\n return hex;\n };\n\n input$5.format.named = function (name) {\n name = name.toLowerCase();\n if (w3cx11[name]) { return hex2rgb(w3cx11[name]); }\n throw new Error('unknown color name: '+name);\n };\n\n input$5.autodetect.push({\n p: 5,\n test: function (h) {\n var rest = [], len = arguments.length - 1;\n while ( len-- > 0 ) rest[ len ] = arguments[ len + 1 ];\n\n if (!rest.length && type$c(h) === 'string' && w3cx11[h.toLowerCase()]) {\n return 'named';\n }\n }\n });\n\n var unpack$8 = utils.unpack;\n\n var rgb2num$1 = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var ref = unpack$8(args, 'rgb');\n var r = ref[0];\n var g = ref[1];\n var b = ref[2];\n return (r << 16) + (g << 8) + b;\n };\n\n var rgb2num_1 = rgb2num$1;\n\n var type$b = utils.type;\n\n var num2rgb = function (num) {\n if (type$b(num) == \"number\" && num >= 0 && num <= 0xFFFFFF) {\n var r = num >> 16;\n var g = (num >> 8) & 0xFF;\n var b = num & 0xFF;\n return [r,g,b,1];\n }\n throw new Error(\"unknown num color: \"+num);\n };\n\n var num2rgb_1 = num2rgb;\n\n var chroma$9 = chroma_1;\n var Color$r = Color_1;\n var input$4 = input$h;\n var type$a = utils.type;\n\n var rgb2num = rgb2num_1;\n\n Color$r.prototype.num = function() {\n return rgb2num(this._rgb);\n };\n\n chroma$9.num = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return new (Function.prototype.bind.apply( Color$r, [ null ].concat( args, ['num']) ));\n };\n\n input$4.format.num = num2rgb_1;\n\n input$4.autodetect.push({\n p: 5,\n test: function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n if (args.length === 1 && type$a(args[0]) === 'number' && args[0] >= 0 && args[0] <= 0xFFFFFF) {\n return 'num';\n }\n }\n });\n\n var chroma$8 = chroma_1;\n var Color$q = Color_1;\n var input$3 = input$h;\n var unpack$7 = utils.unpack;\n var type$9 = utils.type;\n var round$1 = Math.round;\n\n Color$q.prototype.rgb = function(rnd) {\n if ( rnd === void 0 ) rnd=true;\n\n if (rnd === false) { return this._rgb.slice(0,3); }\n return this._rgb.slice(0,3).map(round$1);\n };\n\n Color$q.prototype.rgba = function(rnd) {\n if ( rnd === void 0 ) rnd=true;\n\n return this._rgb.slice(0,4).map(function (v,i) {\n return i<3 ? (rnd === false ? v : round$1(v)) : v;\n });\n };\n\n chroma$8.rgb = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return new (Function.prototype.bind.apply( Color$q, [ null ].concat( args, ['rgb']) ));\n };\n\n input$3.format.rgb = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var rgba = unpack$7(args, 'rgba');\n if (rgba[3] === undefined) { rgba[3] = 1; }\n return rgba;\n };\n\n input$3.autodetect.push({\n p: 3,\n test: function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n args = unpack$7(args, 'rgba');\n if (type$9(args) === 'array' && (args.length === 3 ||\n args.length === 4 && type$9(args[3]) == 'number' && args[3] >= 0 && args[3] <= 1)) {\n return 'rgb';\n }\n }\n });\n\n /*\n * Based on implementation by Neil Bartlett\n * https://github.com/neilbartlett/color-temperature\n */\n\n var log$1 = Math.log;\n\n var temperature2rgb$1 = function (kelvin) {\n var temp = kelvin / 100;\n var r,g,b;\n if (temp < 66) {\n r = 255;\n g = temp < 6 ? 0 : -155.25485562709179 - 0.44596950469579133 * (g = temp-2) + 104.49216199393888 * log$1(g);\n b = temp < 20 ? 0 : -254.76935184120902 + 0.8274096064007395 * (b = temp-10) + 115.67994401066147 * log$1(b);\n } else {\n r = 351.97690566805693 + 0.114206453784165 * (r = temp-55) - 40.25366309332127 * log$1(r);\n g = 325.4494125711974 + 0.07943456536662342 * (g = temp-50) - 28.0852963507957 * log$1(g);\n b = 255;\n }\n return [r,g,b,1];\n };\n\n var temperature2rgb_1 = temperature2rgb$1;\n\n /*\n * Based on implementation by Neil Bartlett\n * https://github.com/neilbartlett/color-temperature\n **/\n\n var temperature2rgb = temperature2rgb_1;\n var unpack$6 = utils.unpack;\n var round = Math.round;\n\n var rgb2temperature$1 = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var rgb = unpack$6(args, 'rgb');\n var r = rgb[0], b = rgb[2];\n var minTemp = 1000;\n var maxTemp = 40000;\n var eps = 0.4;\n var temp;\n while (maxTemp - minTemp > eps) {\n temp = (maxTemp + minTemp) * 0.5;\n var rgb$1 = temperature2rgb(temp);\n if ((rgb$1[2] / rgb$1[0]) >= (b / r)) {\n maxTemp = temp;\n } else {\n minTemp = temp;\n }\n }\n return round(temp);\n };\n\n var rgb2temperature_1 = rgb2temperature$1;\n\n var chroma$7 = chroma_1;\n var Color$p = Color_1;\n var input$2 = input$h;\n\n var rgb2temperature = rgb2temperature_1;\n\n Color$p.prototype.temp =\n Color$p.prototype.kelvin =\n Color$p.prototype.temperature = function() {\n return rgb2temperature(this._rgb);\n };\n\n chroma$7.temp =\n chroma$7.kelvin =\n chroma$7.temperature = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return new (Function.prototype.bind.apply( Color$p, [ null ].concat( args, ['temp']) ));\n };\n\n input$2.format.temp =\n input$2.format.kelvin =\n input$2.format.temperature = temperature2rgb_1;\n\n var unpack$5 = utils.unpack;\n var cbrt = Math.cbrt;\n var pow$8 = Math.pow;\n var sign$1 = Math.sign;\n\n var rgb2oklab$2 = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // OKLab color space implementation taken from\n // https://bottosson.github.io/posts/oklab/\n var ref = unpack$5(args, 'rgb');\n var r = ref[0];\n var g = ref[1];\n var b = ref[2];\n var ref$1 = [rgb2lrgb(r / 255), rgb2lrgb(g / 255), rgb2lrgb(b / 255)];\n var lr = ref$1[0];\n var lg = ref$1[1];\n var lb = ref$1[2];\n var l = cbrt(0.4122214708 * lr + 0.5363325363 * lg + 0.0514459929 * lb);\n var m = cbrt(0.2119034982 * lr + 0.6806995451 * lg + 0.1073969566 * lb);\n var s = cbrt(0.0883024619 * lr + 0.2817188376 * lg + 0.6299787005 * lb);\n\n return [\n 0.2104542553 * l + 0.793617785 * m - 0.0040720468 * s,\n 1.9779984951 * l - 2.428592205 * m + 0.4505937099 * s,\n 0.0259040371 * l + 0.7827717662 * m - 0.808675766 * s\n ];\n };\n\n var rgb2oklab_1 = rgb2oklab$2;\n\n function rgb2lrgb(c) {\n var abs = Math.abs(c);\n if (abs < 0.04045) {\n return c / 12.92;\n }\n return (sign$1(c) || 1) * pow$8((abs + 0.055) / 1.055, 2.4);\n }\n\n var unpack$4 = utils.unpack;\n var pow$7 = Math.pow;\n var sign = Math.sign;\n\n /*\n * L* [0..100]\n * a [-100..100]\n * b [-100..100]\n */\n var oklab2rgb$1 = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n args = unpack$4(args, 'lab');\n var L = args[0];\n var a = args[1];\n var b = args[2];\n\n var l = pow$7(L + 0.3963377774 * a + 0.2158037573 * b, 3);\n var m = pow$7(L - 0.1055613458 * a - 0.0638541728 * b, 3);\n var s = pow$7(L - 0.0894841775 * a - 1.291485548 * b, 3);\n\n return [\n 255 * lrgb2rgb(+4.0767416621 * l - 3.3077115913 * m + 0.2309699292 * s),\n 255 * lrgb2rgb(-1.2684380046 * l + 2.6097574011 * m - 0.3413193965 * s),\n 255 * lrgb2rgb(-0.0041960863 * l - 0.7034186147 * m + 1.707614701 * s),\n args.length > 3 ? args[3] : 1\n ];\n };\n\n var oklab2rgb_1 = oklab2rgb$1;\n\n function lrgb2rgb(c) {\n var abs = Math.abs(c);\n if (abs > 0.0031308) {\n return (sign(c) || 1) * (1.055 * pow$7(abs, 1 / 2.4) - 0.055);\n }\n return c * 12.92;\n }\n\n var unpack$3 = utils.unpack;\n var type$8 = utils.type;\n var chroma$6 = chroma_1;\n var Color$o = Color_1;\n var input$1 = input$h;\n\n var rgb2oklab$1 = rgb2oklab_1;\n\n Color$o.prototype.oklab = function () {\n return rgb2oklab$1(this._rgb);\n };\n\n chroma$6.oklab = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return new (Function.prototype.bind.apply( Color$o, [ null ].concat( args, ['oklab']) ));\n };\n\n input$1.format.oklab = oklab2rgb_1;\n\n input$1.autodetect.push({\n p: 3,\n test: function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n args = unpack$3(args, 'oklab');\n if (type$8(args) === 'array' && args.length === 3) {\n return 'oklab';\n }\n }\n });\n\n var unpack$2 = utils.unpack;\n var rgb2oklab = rgb2oklab_1;\n var lab2lch = lab2lch_1;\n\n var rgb2oklch$1 = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var ref = unpack$2(args, 'rgb');\n var r = ref[0];\n var g = ref[1];\n var b = ref[2];\n var ref$1 = rgb2oklab(r, g, b);\n var l = ref$1[0];\n var a = ref$1[1];\n var b_ = ref$1[2];\n return lab2lch(l, a, b_);\n };\n\n var rgb2oklch_1 = rgb2oklch$1;\n\n var unpack$1 = utils.unpack;\n var lch2lab = lch2lab_1;\n var oklab2rgb = oklab2rgb_1;\n\n var oklch2rgb = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n args = unpack$1(args, 'lch');\n var l = args[0];\n var c = args[1];\n var h = args[2];\n var ref = lch2lab(l, c, h);\n var L = ref[0];\n var a = ref[1];\n var b_ = ref[2];\n var ref$1 = oklab2rgb(L, a, b_);\n var r = ref$1[0];\n var g = ref$1[1];\n var b = ref$1[2];\n return [r, g, b, args.length > 3 ? args[3] : 1];\n };\n\n var oklch2rgb_1 = oklch2rgb;\n\n var unpack = utils.unpack;\n var type$7 = utils.type;\n var chroma$5 = chroma_1;\n var Color$n = Color_1;\n var input = input$h;\n\n var rgb2oklch = rgb2oklch_1;\n\n Color$n.prototype.oklch = function () {\n return rgb2oklch(this._rgb);\n };\n\n chroma$5.oklch = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return new (Function.prototype.bind.apply( Color$n, [ null ].concat( args, ['oklch']) ));\n };\n\n input.format.oklch = oklch2rgb_1;\n\n input.autodetect.push({\n p: 3,\n test: function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n args = unpack(args, 'oklch');\n if (type$7(args) === 'array' && args.length === 3) {\n return 'oklch';\n }\n }\n });\n\n var Color$m = Color_1;\n var type$6 = utils.type;\n\n Color$m.prototype.alpha = function(a, mutate) {\n if ( mutate === void 0 ) mutate=false;\n\n if (a !== undefined && type$6(a) === 'number') {\n if (mutate) {\n this._rgb[3] = a;\n return this;\n }\n return new Color$m([this._rgb[0], this._rgb[1], this._rgb[2], a], 'rgb');\n }\n return this._rgb[3];\n };\n\n var Color$l = Color_1;\n\n Color$l.prototype.clipped = function() {\n return this._rgb._clipped || false;\n };\n\n var Color$k = Color_1;\n var LAB_CONSTANTS$1 = labConstants;\n\n Color$k.prototype.darken = function(amount) {\n \tif ( amount === void 0 ) amount=1;\n\n \tvar me = this;\n \tvar lab = me.lab();\n \tlab[0] -= LAB_CONSTANTS$1.Kn * amount;\n \treturn new Color$k(lab, 'lab').alpha(me.alpha(), true);\n };\n\n Color$k.prototype.brighten = function(amount) {\n \tif ( amount === void 0 ) amount=1;\n\n \treturn this.darken(-amount);\n };\n\n Color$k.prototype.darker = Color$k.prototype.darken;\n Color$k.prototype.brighter = Color$k.prototype.brighten;\n\n var Color$j = Color_1;\n\n Color$j.prototype.get = function (mc) {\n var ref = mc.split('.');\n var mode = ref[0];\n var channel = ref[1];\n var src = this[mode]();\n if (channel) {\n var i = mode.indexOf(channel) - (mode.substr(0, 2) === 'ok' ? 2 : 0);\n if (i > -1) { return src[i]; }\n throw new Error((\"unknown channel \" + channel + \" in mode \" + mode));\n } else {\n return src;\n }\n };\n\n var Color$i = Color_1;\n var type$5 = utils.type;\n var pow$6 = Math.pow;\n\n var EPS = 1e-7;\n var MAX_ITER = 20;\n\n Color$i.prototype.luminance = function(lum) {\n if (lum !== undefined && type$5(lum) === 'number') {\n if (lum === 0) {\n // return pure black\n return new Color$i([0,0,0,this._rgb[3]], 'rgb');\n }\n if (lum === 1) {\n // return pure white\n return new Color$i([255,255,255,this._rgb[3]], 'rgb');\n }\n // compute new color using...\n var cur_lum = this.luminance();\n var mode = 'rgb';\n var max_iter = MAX_ITER;\n\n var test = function (low, high) {\n var mid = low.interpolate(high, 0.5, mode);\n var lm = mid.luminance();\n if (Math.abs(lum - lm) < EPS || !max_iter--) {\n // close enough\n return mid;\n }\n return lm > lum ? test(low, mid) : test(mid, high);\n };\n\n var rgb = (cur_lum > lum ? test(new Color$i([0,0,0]), this) : test(this, new Color$i([255,255,255]))).rgb();\n return new Color$i(rgb.concat( [this._rgb[3]]));\n }\n return rgb2luminance.apply(void 0, (this._rgb).slice(0,3));\n };\n\n\n var rgb2luminance = function (r,g,b) {\n // relative luminance\n // see http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n r = luminance_x(r);\n g = luminance_x(g);\n b = luminance_x(b);\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n };\n\n var luminance_x = function (x) {\n x /= 255;\n return x <= 0.03928 ? x/12.92 : pow$6((x+0.055)/1.055, 2.4);\n };\n\n var interpolator$1 = {};\n\n var Color$h = Color_1;\n var type$4 = utils.type;\n var interpolator = interpolator$1;\n\n var mix$1 = function (col1, col2, f) {\n if ( f === void 0 ) f=0.5;\n var rest = [], len = arguments.length - 3;\n while ( len-- > 0 ) rest[ len ] = arguments[ len + 3 ];\n\n var mode = rest[0] || 'lrgb';\n if (!interpolator[mode] && !rest.length) {\n // fall back to the first supported mode\n mode = Object.keys(interpolator)[0];\n }\n if (!interpolator[mode]) {\n throw new Error((\"interpolation mode \" + mode + \" is not defined\"));\n }\n if (type$4(col1) !== 'object') { col1 = new Color$h(col1); }\n if (type$4(col2) !== 'object') { col2 = new Color$h(col2); }\n return interpolator[mode](col1, col2, f)\n .alpha(col1.alpha() + f * (col2.alpha() - col1.alpha()));\n };\n\n var Color$g = Color_1;\n var mix = mix$1;\n\n Color$g.prototype.mix =\n Color$g.prototype.interpolate = function(col2, f) {\n \tif ( f === void 0 ) f=0.5;\n \tvar rest = [], len = arguments.length - 2;\n \twhile ( len-- > 0 ) rest[ len ] = arguments[ len + 2 ];\n\n \treturn mix.apply(void 0, [ this, col2, f ].concat( rest ));\n };\n\n var Color$f = Color_1;\n\n Color$f.prototype.premultiply = function(mutate) {\n \tif ( mutate === void 0 ) mutate=false;\n\n \tvar rgb = this._rgb;\n \tvar a = rgb[3];\n \tif (mutate) {\n \t\tthis._rgb = [rgb[0]*a, rgb[1]*a, rgb[2]*a, a];\n \t\treturn this;\n \t} else {\n \t\treturn new Color$f([rgb[0]*a, rgb[1]*a, rgb[2]*a, a], 'rgb');\n \t}\n };\n\n var Color$e = Color_1;\n var LAB_CONSTANTS = labConstants;\n\n Color$e.prototype.saturate = function(amount) {\n \tif ( amount === void 0 ) amount=1;\n\n \tvar me = this;\n \tvar lch = me.lch();\n \tlch[1] += LAB_CONSTANTS.Kn * amount;\n \tif (lch[1] < 0) { lch[1] = 0; }\n \treturn new Color$e(lch, 'lch').alpha(me.alpha(), true);\n };\n\n Color$e.prototype.desaturate = function(amount) {\n \tif ( amount === void 0 ) amount=1;\n\n \treturn this.saturate(-amount);\n };\n\n var Color$d = Color_1;\n var type$3 = utils.type;\n\n Color$d.prototype.set = function (mc, value, mutate) {\n if ( mutate === void 0 ) mutate = false;\n\n var ref = mc.split('.');\n var mode = ref[0];\n var channel = ref[1];\n var src = this[mode]();\n if (channel) {\n var i = mode.indexOf(channel) - (mode.substr(0, 2) === 'ok' ? 2 : 0);\n if (i > -1) {\n if (type$3(value) == 'string') {\n switch (value.charAt(0)) {\n case '+':\n src[i] += +value;\n break;\n case '-':\n src[i] += +value;\n break;\n case '*':\n src[i] *= +value.substr(1);\n break;\n case '/':\n src[i] /= +value.substr(1);\n break;\n default:\n src[i] = +value;\n }\n } else if (type$3(value) === 'number') {\n src[i] = value;\n } else {\n throw new Error(\"unsupported value for Color.set\");\n }\n var out = new Color$d(src, mode);\n if (mutate) {\n this._rgb = out._rgb;\n return this;\n }\n return out;\n }\n throw new Error((\"unknown channel \" + channel + \" in mode \" + mode));\n } else {\n return src;\n }\n };\n\n var Color$c = Color_1;\n\n var rgb = function (col1, col2, f) {\n var xyz0 = col1._rgb;\n var xyz1 = col2._rgb;\n return new Color$c(\n xyz0[0] + f * (xyz1[0]-xyz0[0]),\n xyz0[1] + f * (xyz1[1]-xyz0[1]),\n xyz0[2] + f * (xyz1[2]-xyz0[2]),\n 'rgb'\n )\n };\n\n // register interpolator\n interpolator$1.rgb = rgb;\n\n var Color$b = Color_1;\n var sqrt$2 = Math.sqrt;\n var pow$5 = Math.pow;\n\n var lrgb = function (col1, col2, f) {\n var ref = col1._rgb;\n var x1 = ref[0];\n var y1 = ref[1];\n var z1 = ref[2];\n var ref$1 = col2._rgb;\n var x2 = ref$1[0];\n var y2 = ref$1[1];\n var z2 = ref$1[2];\n return new Color$b(\n sqrt$2(pow$5(x1,2) * (1-f) + pow$5(x2,2) * f),\n sqrt$2(pow$5(y1,2) * (1-f) + pow$5(y2,2) * f),\n sqrt$2(pow$5(z1,2) * (1-f) + pow$5(z2,2) * f),\n 'rgb'\n )\n };\n\n // register interpolator\n interpolator$1.lrgb = lrgb;\n\n var Color$a = Color_1;\n\n var lab = function (col1, col2, f) {\n var xyz0 = col1.lab();\n var xyz1 = col2.lab();\n return new Color$a(\n xyz0[0] + f * (xyz1[0]-xyz0[0]),\n xyz0[1] + f * (xyz1[1]-xyz0[1]),\n xyz0[2] + f * (xyz1[2]-xyz0[2]),\n 'lab'\n )\n };\n\n // register interpolator\n interpolator$1.lab = lab;\n\n var Color$9 = Color_1;\n\n var _hsx = function (col1, col2, f, m) {\n var assign, assign$1;\n\n var xyz0, xyz1;\n if (m === 'hsl') {\n xyz0 = col1.hsl();\n xyz1 = col2.hsl();\n } else if (m === 'hsv') {\n xyz0 = col1.hsv();\n xyz1 = col2.hsv();\n } else if (m === 'hcg') {\n xyz0 = col1.hcg();\n xyz1 = col2.hcg();\n } else if (m === 'hsi') {\n xyz0 = col1.hsi();\n xyz1 = col2.hsi();\n } else if (m === 'lch' || m === 'hcl') {\n m = 'hcl';\n xyz0 = col1.hcl();\n xyz1 = col2.hcl();\n } else if (m === 'oklch') {\n xyz0 = col1.oklch().reverse();\n xyz1 = col2.oklch().reverse();\n }\n\n var hue0, hue1, sat0, sat1, lbv0, lbv1;\n if (m.substr(0, 1) === 'h' || m === 'oklch') {\n (assign = xyz0, hue0 = assign[0], sat0 = assign[1], lbv0 = assign[2]);\n (assign$1 = xyz1, hue1 = assign$1[0], sat1 = assign$1[1], lbv1 = assign$1[2]);\n }\n\n var sat, hue, lbv, dh;\n\n if (!isNaN(hue0) && !isNaN(hue1)) {\n // both colors have hue\n if (hue1 > hue0 && hue1 - hue0 > 180) {\n dh = hue1 - (hue0 + 360);\n } else if (hue1 < hue0 && hue0 - hue1 > 180) {\n dh = hue1 + 360 - hue0;\n } else {\n dh = hue1 - hue0;\n }\n hue = hue0 + f * dh;\n } else if (!isNaN(hue0)) {\n hue = hue0;\n if ((lbv1 == 1 || lbv1 == 0) && m != 'hsv') { sat = sat0; }\n } else if (!isNaN(hue1)) {\n hue = hue1;\n if ((lbv0 == 1 || lbv0 == 0) && m != 'hsv') { sat = sat1; }\n } else {\n hue = Number.NaN;\n }\n\n if (sat === undefined) { sat = sat0 + f * (sat1 - sat0); }\n lbv = lbv0 + f * (lbv1 - lbv0);\n return m === 'oklch' ? new Color$9([lbv, sat, hue], m) : new Color$9([hue, sat, lbv], m);\n };\n\n var interpolate_hsx$5 = _hsx;\n\n var lch = function (col1, col2, f) {\n \treturn interpolate_hsx$5(col1, col2, f, 'lch');\n };\n\n // register interpolator\n interpolator$1.lch = lch;\n interpolator$1.hcl = lch;\n\n var Color$8 = Color_1;\n\n var num = function (col1, col2, f) {\n var c1 = col1.num();\n var c2 = col2.num();\n return new Color$8(c1 + f * (c2-c1), 'num')\n };\n\n // register interpolator\n interpolator$1.num = num;\n\n var interpolate_hsx$4 = _hsx;\n\n var hcg = function (col1, col2, f) {\n \treturn interpolate_hsx$4(col1, col2, f, 'hcg');\n };\n\n // register interpolator\n interpolator$1.hcg = hcg;\n\n var interpolate_hsx$3 = _hsx;\n\n var hsi = function (col1, col2, f) {\n \treturn interpolate_hsx$3(col1, col2, f, 'hsi');\n };\n\n // register interpolator\n interpolator$1.hsi = hsi;\n\n var interpolate_hsx$2 = _hsx;\n\n var hsl = function (col1, col2, f) {\n \treturn interpolate_hsx$2(col1, col2, f, 'hsl');\n };\n\n // register interpolator\n interpolator$1.hsl = hsl;\n\n var interpolate_hsx$1 = _hsx;\n\n var hsv = function (col1, col2, f) {\n \treturn interpolate_hsx$1(col1, col2, f, 'hsv');\n };\n\n // register interpolator\n interpolator$1.hsv = hsv;\n\n var Color$7 = Color_1;\n\n var oklab = function (col1, col2, f) {\n var xyz0 = col1.oklab();\n var xyz1 = col2.oklab();\n return new Color$7(\n xyz0[0] + f * (xyz1[0] - xyz0[0]),\n xyz0[1] + f * (xyz1[1] - xyz0[1]),\n xyz0[2] + f * (xyz1[2] - xyz0[2]),\n 'oklab'\n );\n };\n\n // register interpolator\n interpolator$1.oklab = oklab;\n\n var interpolate_hsx = _hsx;\n\n var oklch = function (col1, col2, f) {\n return interpolate_hsx(col1, col2, f, 'oklch');\n };\n\n // register interpolator\n interpolator$1.oklch = oklch;\n\n var Color$6 = Color_1;\n var clip_rgb$1 = utils.clip_rgb;\n var pow$4 = Math.pow;\n var sqrt$1 = Math.sqrt;\n var PI$1 = Math.PI;\n var cos$2 = Math.cos;\n var sin$2 = Math.sin;\n var atan2$1 = Math.atan2;\n\n var average = function (colors, mode, weights) {\n if ( mode === void 0 ) mode='lrgb';\n if ( weights === void 0 ) weights=null;\n\n var l = colors.length;\n if (!weights) { weights = Array.from(new Array(l)).map(function () { return 1; }); }\n // normalize weights\n var k = l / weights.reduce(function(a, b) { return a + b; });\n weights.forEach(function (w,i) { weights[i] *= k; });\n // convert colors to Color objects\n colors = colors.map(function (c) { return new Color$6(c); });\n if (mode === 'lrgb') {\n return _average_lrgb(colors, weights)\n }\n var first = colors.shift();\n var xyz = first.get(mode);\n var cnt = [];\n var dx = 0;\n var dy = 0;\n // initial color\n for (var i=0; i= 360) { A$1 -= 360; }\n xyz[i$1] = A$1;\n } else {\n xyz[i$1] = xyz[i$1]/cnt[i$1];\n }\n }\n alpha /= l;\n return (new Color$6(xyz, mode)).alpha(alpha > 0.99999 ? 1 : alpha, true);\n };\n\n\n var _average_lrgb = function (colors, weights) {\n var l = colors.length;\n var xyz = [0,0,0,0];\n for (var i=0; i < colors.length; i++) {\n var col = colors[i];\n var f = weights[i] / l;\n var rgb = col._rgb;\n xyz[0] += pow$4(rgb[0],2) * f;\n xyz[1] += pow$4(rgb[1],2) * f;\n xyz[2] += pow$4(rgb[2],2) * f;\n xyz[3] += rgb[3] * f;\n }\n xyz[0] = sqrt$1(xyz[0]);\n xyz[1] = sqrt$1(xyz[1]);\n xyz[2] = sqrt$1(xyz[2]);\n if (xyz[3] > 0.9999999) { xyz[3] = 1; }\n return new Color$6(clip_rgb$1(xyz));\n };\n\n // minimal multi-purpose interface\n\n // @requires utils color analyze\n\n var chroma$4 = chroma_1;\n var type$2 = utils.type;\n\n var pow$3 = Math.pow;\n\n var scale$2 = function(colors) {\n\n // constructor\n var _mode = 'rgb';\n var _nacol = chroma$4('#ccc');\n var _spread = 0;\n // const _fixed = false;\n var _domain = [0, 1];\n var _pos = [];\n var _padding = [0,0];\n var _classes = false;\n var _colors = [];\n var _out = false;\n var _min = 0;\n var _max = 1;\n var _correctLightness = false;\n var _colorCache = {};\n var _useCache = true;\n var _gamma = 1;\n\n // private methods\n\n var setColors = function(colors) {\n colors = colors || ['#fff', '#000'];\n if (colors && type$2(colors) === 'string' && chroma$4.brewer &&\n chroma$4.brewer[colors.toLowerCase()]) {\n colors = chroma$4.brewer[colors.toLowerCase()];\n }\n if (type$2(colors) === 'array') {\n // handle single color\n if (colors.length === 1) {\n colors = [colors[0], colors[0]];\n }\n // make a copy of the colors\n colors = colors.slice(0);\n // convert to chroma classes\n for (var c=0; c= _classes[i]) {\n i++;\n }\n return i-1;\n }\n return 0;\n };\n\n var tMapLightness = function (t) { return t; };\n var tMapDomain = function (t) { return t; };\n\n // const classifyValue = function(value) {\n // let val = value;\n // if (_classes.length > 2) {\n // const n = _classes.length-1;\n // const i = getClass(value);\n // const minc = _classes[0] + ((_classes[1]-_classes[0]) * (0 + (_spread * 0.5))); // center of 1st class\n // const maxc = _classes[n-1] + ((_classes[n]-_classes[n-1]) * (1 - (_spread * 0.5))); // center of last class\n // val = _min + ((((_classes[i] + ((_classes[i+1] - _classes[i]) * 0.5)) - minc) / (maxc-minc)) * (_max - _min));\n // }\n // return val;\n // };\n\n var getColor = function(val, bypassMap) {\n var col, t;\n if (bypassMap == null) { bypassMap = false; }\n if (isNaN(val) || (val === null)) { return _nacol; }\n if (!bypassMap) {\n if (_classes && (_classes.length > 2)) {\n // find the class\n var c = getClass(val);\n t = c / (_classes.length-2);\n } else if (_max !== _min) {\n // just interpolate between min/max\n t = (val - _min) / (_max - _min);\n } else {\n t = 1;\n }\n } else {\n t = val;\n }\n\n // domain map\n t = tMapDomain(t);\n\n if (!bypassMap) {\n t = tMapLightness(t); // lightness correction\n }\n\n if (_gamma !== 1) { t = pow$3(t, _gamma); }\n\n t = _padding[0] + (t * (1 - _padding[0] - _padding[1]));\n\n t = Math.min(1, Math.max(0, t));\n\n var k = Math.floor(t * 10000);\n\n if (_useCache && _colorCache[k]) {\n col = _colorCache[k];\n } else {\n if (type$2(_colors) === 'array') {\n //for i in [0.._pos.length-1]\n for (var i=0; i<_pos.length; i++) {\n var p = _pos[i];\n if (t <= p) {\n col = _colors[i];\n break;\n }\n if ((t >= p) && (i === (_pos.length-1))) {\n col = _colors[i];\n break;\n }\n if (t > p && t < _pos[i+1]) {\n t = (t-p)/(_pos[i+1]-p);\n col = chroma$4.interpolate(_colors[i], _colors[i+1], t, _mode);\n break;\n }\n }\n } else if (type$2(_colors) === 'function') {\n col = _colors(t);\n }\n if (_useCache) { _colorCache[k] = col; }\n }\n return col;\n };\n\n var resetCache = function () { return _colorCache = {}; };\n\n setColors(colors);\n\n // public interface\n\n var f = function(v) {\n var c = chroma$4(getColor(v));\n if (_out && c[_out]) { return c[_out](); } else { return c; }\n };\n\n f.classes = function(classes) {\n if (classes != null) {\n if (type$2(classes) === 'array') {\n _classes = classes;\n _domain = [classes[0], classes[classes.length-1]];\n } else {\n var d = chroma$4.analyze(_domain);\n if (classes === 0) {\n _classes = [d.min, d.max];\n } else {\n _classes = chroma$4.limits(d, 'e', classes);\n }\n }\n return f;\n }\n return _classes;\n };\n\n\n f.domain = function(domain) {\n if (!arguments.length) {\n return _domain;\n }\n _min = domain[0];\n _max = domain[domain.length-1];\n _pos = [];\n var k = _colors.length;\n if ((domain.length === k) && (_min !== _max)) {\n // update positions\n for (var i = 0, list = Array.from(domain); i < list.length; i += 1) {\n var d = list[i];\n\n _pos.push((d-_min) / (_max-_min));\n }\n } else {\n for (var c=0; c 2) {\n // set domain map\n var tOut = domain.map(function (d,i) { return i/(domain.length-1); });\n var tBreaks = domain.map(function (d) { return (d - _min) / (_max - _min); });\n if (!tBreaks.every(function (val, i) { return tOut[i] === val; })) {\n tMapDomain = function (t) {\n if (t <= 0 || t >= 1) { return t; }\n var i = 0;\n while (t >= tBreaks[i+1]) { i++; }\n var f = (t - tBreaks[i]) / (tBreaks[i+1] - tBreaks[i]);\n var out = tOut[i] + f * (tOut[i+1] - tOut[i]);\n return out;\n };\n }\n\n }\n }\n _domain = [_min, _max];\n return f;\n };\n\n f.mode = function(_m) {\n if (!arguments.length) {\n return _mode;\n }\n _mode = _m;\n resetCache();\n return f;\n };\n\n f.range = function(colors, _pos) {\n setColors(colors);\n return f;\n };\n\n f.out = function(_o) {\n _out = _o;\n return f;\n };\n\n f.spread = function(val) {\n if (!arguments.length) {\n return _spread;\n }\n _spread = val;\n return f;\n };\n\n f.correctLightness = function(v) {\n if (v == null) { v = true; }\n _correctLightness = v;\n resetCache();\n if (_correctLightness) {\n tMapLightness = function(t) {\n var L0 = getColor(0, true).lab()[0];\n var L1 = getColor(1, true).lab()[0];\n var pol = L0 > L1;\n var L_actual = getColor(t, true).lab()[0];\n var L_ideal = L0 + ((L1 - L0) * t);\n var L_diff = L_actual - L_ideal;\n var t0 = 0;\n var t1 = 1;\n var max_iter = 20;\n while ((Math.abs(L_diff) > 1e-2) && (max_iter-- > 0)) {\n (function() {\n if (pol) { L_diff *= -1; }\n if (L_diff < 0) {\n t0 = t;\n t += (t1 - t) * 0.5;\n } else {\n t1 = t;\n t += (t0 - t) * 0.5;\n }\n L_actual = getColor(t, true).lab()[0];\n return L_diff = L_actual - L_ideal;\n })();\n }\n return t;\n };\n } else {\n tMapLightness = function (t) { return t; };\n }\n return f;\n };\n\n f.padding = function(p) {\n if (p != null) {\n if (type$2(p) === 'number') {\n p = [p,p];\n }\n _padding = p;\n return f;\n } else {\n return _padding;\n }\n };\n\n f.colors = function(numColors, out) {\n // If no arguments are given, return the original colors that were provided\n if (arguments.length < 2) { out = 'hex'; }\n var result = [];\n\n if (arguments.length === 0) {\n result = _colors.slice(0);\n\n } else if (numColors === 1) {\n result = [f(0.5)];\n\n } else if (numColors > 1) {\n var dm = _domain[0];\n var dd = _domain[1] - dm;\n result = __range__(0, numColors, false).map(function (i) { return f( dm + ((i/(numColors-1)) * dd) ); });\n\n } else { // returns all colors based on the defined classes\n colors = [];\n var samples = [];\n if (_classes && (_classes.length > 2)) {\n for (var i = 1, end = _classes.length, asc = 1 <= end; asc ? i < end : i > end; asc ? i++ : i--) {\n samples.push((_classes[i-1]+_classes[i])*0.5);\n }\n } else {\n samples = _domain;\n }\n result = samples.map(function (v) { return f(v); });\n }\n\n if (chroma$4[out]) {\n result = result.map(function (c) { return c[out](); });\n }\n return result;\n };\n\n f.cache = function(c) {\n if (c != null) {\n _useCache = c;\n return f;\n } else {\n return _useCache;\n }\n };\n\n f.gamma = function(g) {\n if (g != null) {\n _gamma = g;\n return f;\n } else {\n return _gamma;\n }\n };\n\n f.nodata = function(d) {\n if (d != null) {\n _nacol = chroma$4(d);\n return f;\n } else {\n return _nacol;\n }\n };\n\n return f;\n };\n\n function __range__(left, right, inclusive) {\n var range = [];\n var ascending = left < right;\n var end = !inclusive ? right : ascending ? right + 1 : right - 1;\n for (var i = left; ascending ? i < end : i > end; ascending ? i++ : i--) {\n range.push(i);\n }\n return range;\n }\n\n //\n // interpolates between a set of colors uzing a bezier spline\n //\n\n // @requires utils lab\n var Color$5 = Color_1;\n\n var scale$1 = scale$2;\n\n // nth row of the pascal triangle\n var binom_row = function(n) {\n var row = [1, 1];\n for (var i = 1; i < n; i++) {\n var newrow = [1];\n for (var j = 1; j <= row.length; j++) {\n newrow[j] = (row[j] || 0) + row[j - 1];\n }\n row = newrow;\n }\n return row;\n };\n\n var bezier = function(colors) {\n var assign, assign$1, assign$2;\n\n var I, lab0, lab1, lab2;\n colors = colors.map(function (c) { return new Color$5(c); });\n if (colors.length === 2) {\n // linear interpolation\n (assign = colors.map(function (c) { return c.lab(); }), lab0 = assign[0], lab1 = assign[1]);\n I = function(t) {\n var lab = ([0, 1, 2].map(function (i) { return lab0[i] + (t * (lab1[i] - lab0[i])); }));\n return new Color$5(lab, 'lab');\n };\n } else if (colors.length === 3) {\n // quadratic bezier interpolation\n (assign$1 = colors.map(function (c) { return c.lab(); }), lab0 = assign$1[0], lab1 = assign$1[1], lab2 = assign$1[2]);\n I = function(t) {\n var lab = ([0, 1, 2].map(function (i) { return ((1-t)*(1-t) * lab0[i]) + (2 * (1-t) * t * lab1[i]) + (t * t * lab2[i]); }));\n return new Color$5(lab, 'lab');\n };\n } else if (colors.length === 4) {\n // cubic bezier interpolation\n var lab3;\n (assign$2 = colors.map(function (c) { return c.lab(); }), lab0 = assign$2[0], lab1 = assign$2[1], lab2 = assign$2[2], lab3 = assign$2[3]);\n I = function(t) {\n var lab = ([0, 1, 2].map(function (i) { return ((1-t)*(1-t)*(1-t) * lab0[i]) + (3 * (1-t) * (1-t) * t * lab1[i]) + (3 * (1-t) * t * t * lab2[i]) + (t*t*t * lab3[i]); }));\n return new Color$5(lab, 'lab');\n };\n } else if (colors.length >= 5) {\n // general case (degree n bezier)\n var labs, row, n;\n labs = colors.map(function (c) { return c.lab(); });\n n = colors.length - 1;\n row = binom_row(n);\n I = function (t) {\n var u = 1 - t;\n var lab = ([0, 1, 2].map(function (i) { return labs.reduce(function (sum, el, j) { return (sum + row[j] * Math.pow( u, (n - j) ) * Math.pow( t, j ) * el[i]); }, 0); }));\n return new Color$5(lab, 'lab');\n };\n } else {\n throw new RangeError(\"No point in running bezier with only one color.\")\n }\n return I;\n };\n\n var bezier_1 = function (colors) {\n var f = bezier(colors);\n f.scale = function () { return scale$1(f); };\n return f;\n };\n\n /*\n * interpolates between a set of colors uzing a bezier spline\n * blend mode formulas taken from http://www.venture-ware.com/kevin/coding/lets-learn-math-photoshop-blend-modes/\n */\n\n var chroma$3 = chroma_1;\n\n var blend = function (bottom, top, mode) {\n if (!blend[mode]) {\n throw new Error('unknown blend mode ' + mode);\n }\n return blend[mode](bottom, top);\n };\n\n var blend_f = function (f) { return function (bottom,top) {\n var c0 = chroma$3(top).rgb();\n var c1 = chroma$3(bottom).rgb();\n return chroma$3.rgb(f(c0, c1));\n }; };\n\n var each = function (f) { return function (c0, c1) {\n var out = [];\n out[0] = f(c0[0], c1[0]);\n out[1] = f(c0[1], c1[1]);\n out[2] = f(c0[2], c1[2]);\n return out;\n }; };\n\n var normal = function (a) { return a; };\n var multiply = function (a,b) { return a * b / 255; };\n var darken = function (a,b) { return a > b ? b : a; };\n var lighten = function (a,b) { return a > b ? a : b; };\n var screen = function (a,b) { return 255 * (1 - (1-a/255) * (1-b/255)); };\n var overlay = function (a,b) { return b < 128 ? 2 * a * b / 255 : 255 * (1 - 2 * (1 - a / 255 ) * ( 1 - b / 255 )); };\n var burn = function (a,b) { return 255 * (1 - (1 - b / 255) / (a/255)); };\n var dodge = function (a,b) {\n if (a === 255) { return 255; }\n a = 255 * (b / 255) / (1 - a / 255);\n return a > 255 ? 255 : a\n };\n\n // # add = (a,b) ->\n // # if (a + b > 255) then 255 else a + b\n\n blend.normal = blend_f(each(normal));\n blend.multiply = blend_f(each(multiply));\n blend.screen = blend_f(each(screen));\n blend.overlay = blend_f(each(overlay));\n blend.darken = blend_f(each(darken));\n blend.lighten = blend_f(each(lighten));\n blend.dodge = blend_f(each(dodge));\n blend.burn = blend_f(each(burn));\n // blend.add = blend_f(each(add));\n\n var blend_1 = blend;\n\n // cubehelix interpolation\n // based on D.A. Green \"A colour scheme for the display of astronomical intensity images\"\n // http://astron-soc.in/bulletin/11June/289392011.pdf\n\n var type$1 = utils.type;\n var clip_rgb = utils.clip_rgb;\n var TWOPI = utils.TWOPI;\n var pow$2 = Math.pow;\n var sin$1 = Math.sin;\n var cos$1 = Math.cos;\n var chroma$2 = chroma_1;\n\n var cubehelix = function(start, rotations, hue, gamma, lightness) {\n if ( start === void 0 ) start=300;\n if ( rotations === void 0 ) rotations=-1.5;\n if ( hue === void 0 ) hue=1;\n if ( gamma === void 0 ) gamma=1;\n if ( lightness === void 0 ) lightness=[0,1];\n\n var dh = 0, dl;\n if (type$1(lightness) === 'array') {\n dl = lightness[1] - lightness[0];\n } else {\n dl = 0;\n lightness = [lightness, lightness];\n }\n\n var f = function(fract) {\n var a = TWOPI * (((start+120)/360) + (rotations * fract));\n var l = pow$2(lightness[0] + (dl * fract), gamma);\n var h = dh !== 0 ? hue[0] + (fract * dh) : hue;\n var amp = (h * l * (1-l)) / 2;\n var cos_a = cos$1(a);\n var sin_a = sin$1(a);\n var r = l + (amp * ((-0.14861 * cos_a) + (1.78277* sin_a)));\n var g = l + (amp * ((-0.29227 * cos_a) - (0.90649* sin_a)));\n var b = l + (amp * (+1.97294 * cos_a));\n return chroma$2(clip_rgb([r*255,g*255,b*255,1]));\n };\n\n f.start = function(s) {\n if ((s == null)) { return start; }\n start = s;\n return f;\n };\n\n f.rotations = function(r) {\n if ((r == null)) { return rotations; }\n rotations = r;\n return f;\n };\n\n f.gamma = function(g) {\n if ((g == null)) { return gamma; }\n gamma = g;\n return f;\n };\n\n f.hue = function(h) {\n if ((h == null)) { return hue; }\n hue = h;\n if (type$1(hue) === 'array') {\n dh = hue[1] - hue[0];\n if (dh === 0) { hue = hue[1]; }\n } else {\n dh = 0;\n }\n return f;\n };\n\n f.lightness = function(h) {\n if ((h == null)) { return lightness; }\n if (type$1(h) === 'array') {\n lightness = h;\n dl = h[1] - h[0];\n } else {\n lightness = [h,h];\n dl = 0;\n }\n return f;\n };\n\n f.scale = function () { return chroma$2.scale(f); };\n\n f.hue(hue);\n\n return f;\n };\n\n var Color$4 = Color_1;\n var digits = '0123456789abcdef';\n\n var floor$1 = Math.floor;\n var random = Math.random;\n\n var random_1 = function () {\n var code = '#';\n for (var i=0; i<6; i++) {\n code += digits.charAt(floor$1(random() * 16));\n }\n return new Color$4(code, 'hex');\n };\n\n var type = type$p;\n var log = Math.log;\n var pow$1 = Math.pow;\n var floor = Math.floor;\n var abs$1 = Math.abs;\n\n\n var analyze = function (data, key) {\n if ( key === void 0 ) key=null;\n\n var r = {\n min: Number.MAX_VALUE,\n max: Number.MAX_VALUE*-1,\n sum: 0,\n values: [],\n count: 0\n };\n if (type(data) === 'object') {\n data = Object.values(data);\n }\n data.forEach(function (val) {\n if (key && type(val) === 'object') { val = val[key]; }\n if (val !== undefined && val !== null && !isNaN(val)) {\n r.values.push(val);\n r.sum += val;\n if (val < r.min) { r.min = val; }\n if (val > r.max) { r.max = val; }\n r.count += 1;\n }\n });\n\n r.domain = [r.min, r.max];\n\n r.limits = function (mode, num) { return limits(r, mode, num); };\n\n return r;\n };\n\n\n var limits = function (data, mode, num) {\n if ( mode === void 0 ) mode='equal';\n if ( num === void 0 ) num=7;\n\n if (type(data) == 'array') {\n data = analyze(data);\n }\n var min = data.min;\n var max = data.max;\n var values = data.values.sort(function (a,b) { return a-b; });\n\n if (num === 1) { return [min,max]; }\n\n var limits = [];\n\n if (mode.substr(0,1) === 'c') { // continuous\n limits.push(min);\n limits.push(max);\n }\n\n if (mode.substr(0,1) === 'e') { // equal interval\n limits.push(min);\n for (var i=1; i 0');\n }\n var min_log = Math.LOG10E * log(min);\n var max_log = Math.LOG10E * log(max);\n limits.push(min);\n for (var i$1=1; i$1 pb\n var pr = p - pb;\n limits.push((values[pb]*(1-pr)) + (values[pb+1]*pr));\n }\n }\n limits.push(max);\n\n }\n\n else if (mode.substr(0,1) === 'k') { // k-means clustering\n /*\n implementation based on\n http://code.google.com/p/figue/source/browse/trunk/figue.js#336\n simplified for 1-d input values\n */\n var cluster;\n var n = values.length;\n var assignments = new Array(n);\n var clusterSizes = new Array(num);\n var repeat = true;\n var nb_iters = 0;\n var centroids = null;\n\n // get seed values\n centroids = [];\n centroids.push(min);\n for (var i$3=1; i$3 200) {\n repeat = false;\n }\n }\n\n // finished k-means clustering\n // the next part is borrowed from gabrielflor.it\n var kClusters = {};\n for (var j$5=0; j$5 l2 ? (l1 + 0.05) / (l2 + 0.05) : (l2 + 0.05) / (l1 + 0.05);\n };\n\n var Color$2 = Color_1;\n var sqrt = Math.sqrt;\n var pow = Math.pow;\n var min = Math.min;\n var max = Math.max;\n var atan2 = Math.atan2;\n var abs = Math.abs;\n var cos = Math.cos;\n var sin = Math.sin;\n var exp = Math.exp;\n var PI = Math.PI;\n\n var deltaE = function(a, b, Kl, Kc, Kh) {\n if ( Kl === void 0 ) Kl=1;\n if ( Kc === void 0 ) Kc=1;\n if ( Kh === void 0 ) Kh=1;\n\n // Delta E (CIE 2000)\n // see http://www.brucelindbloom.com/index.html?Eqn_DeltaE_CIE2000.html\n var rad2deg = function(rad) {\n return 360 * rad / (2 * PI);\n };\n var deg2rad = function(deg) {\n return (2 * PI * deg) / 360;\n };\n a = new Color$2(a);\n b = new Color$2(b);\n var ref = Array.from(a.lab());\n var L1 = ref[0];\n var a1 = ref[1];\n var b1 = ref[2];\n var ref$1 = Array.from(b.lab());\n var L2 = ref$1[0];\n var a2 = ref$1[1];\n var b2 = ref$1[2];\n var avgL = (L1 + L2)/2;\n var C1 = sqrt(pow(a1, 2) + pow(b1, 2));\n var C2 = sqrt(pow(a2, 2) + pow(b2, 2));\n var avgC = (C1 + C2)/2;\n var G = 0.5*(1-sqrt(pow(avgC, 7)/(pow(avgC, 7) + pow(25, 7))));\n var a1p = a1*(1+G);\n var a2p = a2*(1+G);\n var C1p = sqrt(pow(a1p, 2) + pow(b1, 2));\n var C2p = sqrt(pow(a2p, 2) + pow(b2, 2));\n var avgCp = (C1p + C2p)/2;\n var arctan1 = rad2deg(atan2(b1, a1p));\n var arctan2 = rad2deg(atan2(b2, a2p));\n var h1p = arctan1 >= 0 ? arctan1 : arctan1 + 360;\n var h2p = arctan2 >= 0 ? arctan2 : arctan2 + 360;\n var avgHp = abs(h1p - h2p) > 180 ? (h1p + h2p + 360)/2 : (h1p + h2p)/2;\n var T = 1 - 0.17*cos(deg2rad(avgHp - 30)) + 0.24*cos(deg2rad(2*avgHp)) + 0.32*cos(deg2rad(3*avgHp + 6)) - 0.2*cos(deg2rad(4*avgHp - 63));\n var deltaHp = h2p - h1p;\n deltaHp = abs(deltaHp) <= 180 ? deltaHp : h2p <= h1p ? deltaHp + 360 : deltaHp - 360;\n deltaHp = 2*sqrt(C1p*C2p)*sin(deg2rad(deltaHp)/2);\n var deltaL = L2 - L1;\n var deltaCp = C2p - C1p; \n var sl = 1 + (0.015*pow(avgL - 50, 2))/sqrt(20 + pow(avgL - 50, 2));\n var sc = 1 + 0.045*avgCp;\n var sh = 1 + 0.015*avgCp*T;\n var deltaTheta = 30*exp(-pow((avgHp - 275)/25, 2));\n var Rc = 2*sqrt(pow(avgCp, 7)/(pow(avgCp, 7) + pow(25, 7)));\n var Rt = -Rc*sin(2*deg2rad(deltaTheta));\n var result = sqrt(pow(deltaL/(Kl*sl), 2) + pow(deltaCp/(Kc*sc), 2) + pow(deltaHp/(Kh*sh), 2) + Rt*(deltaCp/(Kc*sc))*(deltaHp/(Kh*sh)));\n return max(0, min(100, result));\n };\n\n var Color$1 = Color_1;\n\n // simple Euclidean distance\n var distance = function(a, b, mode) {\n if ( mode === void 0 ) mode='lab';\n\n // Delta E (CIE 1976)\n // see http://www.brucelindbloom.com/index.html?Equations.html\n a = new Color$1(a);\n b = new Color$1(b);\n var l1 = a.get(mode);\n var l2 = b.get(mode);\n var sum_sq = 0;\n for (var i in l1) {\n var d = (l1[i] || 0) - (l2[i] || 0);\n sum_sq += d*d;\n }\n return Math.sqrt(sum_sq);\n };\n\n var Color = Color_1;\n\n var valid = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n try {\n new (Function.prototype.bind.apply( Color, [ null ].concat( args) ));\n return true;\n } catch (e) {\n return false;\n }\n };\n\n // some pre-defined color scales:\n var chroma$1 = chroma_1;\n\n var scale = scale$2;\n\n var scales = {\n \tcool: function cool() { return scale([chroma$1.hsl(180,1,.9), chroma$1.hsl(250,.7,.4)]) },\n \thot: function hot() { return scale(['#000','#f00','#ff0','#fff']).mode('rgb') }\n };\n\n /**\n ColorBrewer colors for chroma.js\n\n Copyright (c) 2002 Cynthia Brewer, Mark Harrower, and The\n Pennsylvania State University.\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 http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software distributed\n under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n CONDITIONS OF ANY KIND, either express or implied. See the License for the\n specific language governing permissions and limitations under the License.\n */\n\n var colorbrewer = {\n // sequential\n OrRd: ['#fff7ec', '#fee8c8', '#fdd49e', '#fdbb84', '#fc8d59', '#ef6548', '#d7301f', '#b30000', '#7f0000'],\n PuBu: ['#fff7fb', '#ece7f2', '#d0d1e6', '#a6bddb', '#74a9cf', '#3690c0', '#0570b0', '#045a8d', '#023858'],\n BuPu: ['#f7fcfd', '#e0ecf4', '#bfd3e6', '#9ebcda', '#8c96c6', '#8c6bb1', '#88419d', '#810f7c', '#4d004b'],\n Oranges: ['#fff5eb', '#fee6ce', '#fdd0a2', '#fdae6b', '#fd8d3c', '#f16913', '#d94801', '#a63603', '#7f2704'],\n BuGn: ['#f7fcfd', '#e5f5f9', '#ccece6', '#99d8c9', '#66c2a4', '#41ae76', '#238b45', '#006d2c', '#00441b'],\n YlOrBr: ['#ffffe5', '#fff7bc', '#fee391', '#fec44f', '#fe9929', '#ec7014', '#cc4c02', '#993404', '#662506'],\n YlGn: ['#ffffe5', '#f7fcb9', '#d9f0a3', '#addd8e', '#78c679', '#41ab5d', '#238443', '#006837', '#004529'],\n Reds: ['#fff5f0', '#fee0d2', '#fcbba1', '#fc9272', '#fb6a4a', '#ef3b2c', '#cb181d', '#a50f15', '#67000d'],\n RdPu: ['#fff7f3', '#fde0dd', '#fcc5c0', '#fa9fb5', '#f768a1', '#dd3497', '#ae017e', '#7a0177', '#49006a'],\n Greens: ['#f7fcf5', '#e5f5e0', '#c7e9c0', '#a1d99b', '#74c476', '#41ab5d', '#238b45', '#006d2c', '#00441b'],\n YlGnBu: ['#ffffd9', '#edf8b1', '#c7e9b4', '#7fcdbb', '#41b6c4', '#1d91c0', '#225ea8', '#253494', '#081d58'],\n Purples: ['#fcfbfd', '#efedf5', '#dadaeb', '#bcbddc', '#9e9ac8', '#807dba', '#6a51a3', '#54278f', '#3f007d'],\n GnBu: ['#f7fcf0', '#e0f3db', '#ccebc5', '#a8ddb5', '#7bccc4', '#4eb3d3', '#2b8cbe', '#0868ac', '#084081'],\n Greys: ['#ffffff', '#f0f0f0', '#d9d9d9', '#bdbdbd', '#969696', '#737373', '#525252', '#252525', '#000000'],\n YlOrRd: ['#ffffcc', '#ffeda0', '#fed976', '#feb24c', '#fd8d3c', '#fc4e2a', '#e31a1c', '#bd0026', '#800026'],\n PuRd: ['#f7f4f9', '#e7e1ef', '#d4b9da', '#c994c7', '#df65b0', '#e7298a', '#ce1256', '#980043', '#67001f'],\n Blues: ['#f7fbff', '#deebf7', '#c6dbef', '#9ecae1', '#6baed6', '#4292c6', '#2171b5', '#08519c', '#08306b'],\n PuBuGn: ['#fff7fb', '#ece2f0', '#d0d1e6', '#a6bddb', '#67a9cf', '#3690c0', '#02818a', '#016c59', '#014636'],\n Viridis: ['#440154', '#482777', '#3f4a8a', '#31678e', '#26838f', '#1f9d8a', '#6cce5a', '#b6de2b', '#fee825'],\n\n // diverging\n\n Spectral: ['#9e0142', '#d53e4f', '#f46d43', '#fdae61', '#fee08b', '#ffffbf', '#e6f598', '#abdda4', '#66c2a5', '#3288bd', '#5e4fa2'],\n RdYlGn: ['#a50026', '#d73027', '#f46d43', '#fdae61', '#fee08b', '#ffffbf', '#d9ef8b', '#a6d96a', '#66bd63', '#1a9850', '#006837'],\n RdBu: ['#67001f', '#b2182b', '#d6604d', '#f4a582', '#fddbc7', '#f7f7f7', '#d1e5f0', '#92c5de', '#4393c3', '#2166ac', '#053061'],\n PiYG: ['#8e0152', '#c51b7d', '#de77ae', '#f1b6da', '#fde0ef', '#f7f7f7', '#e6f5d0', '#b8e186', '#7fbc41', '#4d9221', '#276419'],\n PRGn: ['#40004b', '#762a83', '#9970ab', '#c2a5cf', '#e7d4e8', '#f7f7f7', '#d9f0d3', '#a6dba0', '#5aae61', '#1b7837', '#00441b'],\n RdYlBu: ['#a50026', '#d73027', '#f46d43', '#fdae61', '#fee090', '#ffffbf', '#e0f3f8', '#abd9e9', '#74add1', '#4575b4', '#313695'],\n BrBG: ['#543005', '#8c510a', '#bf812d', '#dfc27d', '#f6e8c3', '#f5f5f5', '#c7eae5', '#80cdc1', '#35978f', '#01665e', '#003c30'],\n RdGy: ['#67001f', '#b2182b', '#d6604d', '#f4a582', '#fddbc7', '#ffffff', '#e0e0e0', '#bababa', '#878787', '#4d4d4d', '#1a1a1a'],\n PuOr: ['#7f3b08', '#b35806', '#e08214', '#fdb863', '#fee0b6', '#f7f7f7', '#d8daeb', '#b2abd2', '#8073ac', '#542788', '#2d004b'],\n\n // qualitative\n\n Set2: ['#66c2a5', '#fc8d62', '#8da0cb', '#e78ac3', '#a6d854', '#ffd92f', '#e5c494', '#b3b3b3'],\n Accent: ['#7fc97f', '#beaed4', '#fdc086', '#ffff99', '#386cb0', '#f0027f', '#bf5b17', '#666666'],\n Set1: ['#e41a1c', '#377eb8', '#4daf4a', '#984ea3', '#ff7f00', '#ffff33', '#a65628', '#f781bf', '#999999'],\n Set3: ['#8dd3c7', '#ffffb3', '#bebada', '#fb8072', '#80b1d3', '#fdb462', '#b3de69', '#fccde5', '#d9d9d9', '#bc80bd', '#ccebc5', '#ffed6f'],\n Dark2: ['#1b9e77', '#d95f02', '#7570b3', '#e7298a', '#66a61e', '#e6ab02', '#a6761d', '#666666'],\n Paired: ['#a6cee3', '#1f78b4', '#b2df8a', '#33a02c', '#fb9a99', '#e31a1c', '#fdbf6f', '#ff7f00', '#cab2d6', '#6a3d9a', '#ffff99', '#b15928'],\n Pastel2: ['#b3e2cd', '#fdcdac', '#cbd5e8', '#f4cae4', '#e6f5c9', '#fff2ae', '#f1e2cc', '#cccccc'],\n Pastel1: ['#fbb4ae', '#b3cde3', '#ccebc5', '#decbe4', '#fed9a6', '#ffffcc', '#e5d8bd', '#fddaec', '#f2f2f2'],\n };\n\n // add lowercase aliases for case-insensitive matches\n for (var i = 0, list = Object.keys(colorbrewer); i < list.length; i += 1) {\n var key = list[i];\n\n colorbrewer[key.toLowerCase()] = colorbrewer[key];\n }\n\n var colorbrewer_1 = colorbrewer;\n\n var chroma = chroma_1;\n\n // feel free to comment out anything to rollup\n // a smaller chroma.js built\n\n // io --> convert colors\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n // operators --> modify existing Colors\n\n\n\n\n\n\n\n\n\n\n // interpolators\n\n\n\n\n\n\n\n\n\n\n\n\n // generators -- > create new colors\n chroma.average = average;\n chroma.bezier = bezier_1;\n chroma.blend = blend_1;\n chroma.cubehelix = cubehelix;\n chroma.mix = chroma.interpolate = mix$1;\n chroma.random = random_1;\n chroma.scale = scale$2;\n\n // other utility methods\n chroma.analyze = analyze_1.analyze;\n chroma.contrast = contrast;\n chroma.deltaE = deltaE;\n chroma.distance = distance;\n chroma.limits = analyze_1.limits;\n chroma.valid = valid;\n\n // scale\n chroma.scales = scales;\n\n // colors\n chroma.colors = w3cx11_1;\n chroma.brewer = colorbrewer_1;\n\n var chroma_js = chroma;\n\n return chroma_js;\n\n}));\n","import GestureHandler from '../handlers/GestureHandler';\nimport { Config, Handler } from '../interfaces';\n\nexport default class InteractionManager {\n private static instance: InteractionManager;\n private readonly waitForRelations: Map = new Map();\n private readonly simultaneousRelations: Map = new Map();\n\n // Private becaues of singleton\n // eslint-disable-next-line no-useless-constructor, @typescript-eslint/no-empty-function\n private constructor() {}\n\n public configureInteractions(handler: GestureHandler, config: Config) {\n this.dropRelationsForHandlerWithTag(handler.getTag());\n\n if (config.waitFor) {\n const waitFor: number[] = [];\n config.waitFor.forEach((otherHandler: Handler): void => {\n // New API reference\n if (typeof otherHandler === 'number') {\n waitFor.push(otherHandler);\n } else {\n // Old API reference\n waitFor.push(otherHandler.handlerTag);\n }\n });\n\n this.waitForRelations.set(handler.getTag(), waitFor);\n }\n\n if (config.simultaneousHandlers) {\n const simultaneousHandlers: number[] = [];\n config.simultaneousHandlers.forEach((otherHandler: Handler): void => {\n if (typeof otherHandler === 'number') {\n simultaneousHandlers.push(otherHandler);\n } else {\n simultaneousHandlers.push(otherHandler.handlerTag);\n }\n });\n\n this.simultaneousRelations.set(handler.getTag(), simultaneousHandlers);\n }\n }\n\n public shouldWaitForHandlerFailure(\n handler: GestureHandler,\n otherHandler: GestureHandler\n ): boolean {\n const waitFor: number[] | undefined = this.waitForRelations.get(\n handler.getTag()\n );\n if (!waitFor) {\n return false;\n }\n\n let shouldWait = false;\n\n waitFor.forEach((tag: number): void => {\n if (tag === otherHandler.getTag()) {\n shouldWait = true;\n return; //Returns from callback\n }\n });\n\n return shouldWait;\n }\n\n public shouldRecognizeSimultaneously(\n handler: GestureHandler,\n otherHandler: GestureHandler\n ): boolean {\n const simultaneousHandlers: number[] | undefined =\n this.simultaneousRelations.get(handler.getTag());\n if (!simultaneousHandlers) {\n return false;\n }\n\n let shouldRecognizeSimultaneously = false;\n\n simultaneousHandlers.forEach((tag: number): void => {\n if (tag === otherHandler.getTag()) {\n shouldRecognizeSimultaneously = true;\n return;\n }\n });\n\n return shouldRecognizeSimultaneously;\n }\n\n public shouldRequireHandlerToWaitForFailure(\n _handler: GestureHandler,\n _otherHandler: GestureHandler\n ): boolean {\n //TODO: Implement logic\n return false;\n }\n\n public shouldHandlerBeCancelledBy(\n _handler: GestureHandler,\n _otherHandler: GestureHandler\n ): boolean {\n //TODO: Implement logic\n return false;\n }\n\n public dropRelationsForHandlerWithTag(handlerTag: number): void {\n this.waitForRelations.delete(handlerTag);\n this.simultaneousRelations.delete(handlerTag);\n }\n\n public reset() {\n this.waitForRelations.clear();\n this.simultaneousRelations.clear();\n }\n\n public static getInstance(): InteractionManager {\n if (!this.instance) {\n this.instance = new InteractionManager();\n }\n\n return this.instance;\n }\n}\n","import { UserSelect } from '../handlers/gestureHandlerCommon';\nimport { Directions } from '../Directions';\nimport { State } from '../State';\n\nexport interface HitSlop {\n left?: number;\n right?: number;\n top?: number;\n bottom?: number;\n horizontal?: number;\n vertical?: number;\n width?: number;\n height?: number;\n}\n\nexport interface Handler {\n handlerTag: number;\n}\n\ntype ConfigArgs =\n | number\n | boolean\n | HitSlop\n | UserSelect\n | Directions\n | Handler[]\n | null\n | undefined;\n\nexport interface Config extends Record {\n enabled?: boolean;\n simultaneousHandlers?: Handler[] | null;\n waitFor?: Handler[] | null;\n hitSlop?: HitSlop;\n shouldCancelWhenOutside?: boolean;\n userSelect?: UserSelect;\n\n activateAfterLongPress?: 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 minPointers?: number;\n maxPointers?: number;\n minDist?: number;\n minDistSq?: number;\n minVelocity?: number;\n minVelocityX?: number;\n minVelocityY?: number;\n minVelocitySq?: number;\n maxDist?: number;\n maxDistSq?: number;\n numberOfPointers?: number;\n minDurationMs?: number;\n numberOfTaps?: number;\n maxDurationMs?: number;\n maxDelayMs?: number;\n maxDeltaX?: number;\n maxDeltaY?: number;\n shouldActivateOnStart?: boolean;\n disallowInterruption?: boolean;\n direction?: Directions;\n}\n\ntype NativeEventArgs = number | State | boolean | undefined;\ninterface NativeEvent extends Record {\n numberOfPointers: number;\n state: State;\n pointerInside: boolean | undefined;\n handlerTag: number;\n target: number;\n oldState?: State;\n}\n\nexport interface PointerData {\n id: number;\n x: number;\n y: number;\n absoluteX: number;\n absoluteY: number;\n}\n\ntype TouchNativeArgs = number | State | TouchEventType | PointerData[];\n\ninterface NativeTouchEvent extends Record {\n handlerTag: number;\n state: State;\n eventType: TouchEventType;\n changedTouches: PointerData[];\n allTouches: PointerData[];\n numberOfTouches: number;\n}\n\nexport interface ResultEvent extends Record {\n nativeEvent: NativeEvent;\n timeStamp: number;\n}\n\nexport interface ResultTouchEvent\n extends Record {\n nativeEvent: NativeTouchEvent;\n timeStamp: number;\n}\n\nexport interface PropsRef {\n onGestureHandlerEvent: () => void;\n onGestureHandlerStateChange: () => void;\n}\n\nexport interface AdaptedEvent {\n x: number;\n y: number;\n offsetX: number;\n offsetY: number;\n pointerId: number;\n eventType: EventTypes;\n pointerType: PointerType;\n buttons: number;\n time: number;\n allTouches?: TouchList;\n changedTouches?: TouchList;\n touchEventType?: TouchEventType;\n}\n\nexport enum MouseButtons {\n NONE,\n LEFT,\n RIGHT,\n LEFT_RIGHT,\n SCROLL,\n SCROLL_LEFT,\n SCROLL_RIGHT,\n SCROLL_LEFT_RIGHT,\n}\n\nexport enum EventTypes {\n DOWN,\n ADDITIONAL_POINTER_DOWN,\n UP,\n ADDITIONAL_POINTER_UP,\n MOVE,\n ENTER,\n OUT,\n CANCEL,\n}\n\nexport enum TouchEventType {\n UNDETERMINED,\n DOWN,\n MOVE,\n UP,\n CANCELLED,\n}\n\nexport enum PointerType {\n NONE = 'none',\n MOUSE = 'mouse',\n TOUCH = 'touch',\n PEN = 'pen',\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 { AdaptedEvent } from '../interfaces';\n\nexport interface TrackerElement {\n lastX: number;\n lastY: number;\n\n timeStamp: number;\n\n velocityX: number;\n velocityY: number;\n}\n\n// Used to scale velocity so that it is similar to velocity in Android/iOS\nconst VELOCITY_FACTOR = 0.2;\nconst MAX_POINTERS = 20;\n\nexport default class PointerTracker {\n private trackedPointers: Map = new Map<\n number,\n TrackerElement\n >();\n\n private touchEventsIds: Map = new Map();\n\n private lastMovedPointerId: number;\n\n private cachedAverages: { x: number; y: number } = { x: 0, y: 0 };\n\n public constructor() {\n this.lastMovedPointerId = NaN;\n\n for (let i = 0; i < MAX_POINTERS; ++i) {\n this.touchEventsIds.set(i, NaN);\n }\n }\n\n public addToTracker(event: AdaptedEvent): void {\n if (this.trackedPointers.has(event.pointerId)) {\n return;\n }\n\n this.lastMovedPointerId = event.pointerId;\n\n const newElement: TrackerElement = {\n lastX: event.x,\n lastY: event.y,\n timeStamp: event.time,\n velocityX: 0,\n velocityY: 0,\n };\n\n this.trackedPointers.set(event.pointerId, newElement);\n this.mapTouchEventId(event.pointerId);\n\n this.cachedAverages = {\n x: this.getLastAvgX(),\n y: this.getLastAvgY(),\n };\n }\n\n public removeFromTracker(pointerId: number): void {\n this.trackedPointers.delete(pointerId);\n this.removeMappedTouchId(pointerId);\n }\n\n public track(event: AdaptedEvent): void {\n const element: TrackerElement = this.trackedPointers.get(\n event.pointerId\n ) as TrackerElement;\n\n if (!element) {\n return;\n }\n\n this.lastMovedPointerId = event.pointerId;\n\n const dx = event.x - element.lastX;\n const dy = event.y - element.lastY;\n const dt = event.time - element.timeStamp;\n\n element.velocityX = (dx / dt) * 1000 * VELOCITY_FACTOR;\n element.velocityY = (dy / dt) * 1000 * VELOCITY_FACTOR;\n\n element.lastX = event.x;\n element.lastY = event.y;\n\n this.trackedPointers.set(event.pointerId, element);\n\n const avgX: number = this.getLastAvgX();\n const avgY: number = this.getLastAvgY();\n\n this.cachedAverages = {\n x: avgX,\n y: avgY,\n };\n }\n\n //Mapping TouchEvents ID\n private mapTouchEventId(id: number): void {\n for (const [mappedId, touchId] of this.touchEventsIds) {\n if (isNaN(touchId)) {\n this.touchEventsIds.set(mappedId, id);\n break;\n }\n }\n }\n\n private removeMappedTouchId(id: number): void {\n const mappedId: number = this.getMappedTouchEventId(id);\n if (!isNaN(mappedId)) {\n this.touchEventsIds.set(mappedId, NaN);\n }\n }\n\n public getMappedTouchEventId(touchEventId: number): number {\n for (const [key, value] of this.touchEventsIds.entries()) {\n if (value === touchEventId) {\n return key;\n }\n }\n\n return NaN;\n }\n\n public getVelocityX(pointerId: number): number {\n return this.trackedPointers.get(pointerId)?.velocityX as number;\n }\n public getVelocityY(pointerId: number): number {\n return this.trackedPointers.get(pointerId)?.velocityY as number;\n }\n\n /**\n * Returns X coordinate of last moved pointer\n */\n public getLastX(): number;\n\n /**\n *\n * @param pointerId\n * Returns X coordinate of given pointer\n */\n // eslint-disable-next-line @typescript-eslint/unified-signatures\n public getLastX(pointerId: number): number;\n\n public getLastX(pointerId?: number): number {\n if (pointerId !== undefined) {\n return this.trackedPointers.get(pointerId)?.lastX as number;\n } else {\n return this.trackedPointers.get(this.lastMovedPointerId)?.lastX as number;\n }\n }\n\n /**\n * Returns Y coordinate of last moved pointer\n */\n public getLastY(): number;\n\n /**\n *\n * @param pointerId\n * Returns Y coordinate of given pointer\n */\n // eslint-disable-next-line @typescript-eslint/unified-signatures\n public getLastY(pointerId: number): number;\n\n public getLastY(pointerId?: number): number {\n if (pointerId !== undefined) {\n return this.trackedPointers.get(pointerId)?.lastY as number;\n } else {\n return this.trackedPointers.get(this.lastMovedPointerId)?.lastY as number;\n }\n }\n\n // Some handlers use these methods to send average values in native event.\n // This may happen when pointers have already been removed from tracker (i.e. pointerup event).\n // In situation when NaN would be sent as a response, we return cached value.\n // That prevents handlers from crashing\n public getLastAvgX(): number {\n const avgX: number = this.getSumX() / this.trackedPointers.size;\n return isNaN(avgX) ? this.cachedAverages.x : avgX;\n }\n public getLastAvgY(): number {\n const avgY: number = this.getSumY() / this.trackedPointers.size;\n return isNaN(avgY) ? this.cachedAverages.y : avgY;\n }\n public getSumX(ignoredPointer?: number): number {\n let sumX = 0;\n\n this.trackedPointers.forEach((value, key) => {\n if (key !== ignoredPointer) {\n sumX += value.lastX;\n }\n });\n\n return sumX;\n }\n public getSumY(ignoredPointer?: number): number {\n let sumY = 0;\n\n this.trackedPointers.forEach((value, key) => {\n if (key !== ignoredPointer) {\n sumY += value.lastY;\n }\n });\n\n return sumY;\n }\n public getTrackedPointersCount(): number {\n return this.trackedPointers.size;\n }\n public getTrackedPointersID(): number[] {\n const keys: number[] = [];\n\n this.trackedPointers.forEach((_value, key) => {\n keys.push(key);\n });\n\n return keys;\n }\n\n public getData(): Map {\n return this.trackedPointers;\n }\n\n public resetTracker(): void {\n this.trackedPointers.clear();\n this.lastMovedPointerId = NaN;\n\n for (let i = 0; i < MAX_POINTERS; ++i) {\n this.touchEventsIds.set(i, NaN);\n }\n }\n\n public static shareCommonPointers(\n stPointers: number[],\n ndPointers: number[]\n ): boolean {\n return stPointers.some((pointerId) => ndPointers.includes(pointerId));\n }\n}\n","import { State } from '../../State';\nimport { PointerType } from '../interfaces';\n\nimport GestureHandler from '../handlers/GestureHandler';\nimport PointerTracker from './PointerTracker';\nimport { isPointerInBounds } from '../utils';\n\nexport default class GestureHandlerOrchestrator {\n private static instance: GestureHandlerOrchestrator;\n\n private gestureHandlers: GestureHandler[] = [];\n private awaitingHandlers: GestureHandler[] = [];\n private handlersToCancel: GestureHandler[] = [];\n\n private handlingChangeSemaphore = 0;\n private activationIndex = 0;\n\n // Private beacuse of Singleton\n // eslint-disable-next-line no-useless-constructor, @typescript-eslint/no-empty-function\n private constructor() {}\n\n private scheduleFinishedHandlersCleanup(): void {\n if (this.handlingChangeSemaphore === 0) {\n this.cleanupFinishedHandlers();\n }\n }\n\n private cleanHandler(handler: GestureHandler): void {\n handler.reset();\n handler.setActive(false);\n handler.setAwaiting(false);\n handler.setActivationIndex(Number.MAX_VALUE);\n }\n\n public removeHandlerFromOrchestrator(handler: GestureHandler): void {\n this.gestureHandlers.splice(this.gestureHandlers.indexOf(handler), 1);\n this.awaitingHandlers.splice(this.awaitingHandlers.indexOf(handler), 1);\n this.handlersToCancel.splice(this.handlersToCancel.indexOf(handler), 1);\n }\n\n private cleanupFinishedHandlers(): void {\n for (let i = this.gestureHandlers.length - 1; i >= 0; --i) {\n const handler = this.gestureHandlers[i];\n\n if (!handler) {\n continue;\n }\n if (this.isFinished(handler.getState()) && !handler.isAwaiting()) {\n this.gestureHandlers.splice(i, 1);\n\n this.cleanHandler(handler);\n }\n }\n }\n\n private hasOtherHandlerToWaitFor(handler: GestureHandler): boolean {\n let hasToWait = false;\n this.gestureHandlers.forEach((otherHandler) => {\n if (\n otherHandler &&\n !this.isFinished(otherHandler.getState()) &&\n this.shouldHandlerWaitForOther(handler, otherHandler)\n ) {\n hasToWait = true;\n return;\n }\n });\n\n return hasToWait;\n }\n\n private tryActivate(handler: GestureHandler): void {\n if (this.hasOtherHandlerToWaitFor(handler)) {\n this.addAwaitingHandler(handler);\n } else if (\n handler.getState() !== State.CANCELLED &&\n handler.getState() !== State.FAILED\n ) {\n if (this.shouldActivate(handler)) {\n this.makeActive(handler);\n } else {\n switch (handler.getState()) {\n case State.ACTIVE:\n handler.fail();\n break;\n case State.BEGAN:\n handler.cancel();\n }\n }\n }\n }\n\n private shouldActivate(handler: GestureHandler): boolean {\n for (const otherHandler of this.gestureHandlers) {\n if (this.shouldHandlerBeCancelledBy(handler, otherHandler)) {\n return false;\n }\n }\n\n return true;\n }\n\n private cleanupAwaitingHandlers(handler: GestureHandler): void {\n for (let i = 0; i < this.awaitingHandlers.length; ++i) {\n if (\n !this.awaitingHandlers[i].isAwaiting() &&\n this.shouldHandlerWaitForOther(this.awaitingHandlers[i], handler)\n ) {\n this.cleanHandler(this.awaitingHandlers[i]);\n this.awaitingHandlers.splice(i, 1);\n }\n }\n }\n\n public onHandlerStateChange(\n handler: GestureHandler,\n newState: State,\n oldState: State,\n sendIfDisabled?: boolean\n ): void {\n if (!handler.isEnabled() && !sendIfDisabled) {\n return;\n }\n\n this.handlingChangeSemaphore += 1;\n\n if (this.isFinished(newState)) {\n this.awaitingHandlers.forEach((otherHandler) => {\n if (this.shouldHandlerWaitForOther(otherHandler, handler)) {\n if (newState === State.END) {\n otherHandler?.cancel();\n if (otherHandler.getState() === State.END) {\n // Handle edge case, where discrete gestures end immediately after activation thus\n // their state is set to END and when the gesture they are waiting for activates they\n // should be cancelled, however `cancel` was never sent as gestures were already in the END state.\n // Send synthetic BEGAN -> CANCELLED to properly handle JS logic\n otherHandler.sendEvent(State.CANCELLED, State.BEGAN);\n }\n otherHandler?.setAwaiting(false);\n } else {\n this.tryActivate(otherHandler);\n }\n }\n });\n }\n\n if (newState === State.ACTIVE) {\n this.tryActivate(handler);\n } else if (oldState === State.ACTIVE || oldState === State.END) {\n if (handler.isActive()) {\n handler.sendEvent(newState, oldState);\n } else if (\n oldState === State.ACTIVE &&\n (newState === State.CANCELLED || newState === State.FAILED)\n ) {\n handler.sendEvent(newState, State.BEGAN);\n }\n } else if (\n oldState !== State.UNDETERMINED ||\n newState !== State.CANCELLED\n ) {\n handler.sendEvent(newState, oldState);\n }\n\n this.handlingChangeSemaphore -= 1;\n\n this.scheduleFinishedHandlersCleanup();\n\n if (this.awaitingHandlers.indexOf(handler) < 0) {\n this.cleanupAwaitingHandlers(handler);\n }\n }\n\n private makeActive(handler: GestureHandler): void {\n const currentState = handler.getState();\n\n handler.setActive(true);\n handler.setShouldResetProgress(true);\n handler.setActivationIndex(this.activationIndex++);\n\n this.gestureHandlers.forEach((otherHandler) => {\n // Order of arguments is correct - we check whether current handler should cancel existing handlers\n\n if (this.shouldHandlerBeCancelledBy(otherHandler, handler)) {\n this.handlersToCancel.push(otherHandler);\n }\n });\n\n for (let i = this.handlersToCancel.length - 1; i >= 0; --i) {\n this.handlersToCancel[i]?.cancel();\n }\n this.awaitingHandlers.forEach((otherHandler) => {\n if (this.shouldHandlerBeCancelledBy(otherHandler, handler)) {\n otherHandler?.cancel();\n otherHandler?.setAwaiting(true);\n }\n });\n\n handler.sendEvent(State.ACTIVE, State.BEGAN);\n\n if (currentState !== State.ACTIVE) {\n handler.sendEvent(State.END, State.ACTIVE);\n if (currentState !== State.END) {\n handler.sendEvent(State.UNDETERMINED, State.END);\n }\n }\n\n if (handler.isAwaiting()) {\n handler.setAwaiting(false);\n for (let i = 0; i < this.awaitingHandlers.length; ++i) {\n if (this.awaitingHandlers[i] === handler) {\n this.awaitingHandlers.splice(i, 1);\n }\n }\n }\n\n this.handlersToCancel = [];\n }\n\n private addAwaitingHandler(handler: GestureHandler): void {\n let alreadyExists = false;\n\n this.awaitingHandlers.forEach((otherHandler) => {\n if (otherHandler === handler) {\n alreadyExists = true;\n return;\n }\n });\n\n if (alreadyExists) {\n return;\n }\n\n this.awaitingHandlers.push(handler);\n\n handler.setAwaiting(true);\n handler.setActivationIndex(this.activationIndex++);\n }\n\n public recordHandlerIfNotPresent(handler: GestureHandler): void {\n let alreadyExists = false;\n\n this.gestureHandlers.forEach((otherHandler) => {\n if (otherHandler === handler) {\n alreadyExists = true;\n return;\n }\n });\n\n if (alreadyExists) {\n return;\n }\n\n this.gestureHandlers.push(handler);\n\n handler.setActive(false);\n handler.setAwaiting(false);\n handler.setActivationIndex(Number.MAX_SAFE_INTEGER);\n }\n\n private shouldHandlerWaitForOther(\n handler: GestureHandler,\n otherHandler: GestureHandler\n ): boolean {\n return (\n handler !== otherHandler &&\n (handler.shouldWaitForHandlerFailure(otherHandler) ||\n otherHandler.shouldRequireToWaitForFailure(handler))\n );\n }\n\n private canRunSimultaneously(\n gh1: GestureHandler,\n gh2: GestureHandler\n ): boolean {\n return (\n gh1 === gh2 ||\n gh1.shouldRecognizeSimultaneously(gh2) ||\n gh2.shouldRecognizeSimultaneously(gh1)\n );\n }\n\n private shouldHandlerBeCancelledBy(\n handler: GestureHandler,\n otherHandler: GestureHandler\n ): boolean {\n if (this.canRunSimultaneously(handler, otherHandler)) {\n return false;\n }\n\n if (\n handler !== otherHandler &&\n (handler.isAwaiting() || handler.getState() === State.ACTIVE)\n ) {\n // For now it always returns false\n return handler.shouldBeCancelledByOther(otherHandler);\n }\n\n const handlerPointers: number[] = handler.getTrackedPointersID();\n const otherPointers: number[] = otherHandler.getTrackedPointersID();\n\n if (\n !PointerTracker.shareCommonPointers(handlerPointers, otherPointers) &&\n handler.getView() !== otherHandler.getView()\n ) {\n return this.checkOverlap(handler, otherHandler);\n }\n\n return true;\n }\n\n private checkOverlap(\n handler: GestureHandler,\n otherHandler: GestureHandler\n ): boolean {\n // If handlers don't have common pointers, default return value is false.\n // However, if at least on pointer overlaps with both handlers, we return true\n // This solves issue in overlapping parents example\n\n // TODO: Find better way to handle that issue, for example by activation order and handler cancelling\n\n const handlerPointers: number[] = handler.getTrackedPointersID();\n const otherPointers: number[] = otherHandler.getTrackedPointersID();\n\n let overlap = false;\n\n handlerPointers.forEach((pointer: number) => {\n const handlerX: number = handler.getTracker().getLastX(pointer);\n const handlerY: number = handler.getTracker().getLastY(pointer);\n\n if (\n isPointerInBounds(handler.getView(), { x: handlerX, y: handlerY }) &&\n isPointerInBounds(otherHandler.getView(), { x: handlerX, y: handlerY })\n ) {\n overlap = true;\n }\n });\n\n otherPointers.forEach((pointer: number) => {\n const otherX: number = otherHandler.getTracker().getLastX(pointer);\n const otherY: number = otherHandler.getTracker().getLastY(pointer);\n\n if (\n isPointerInBounds(handler.getView(), { x: otherX, y: otherY }) &&\n isPointerInBounds(otherHandler.getView(), { x: otherX, y: otherY })\n ) {\n overlap = true;\n }\n });\n\n return overlap;\n }\n\n private isFinished(state: State): boolean {\n return (\n state === State.END || state === State.FAILED || state === State.CANCELLED\n );\n }\n\n // This function is called when handler receives touchdown event\n // If handler is using mouse or pen as a pointer and any handler receives touch event,\n // mouse/pen event dissappears - it doesn't send onPointerCancel nor onPointerUp (and others)\n // This became a problem because handler was left at active state without any signal to end or fail\n // To handle this, when new touch event is received, we loop through active handlers and check which type of\n // pointer they're using. If there are any handler with mouse/pen as a pointer, we cancel them\n public cancelMouseAndPenGestures(currentHandler: GestureHandler): void {\n this.gestureHandlers.forEach((handler: GestureHandler) => {\n if (\n handler.getPointerType() !== PointerType.MOUSE &&\n handler.getPointerType() !== PointerType.PEN\n ) {\n return;\n }\n\n if (handler !== currentHandler) {\n handler.cancel();\n } else {\n // Handler that received touch event should have its pointer tracker reset\n // This allows handler to smoothly change from mouse/pen to touch\n // The drawback is, that when we try to use mouse/pen one more time, it doesn't send onPointerDown at the first time\n // so it is required to click two times to get handler to work\n //\n // However, handler will receive manually created onPointerEnter that is triggered in EventManager in onPointerMove method.\n // There may be possibility to use that fact to make handler respond properly to first mouse click\n handler.getTracker().resetTracker();\n }\n });\n }\n\n public static getInstance(): GestureHandlerOrchestrator {\n if (!GestureHandlerOrchestrator.instance) {\n GestureHandlerOrchestrator.instance = new GestureHandlerOrchestrator();\n }\n\n return GestureHandlerOrchestrator.instance;\n }\n}\n","/* eslint-disable @typescript-eslint/no-empty-function */\nimport { AdaptedEvent, EventTypes, TouchEventType } from '../interfaces';\n\nexport default abstract class EventManager {\n protected readonly view: HTMLElement;\n protected pointersInBounds: number[] = [];\n protected activePointersCounter: number;\n\n constructor(view: HTMLElement) {\n this.view = view;\n this.activePointersCounter = 0;\n }\n\n public abstract setListeners(): void;\n protected abstract mapEvent(\n event: Event,\n eventType: EventTypes,\n index?: number,\n touchEventType?: TouchEventType\n ): AdaptedEvent;\n\n protected onPointerDown(_event: AdaptedEvent): void {}\n protected onPointerAdd(_event: AdaptedEvent): void {}\n protected onPointerUp(_event: AdaptedEvent): void {}\n protected onPointerRemove(_event: AdaptedEvent): void {}\n protected onPointerMove(_event: AdaptedEvent): void {}\n protected onPointerOut(_event: AdaptedEvent): void {}\n protected onPointerEnter(_event: AdaptedEvent): void {}\n protected onPointerCancel(_event: AdaptedEvent): void {\n // When pointer cancel is triggered and there are more pointers on the view, only one pointer is cancelled\n // Because we want all pointers to be cancelled by that event, we are doing it manually by reseting handler and changing activePointersCounter to 0\n // Events that correspond to removing the pointer (pointerup, touchend) have condition, that they don't perform any action when activePointersCounter\n // is equal to 0. This prevents counter from going to negative values, when pointers are removed from view after one of them has been cancelled\n }\n protected onPointerOutOfBounds(_event: AdaptedEvent): void {}\n\n public setOnPointerDown(callback: (event: AdaptedEvent) => void): void {\n this.onPointerDown = callback;\n }\n public setOnPointerAdd(callback: (event: AdaptedEvent) => void): void {\n this.onPointerAdd = callback;\n }\n public setOnPointerUp(callback: (event: AdaptedEvent) => void): void {\n this.onPointerUp = callback;\n }\n public setOnPointerRemove(callback: (event: AdaptedEvent) => void): void {\n this.onPointerRemove = callback;\n }\n public setOnPointerMove(callback: (event: AdaptedEvent) => void): void {\n this.onPointerMove = callback;\n }\n public setOnPointerOut(callback: (event: AdaptedEvent) => void): void {\n this.onPointerOut = callback;\n }\n public setOnPointerEnter(callback: (event: AdaptedEvent) => void): void {\n this.onPointerEnter = callback;\n }\n public setOnPointerCancel(callback: (event: AdaptedEvent) => void): void {\n this.onPointerCancel = callback;\n }\n public setOnPointerOutOfBounds(\n callback: (event: AdaptedEvent) => void\n ): void {\n this.onPointerOutOfBounds = callback;\n }\n\n protected markAsInBounds(pointerId: number): void {\n if (this.pointersInBounds.indexOf(pointerId) >= 0) {\n return;\n }\n\n this.pointersInBounds.push(pointerId);\n }\n\n protected markAsOutOfBounds(pointerId: number): void {\n const index: number = this.pointersInBounds.indexOf(pointerId);\n\n if (index < 0) {\n return;\n }\n\n this.pointersInBounds.splice(index, 1);\n }\n\n public resetManager(): void {\n // Reseting activePointersCounter is necessary to make gestures such as pinch work properly\n // There are gestures that end when there is still one active pointer (like pinch/rotation)\n // When these gestures end, they are reset, but they still receive events from pointer that is active\n // This causes trouble, since only onPointerDown registers gesture in orchestrator, and while gestures receive\n // Events from active pointer after they finished, next pointerdown event will be registered as additional pointer, not the first one\n // This casues trouble like gestures getting stuck in END state, even though they should have gone to UNDETERMINED\n\n this.activePointersCounter = 0;\n this.pointersInBounds = [];\n }\n}\n","import {\n AdaptedEvent,\n EventTypes,\n MouseButtons,\n PointerType,\n} from '../interfaces';\nimport EventManager from './EventManager';\nimport { isPointerInBounds } from '../utils';\n\nexport default class PointerEventManager extends EventManager {\n public setListeners(): void {\n this.view.addEventListener('pointerdown', (event: PointerEvent): void => {\n if (event.pointerType === PointerType.TOUCH) {\n return;\n }\n if (\n !isPointerInBounds(this.view, { x: event.clientX, y: event.clientY })\n ) {\n return;\n }\n\n const adaptedEvent: AdaptedEvent = this.mapEvent(event, EventTypes.DOWN);\n const target = event.target as HTMLElement;\n\n target.setPointerCapture(adaptedEvent.pointerId);\n this.markAsInBounds(adaptedEvent.pointerId);\n\n if (++this.activePointersCounter > 1) {\n adaptedEvent.eventType = EventTypes.ADDITIONAL_POINTER_DOWN;\n this.onPointerAdd(adaptedEvent);\n } else {\n this.onPointerDown(adaptedEvent);\n }\n });\n\n this.view.addEventListener('pointerup', (event: PointerEvent): void => {\n if (event.pointerType === PointerType.TOUCH) {\n return;\n }\n\n // When we call reset on gesture handlers, it also resets their event managers\n // In some handlers (like RotationGestureHandler) reset is called before all pointers leave view\n // This means, that activePointersCounter will be set to 0, while there are still remaining pointers on view\n // Removing them will end in activePointersCounter going below 0, therefore handlers won't behave properly\n if (this.activePointersCounter === 0) {\n return;\n }\n\n const adaptedEvent: AdaptedEvent = this.mapEvent(event, EventTypes.UP);\n const target = event.target as HTMLElement;\n\n target.releasePointerCapture(adaptedEvent.pointerId);\n this.markAsOutOfBounds(adaptedEvent.pointerId);\n\n if (--this.activePointersCounter > 0) {\n adaptedEvent.eventType = EventTypes.ADDITIONAL_POINTER_UP;\n this.onPointerRemove(adaptedEvent);\n } else {\n this.onPointerUp(adaptedEvent);\n }\n });\n\n this.view.addEventListener('pointermove', (event: PointerEvent): void => {\n if (event.pointerType === PointerType.TOUCH) {\n return;\n }\n\n if (\n event.pointerType === PointerType.MOUSE &&\n event.buttons !== MouseButtons.LEFT\n ) {\n return;\n }\n\n const adaptedEvent: AdaptedEvent = this.mapEvent(event, EventTypes.MOVE);\n\n const inBounds: boolean = isPointerInBounds(this.view, {\n x: adaptedEvent.x,\n y: adaptedEvent.y,\n });\n\n const pointerIndex: number = this.pointersInBounds.indexOf(\n adaptedEvent.pointerId\n );\n\n if (inBounds) {\n if (pointerIndex < 0) {\n adaptedEvent.eventType = EventTypes.ENTER;\n this.onPointerEnter(adaptedEvent);\n this.markAsInBounds(adaptedEvent.pointerId);\n } else {\n this.onPointerMove(adaptedEvent);\n }\n } else {\n if (pointerIndex >= 0) {\n adaptedEvent.eventType = EventTypes.OUT;\n this.onPointerOut(adaptedEvent);\n this.markAsOutOfBounds(adaptedEvent.pointerId);\n } else {\n this.onPointerOutOfBounds(adaptedEvent);\n }\n }\n });\n\n this.view.addEventListener('pointercancel', (event: PointerEvent): void => {\n if (event.pointerType === PointerType.TOUCH) {\n return;\n }\n\n const adaptedEvent: AdaptedEvent = this.mapEvent(\n event,\n EventTypes.CANCEL\n );\n\n this.onPointerCancel(adaptedEvent);\n this.markAsOutOfBounds(adaptedEvent.pointerId);\n this.activePointersCounter = 0;\n });\n }\n\n protected mapEvent(event: PointerEvent, eventType: EventTypes): AdaptedEvent {\n return {\n x: event.clientX,\n y: event.clientY,\n offsetX: event.offsetX,\n offsetY: event.offsetY,\n pointerId: event.pointerId,\n eventType: eventType,\n pointerType: event.pointerType as PointerType,\n buttons: event.buttons,\n time: event.timeStamp,\n };\n }\n}\n","import {\n AdaptedEvent,\n EventTypes,\n MouseButtons,\n PointerType,\n TouchEventType,\n} from '../interfaces';\nimport EventManager from './EventManager';\nimport { isPointerInBounds } from '../utils';\n\nexport default class TouchEventManager extends EventManager {\n public setListeners(): void {\n this.view.addEventListener('touchstart', (event: TouchEvent) => {\n for (let i = 0; i < event.changedTouches.length; ++i) {\n const adaptedEvent: AdaptedEvent = this.mapEvent(\n event,\n EventTypes.DOWN,\n i,\n TouchEventType.DOWN\n );\n\n // Here we skip stylus, because in case of anything different than touch we want to handle it by using PointerEvents\n // If we leave stylus to send touch events, handlers will receive every action twice\n if (\n !isPointerInBounds(this.view, {\n x: adaptedEvent.x,\n y: adaptedEvent.y,\n }) ||\n //@ts-ignore touchType field does exist\n event.changedTouches[i].touchType === 'stylus'\n ) {\n continue;\n }\n\n this.markAsInBounds(adaptedEvent.pointerId);\n\n if (++this.activePointersCounter > 1) {\n adaptedEvent.eventType = EventTypes.ADDITIONAL_POINTER_DOWN;\n this.onPointerAdd(adaptedEvent);\n } else {\n this.onPointerDown(adaptedEvent);\n }\n }\n });\n\n this.view.addEventListener('touchmove', (event: TouchEvent) => {\n for (let i = 0; i < event.changedTouches.length; ++i) {\n const adaptedEvent: AdaptedEvent = this.mapEvent(\n event,\n EventTypes.MOVE,\n i,\n TouchEventType.MOVE\n );\n //@ts-ignore touchType field does exist\n if (event.changedTouches[i].touchType === 'stylus') {\n continue;\n }\n\n const inBounds: boolean = isPointerInBounds(this.view, {\n x: adaptedEvent.x,\n y: adaptedEvent.y,\n });\n\n const pointerIndex: number = this.pointersInBounds.indexOf(\n adaptedEvent.pointerId\n );\n\n if (inBounds) {\n if (pointerIndex < 0) {\n adaptedEvent.eventType = EventTypes.ENTER;\n this.onPointerEnter(adaptedEvent);\n this.markAsInBounds(adaptedEvent.pointerId);\n } else {\n this.onPointerMove(adaptedEvent);\n }\n } else {\n if (pointerIndex >= 0) {\n adaptedEvent.eventType = EventTypes.OUT;\n this.onPointerOut(adaptedEvent);\n this.markAsOutOfBounds(adaptedEvent.pointerId);\n } else {\n this.onPointerOutOfBounds(adaptedEvent);\n }\n }\n }\n });\n\n this.view.addEventListener('touchend', (event: TouchEvent) => {\n for (let i = 0; i < event.changedTouches.length; ++i) {\n // When we call reset on gesture handlers, it also resets their event managers\n // In some handlers (like RotationGestureHandler) reset is called before all pointers leave view\n // This means, that activePointersCounter will be set to 0, while there are still remaining pointers on view\n // Removing them will end in activePointersCounter going below 0, therefore handlers won't behave properly\n if (this.activePointersCounter === 0) {\n break;\n }\n\n //@ts-ignore touchType field does exist\n if (event.changedTouches[i].touchType === 'stylus') {\n continue;\n }\n\n const adaptedEvent: AdaptedEvent = this.mapEvent(\n event,\n EventTypes.UP,\n i,\n TouchEventType.UP\n );\n\n this.markAsOutOfBounds(adaptedEvent.pointerId);\n\n if (--this.activePointersCounter > 0) {\n adaptedEvent.eventType = EventTypes.ADDITIONAL_POINTER_UP;\n this.onPointerRemove(adaptedEvent);\n } else {\n this.onPointerUp(adaptedEvent);\n }\n }\n });\n\n this.view.addEventListener('touchcancel', (event: TouchEvent) => {\n for (let i = 0; i < event.changedTouches.length; ++i) {\n const adaptedEvent: AdaptedEvent = this.mapEvent(\n event,\n EventTypes.CANCEL,\n i,\n TouchEventType.CANCELLED\n );\n\n //@ts-ignore touchType field does exist\n if (event.changedTouches[i].touchType === 'stylus') {\n continue;\n }\n\n this.onPointerCancel(adaptedEvent);\n this.markAsOutOfBounds(adaptedEvent.pointerId);\n this.activePointersCounter = 0;\n }\n });\n }\n\n protected mapEvent(\n event: TouchEvent,\n eventType: EventTypes,\n index: number,\n touchEventType: TouchEventType\n ): AdaptedEvent {\n const rect = this.view.getBoundingClientRect();\n const clientX = event.changedTouches[index].clientX;\n const clientY = event.changedTouches[index].clientY;\n\n return {\n x: clientX,\n y: clientY,\n offsetX: clientX - rect.left,\n offsetY: clientY - rect.top,\n pointerId: event.changedTouches[index].identifier,\n eventType: eventType,\n pointerType: PointerType.TOUCH,\n buttons: MouseButtons.NONE,\n time: event.timeStamp,\n allTouches: event.touches,\n changedTouches: event.changedTouches,\n touchEventType: touchEventType,\n };\n }\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 simultaneousHandlers: 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 // a simple way to check if GestureHandler is NativeViewGestureHandler, since importing it\n // here to use instanceof would cause import cycle\n get isNative() {\n return false;\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 = this.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 // send oldState only when the state was changed, or is different than ACTIVE\n // GestureDetector relies on the presence of `oldState` to differentiate between\n // update events and state change events\n oldState:\n state !== this.previousState || state != 4\n ? this.oldState\n : undefined,\n },\n timeStamp: Date.now(),\n };\n }\n\n transformNativeEvent(_event: HammerInputExt) {\n return {};\n }\n\n sendEvent = (nativeEvent: HammerInputExt) => {\n const { onGestureHandlerEvent, 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 shouldUseTouchEvents(config: Config) {\n return (\n config.simultaneousHandlers?.some((handler) => handler.isNative) ?? 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 // @ts-ignore window doesn't exist on global type as we don't want to use Node types\n const SUPPORTS_TOUCH = 'ontouchstart' in window;\n this.propsRef = propsRef;\n this.ref = ref;\n\n this.view = findNodeHandle(ref);\n\n // When the browser starts handling the gesture (e.g. scrolling), it sends a pointercancel event and stops\n // sending additional pointer events. This is not the case with touch events, so if the gesture is simultaneous\n // with a NativeGestureHandler, we need to check if touch events are supported and use them if possible.\n this.hammer =\n SUPPORTS_TOUCH && this.shouldUseTouchEvents(this.config)\n ? new Hammer.Manager(this.view as any, {\n inputClass: Hammer.TouchInput,\n })\n : 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 // Validate the props\n 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 if ('simultaneousHandlers' in config) {\n const shouldUseTouchEvents = this.shouldUseTouchEvents(this.config);\n props.simultaneousHandlers = asArray(config.simultaneousHandlers)\n .map((handler: number | GestureHandler) => {\n if (typeof handler === 'number') {\n return NodeManager.getHandler(handler);\n } else {\n return NodeManager.getHandler(handler.handlerTag);\n }\n })\n .filter((v) => v);\n\n if (shouldUseTouchEvents !== this.shouldUseTouchEvents(props)) {\n requestAnimationFrame(() => {\n // if the undelying event API needs to be changed, we need to unmount and mount\n // the hammer instance again.\n this.destroy();\n this.setView(this.ref, this.propsRef);\n });\n }\n } else {\n props.simultaneousHandlers = 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}\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\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","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 'activateAfterLongPress',\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 activateAfterLongPress?: 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 const panHandlerName = 'PanGestureHandler';\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: panHandlerName,\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 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 const tapHandlerName = 'TapGestureHandler';\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: tapHandlerName,\n allowedProps: [\n ...baseGestureHandlerProps,\n ...tapGestureHandlerProps,\n ] as const,\n config: {},\n});\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 const longPressHandlerName = 'LongPressGestureHandler';\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: longPressHandlerName,\n allowedProps: [\n ...baseGestureHandlerProps,\n ...longPressGestureHandlerProps,\n ] as const,\n config: {},\n});\n","import { DEFAULT_TOUCH_SLOP } from '../constants';\nimport { AdaptedEvent, EventTypes } from '../interfaces';\n\nimport PointerTracker from '../tools/PointerTracker';\n\nexport interface ScaleGestureListener {\n onScaleBegin: (detector: ScaleGestureDetector) => boolean;\n onScale: (detector: ScaleGestureDetector) => boolean;\n onScaleEnd: (detector: ScaleGestureDetector) => void;\n}\n\nexport default class ScaleGestureDetector implements ScaleGestureListener {\n public onScaleBegin: (detector: ScaleGestureDetector) => boolean;\n public onScale: (detector: ScaleGestureDetector) => boolean;\n public onScaleEnd: (detector: ScaleGestureDetector) => void;\n\n private focusX!: number;\n private focusY!: number;\n\n private currentSpan!: number;\n private prevSpan!: number;\n private initialSpan!: number;\n\n private currentTime!: number;\n private prevTime!: number;\n\n private inProgress = false;\n\n private spanSlop: number;\n private minSpan: number;\n\n public constructor(callbacks: ScaleGestureListener) {\n this.onScaleBegin = callbacks.onScaleBegin;\n this.onScale = callbacks.onScale;\n this.onScaleEnd = callbacks.onScaleEnd;\n\n this.spanSlop = DEFAULT_TOUCH_SLOP * 2;\n this.minSpan = 0;\n }\n\n public onTouchEvent(event: AdaptedEvent, tracker: PointerTracker): boolean {\n this.currentTime = event.time;\n\n const action: EventTypes = event.eventType;\n const numOfPointers = tracker.getTrackedPointersCount();\n\n const streamComplete: boolean =\n action === EventTypes.UP ||\n action === EventTypes.ADDITIONAL_POINTER_UP ||\n action === EventTypes.CANCEL;\n\n if (action === EventTypes.DOWN || streamComplete) {\n if (this.inProgress) {\n this.onScaleEnd(this);\n this.inProgress = false;\n this.initialSpan = 0;\n }\n\n if (streamComplete) {\n return true;\n }\n }\n\n const configChanged: boolean =\n action === EventTypes.DOWN ||\n action === EventTypes.ADDITIONAL_POINTER_UP ||\n action === EventTypes.ADDITIONAL_POINTER_DOWN;\n\n const pointerUp = action === EventTypes.ADDITIONAL_POINTER_UP;\n\n const ignoredPointer: number | undefined = pointerUp\n ? event.pointerId\n : undefined;\n\n //Determine focal point\n\n const div: number = pointerUp ? numOfPointers - 1 : numOfPointers;\n\n const sumX = tracker.getSumX(ignoredPointer);\n const sumY = tracker.getSumY(ignoredPointer);\n\n const focusX = sumX / div;\n const focusY = sumY / div;\n\n //Determine average deviation from focal point\n\n let devSumX = 0;\n let devSumY = 0;\n\n tracker.getData().forEach((value, key) => {\n if (key === ignoredPointer) {\n return;\n }\n\n devSumX += Math.abs(value.lastX - focusX);\n devSumY += Math.abs(value.lastY - focusY);\n });\n\n const devX: number = devSumX / div;\n const devY: number = devSumY / div;\n\n const spanX: number = devX * 2;\n const spanY: number = devY * 2;\n\n const span = Math.hypot(spanX, spanY);\n\n //Begin/end events\n const wasInProgress: boolean = this.inProgress;\n this.focusX = focusX;\n this.focusY = focusY;\n\n if (this.inProgress && (span < this.minSpan || configChanged)) {\n this.onScaleEnd(this);\n this.inProgress = false;\n this.initialSpan = span;\n }\n\n if (configChanged) {\n this.initialSpan = this.prevSpan = this.currentSpan = span;\n }\n\n if (\n !this.inProgress &&\n span >= this.minSpan &&\n (wasInProgress || Math.abs(span - this.initialSpan) > this.spanSlop)\n ) {\n this.prevSpan = this.currentSpan = span;\n this.prevTime = this.currentTime;\n this.inProgress = this.onScaleBegin(this);\n }\n\n //Handle motion\n if (action !== EventTypes.MOVE) {\n return true;\n }\n\n this.currentSpan = span;\n\n if (this.inProgress && !this.onScale(this)) {\n return true;\n }\n\n this.prevSpan = this.currentSpan;\n this.prevTime = this.currentTime;\n\n return true;\n }\n\n public getCurrentSpan(): number {\n return this.currentSpan;\n }\n\n public getFocusX(): number {\n return this.focusX;\n }\n\n public getFocusY(): number {\n return this.focusY;\n }\n\n public getTimeDelta(): number {\n return this.currentTime - this.prevTime;\n }\n\n public getScaleFactor(numOfPointers: number): number {\n if (numOfPointers < 2) {\n return 1;\n }\n\n return this.prevSpan > 0 ? this.currentSpan / this.prevSpan : 1;\n }\n}\n","import { AdaptedEvent, EventTypes } from '../interfaces';\nimport PointerTracker from '../tools/PointerTracker';\n\nexport interface RotationGestureListener {\n onRotationBegin: (detector: RotationGestureDetector) => boolean;\n onRotation: (detector: RotationGestureDetector) => boolean;\n onRotationEnd: (detector: RotationGestureDetector) => void;\n}\n\nexport default class RotationGestureDetector\n implements RotationGestureListener\n{\n onRotationBegin: (detector: RotationGestureDetector) => boolean;\n onRotation: (detector: RotationGestureDetector) => boolean;\n onRotationEnd: (detector: RotationGestureDetector) => void;\n\n private currentTime = 0;\n private previousTime = 0;\n\n private previousAngle = 0;\n private rotation = 0;\n\n private anchorX = 0;\n private anchorY = 0;\n\n private isInProgress = false;\n\n private keyPointers: number[] = [NaN, NaN];\n\n constructor(callbacks: RotationGestureListener) {\n this.onRotationBegin = callbacks.onRotationBegin;\n this.onRotation = callbacks.onRotation;\n this.onRotationEnd = callbacks.onRotationEnd;\n }\n\n private updateCurrent(event: AdaptedEvent, tracker: PointerTracker): void {\n this.previousTime = this.currentTime;\n this.currentTime = event.time;\n\n const [firstPointerID, secondPointerID] = this.keyPointers;\n\n const firstPointerX: number = tracker.getLastX(firstPointerID);\n const firstPointerY: number = tracker.getLastY(firstPointerID);\n const secondPointerX: number = tracker.getLastX(secondPointerID);\n const secondPointerY: number = tracker.getLastY(secondPointerID);\n\n const vectorX: number = secondPointerX - firstPointerX;\n const vectorY: number = secondPointerY - firstPointerY;\n\n this.anchorX = (firstPointerX + secondPointerX) / 2;\n this.anchorY = (firstPointerY + secondPointerY) / 2;\n\n //Angle diff should be positive when rotating in clockwise direction\n const angle: number = -Math.atan2(vectorY, vectorX);\n\n this.rotation = Number.isNaN(this.previousAngle)\n ? 0\n : this.previousAngle - angle;\n\n this.previousAngle = angle;\n\n if (this.rotation > Math.PI) {\n this.rotation -= Math.PI;\n } else if (this.rotation < -Math.PI) {\n this.rotation += Math.PI;\n }\n\n if (this.rotation > Math.PI / 2) {\n this.rotation -= Math.PI;\n } else if (this.rotation < -Math.PI / 2) {\n this.rotation += Math.PI;\n }\n }\n\n private finish(): void {\n if (!this.isInProgress) {\n return;\n }\n\n this.isInProgress = false;\n this.keyPointers = [NaN, NaN];\n this.onRotationEnd(this);\n }\n\n private setKeyPointers(tracker: PointerTracker): void {\n if (this.keyPointers[0] && this.keyPointers[1]) {\n return;\n }\n\n const pointerIDs: IterableIterator = tracker.getData().keys();\n\n this.keyPointers[0] = pointerIDs.next().value as number;\n this.keyPointers[1] = pointerIDs.next().value as number;\n }\n\n public onTouchEvent(event: AdaptedEvent, tracker: PointerTracker): boolean {\n switch (event.eventType) {\n case EventTypes.DOWN:\n this.isInProgress = false;\n break;\n\n case EventTypes.ADDITIONAL_POINTER_DOWN:\n if (this.isInProgress) {\n break;\n }\n this.isInProgress = true;\n\n this.previousTime = event.time;\n this.previousAngle = NaN;\n\n this.setKeyPointers(tracker);\n\n this.updateCurrent(event, tracker);\n this.onRotationBegin(this);\n break;\n\n case EventTypes.MOVE:\n if (!this.isInProgress) {\n break;\n }\n\n this.updateCurrent(event, tracker);\n this.onRotation(this);\n\n break;\n\n case EventTypes.ADDITIONAL_POINTER_UP:\n if (!this.isInProgress) {\n break;\n }\n\n if (this.keyPointers.indexOf(event.pointerId) >= 0) {\n this.finish();\n }\n\n break;\n\n case EventTypes.UP:\n if (this.isInProgress) {\n this.finish();\n }\n break;\n }\n\n return true;\n }\n\n public getTimeDelta(): number {\n return this.currentTime + this.previousTime;\n }\n\n public getAnchorX(): number {\n return this.anchorX;\n }\n\n public getAnchorY(): number {\n return this.anchorY;\n }\n\n public getRotation(): number {\n return this.rotation;\n }\n\n public reset(): void {\n this.keyPointers = [NaN, NaN];\n this.isInProgress = false;\n }\n}\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 const flingHandlerName = 'FlingGestureHandler';\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: flingHandlerName,\n allowedProps: [\n ...baseGestureHandlerProps,\n ...flingGestureHandlerProps,\n ] as const,\n config: {},\n});\n","import { AdaptedEvent, Config } from '../interfaces';\nimport GestureHandler from './GestureHandler';\n\nexport default class ManualGestureHandler extends GestureHandler {\n public init(ref: number, propsRef: React.RefObject) {\n super.init(ref, propsRef);\n }\n\n public updateGestureConfig({ enabled = true, ...props }: Config): void {\n super.updateGestureConfig({ enabled: enabled, ...props });\n }\n\n protected onPointerDown(event: AdaptedEvent): void {\n this.tracker.addToTracker(event);\n super.onPointerDown(event);\n this.begin();\n }\n\n protected onPointerAdd(event: AdaptedEvent): void {\n this.tracker.addToTracker(event);\n super.onPointerAdd(event);\n }\n\n protected onPointerMove(event: AdaptedEvent): void {\n this.tracker.track(event);\n super.onPointerMove(event);\n }\n\n protected onPointerOutOfBounds(event: AdaptedEvent): void {\n this.tracker.track(event);\n super.onPointerOutOfBounds(event);\n }\n\n protected onPointerUp(event: AdaptedEvent): void {\n super.onPointerUp(event);\n this.tracker.removeFromTracker(event.pointerId);\n }\n\n protected onPointerRemove(event: AdaptedEvent): void {\n super.onPointerRemove(event);\n this.tracker.removeFromTracker(event.pointerId);\n }\n\n protected onPointerCancel(event: AdaptedEvent): void {\n super.onPointerCancel(event);\n this.reset();\n }\n}\n","import { ValueOf } from '../../typeUtils';\nimport { Gestures } from '../../RNGestureHandlerModule.web';\n\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nexport default abstract class NodeManager {\n private static gestures: Record<\n number,\n InstanceType>\n > = {};\n\n public static getHandler(tag: number) {\n if (tag in this.gestures) {\n return this.gestures[tag];\n }\n\n throw new Error(`No handler for tag ${tag}`);\n }\n\n public static createGestureHandler(\n handlerTag: number,\n handler: InstanceType>\n ): void {\n if (handlerTag in this.gestures) {\n throw new Error(`Handler with tag ${handlerTag} already exists`);\n }\n\n this.gestures[handlerTag] = handler;\n this.gestures[handlerTag].setTag(handlerTag);\n }\n\n public static dropGestureHandler(handlerTag: number): void {\n if (!(handlerTag in this.gestures)) {\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this.gestures[handlerTag];\n }\n\n public static getNodes() {\n return { ...this.gestures };\n }\n}\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","/* 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","/* 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 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","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 React from 'react';\n\nimport { ActionType } from './ActionType';\nimport { isExperimentalWebImplementationEnabled } from './EnableExperimentalWebImplementation';\n\n//GestureHandlers\nimport InteractionManager from './web/tools/InteractionManager';\nimport NodeManager from './web/tools/NodeManager';\nimport PanGestureHandler from './web/handlers/PanGestureHandler';\nimport TapGestureHandler from './web/handlers/TapGestureHandler';\nimport LongPressGestureHandler from './web/handlers/LongPressGestureHandler';\nimport PinchGestureHandler from './web/handlers/PinchGestureHandler';\nimport RotationGestureHandler from './web/handlers/RotationGestureHandler';\nimport FlingGestureHandler from './web/handlers/FlingGestureHandler';\nimport NativeViewGestureHandler from './web/handlers/NativeViewGestureHandler';\nimport ManualGestureHandler from './web/handlers/ManualGestureHandler';\n\n//Hammer Handlers\nimport * as HammerNodeManager from './web_hammer/NodeManager';\nimport HammerNativeViewGestureHandler from './web_hammer/NativeViewGestureHandler';\nimport HammerPanGestureHandler from './web_hammer/PanGestureHandler';\nimport HammerTapGestureHandler from './web_hammer/TapGestureHandler';\nimport HammerLongPressGestureHandler from './web_hammer/LongPressGestureHandler';\nimport HammerPinchGestureHandler from './web_hammer/PinchGestureHandler';\nimport HammerRotationGestureHandler from './web_hammer/RotationGestureHandler';\nimport HammerFlingGestureHandler from './web_hammer/FlingGestureHandler';\nimport { Config } from './web/interfaces';\n\nexport const Gestures = {\n NativeViewGestureHandler,\n PanGestureHandler,\n TapGestureHandler,\n LongPressGestureHandler,\n PinchGestureHandler,\n RotationGestureHandler,\n FlingGestureHandler,\n ManualGestureHandler,\n};\n\nexport const HammerGestures = {\n NativeViewGestureHandler: HammerNativeViewGestureHandler,\n PanGestureHandler: HammerPanGestureHandler,\n TapGestureHandler: HammerTapGestureHandler,\n LongPressGestureHandler: HammerLongPressGestureHandler,\n PinchGestureHandler: HammerPinchGestureHandler,\n RotationGestureHandler: HammerRotationGestureHandler,\n FlingGestureHandler: HammerFlingGestureHandler,\n};\n\nexport default {\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 if (isExperimentalWebImplementationEnabled()) {\n if (!(handlerName in Gestures)) {\n throw new Error(\n `react-native-gesture-handler: ${handlerName} is not supported on web.`\n );\n }\n\n const GestureClass = Gestures[handlerName];\n NodeManager.createGestureHandler(handlerTag, new GestureClass());\n InteractionManager.getInstance().configureInteractions(\n NodeManager.getHandler(handlerTag),\n config as unknown as Config\n );\n } else {\n if (!(handlerName in HammerGestures)) {\n throw new Error(\n `react-native-gesture-handler: ${handlerName} is not supported on web.`\n );\n }\n\n // @ts-ignore If it doesn't exist, the error is thrown\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const GestureClass = HammerGestures[handlerName];\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n HammerNodeManager.createGestureHandler(handlerTag, new GestureClass());\n }\n\n this.updateGestureHandler(handlerTag, config as unknown as Config);\n },\n attachGestureHandler(\n handlerTag: number,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n newView: any,\n _actionType: ActionType,\n propsRef: React.RefObject\n ) {\n if (\n !(newView instanceof HTMLElement || newView instanceof React.Component)\n ) {\n return;\n }\n\n if (isExperimentalWebImplementationEnabled()) {\n //@ts-ignore Types should be HTMLElement or React.Component\n NodeManager.getHandler(handlerTag).init(newView, propsRef);\n } else {\n //@ts-ignore Types should be HTMLElement or React.Component\n HammerNodeManager.getHandler(handlerTag).setView(newView, propsRef);\n }\n },\n updateGestureHandler(handlerTag: number, newConfig: Config) {\n if (isExperimentalWebImplementationEnabled()) {\n NodeManager.getHandler(handlerTag).updateGestureConfig(newConfig);\n\n InteractionManager.getInstance().configureInteractions(\n NodeManager.getHandler(handlerTag),\n newConfig\n );\n } else {\n HammerNodeManager.getHandler(handlerTag).updateGestureConfig(newConfig);\n }\n },\n getGestureHandlerNode(handlerTag: number) {\n if (isExperimentalWebImplementationEnabled()) {\n return NodeManager.getHandler(handlerTag);\n } else {\n return HammerNodeManager.getHandler(handlerTag);\n }\n },\n dropGestureHandler(handlerTag: number) {\n if (isExperimentalWebImplementationEnabled()) {\n NodeManager.dropGestureHandler(handlerTag);\n } else {\n HammerNodeManager.dropGestureHandler(handlerTag);\n }\n },\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n flushOperations() {},\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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(() => Dimensions.get('window')),\n dims = _useState[0],\n setDims = _useState[1];\n\n useEffect(() => {\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 () => {\n Dimensions.removeEventListener('change', handleChange);\n };\n }, []);\n return dims;\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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(() => mergeRefs(...args), // eslint-disable-next-line\n [...args]);\n}","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 { isJestEnv } from '../utils';\nimport { GestureType } from './gestures/gesture';\nimport { GestureEvent, HandlerStateChangeEvent } from './gestureHandlerCommon';\n\nexport const handlerIDToTag: Record = {};\nconst gestures = new Map();\nconst oldHandlers = new Map();\nconst testIDs = new Map();\n\nlet handlerTag = 1;\n\nexport function getNextHandlerTag(): number {\n return handlerTag++;\n}\n\nexport function registerHandler(\n handlerTag: number,\n handler: GestureType,\n testID?: string\n) {\n gestures.set(handlerTag, handler);\n if (isJestEnv() && testID) {\n testIDs.set(testID, handlerTag);\n }\n}\n\nexport function registerOldGestureHandler(\n handlerTag: number,\n handler: GestureHandlerCallbacks\n) {\n oldHandlers.set(handlerTag, handler);\n}\n\nexport function unregisterHandler(handlerTag: number, testID?: string) {\n gestures.delete(handlerTag);\n if (isJestEnv() && testID) {\n testIDs.delete(testID);\n }\n}\n\nexport function findHandler(handlerTag: number) {\n return gestures.get(handlerTag);\n}\n\nexport function findOldGestureHandler(handlerTag: number) {\n return oldHandlers.get(handlerTag);\n}\n\nexport function findHandlerByTestID(testID: string) {\n const handlerTag = testIDs.get(testID);\n if (handlerTag !== undefined) {\n return findHandler(handlerTag) ?? null;\n }\n return null;\n}\n\nexport interface GestureHandlerCallbacks {\n onGestureEvent: (event: GestureEvent) => void;\n onGestureStateChange: (event: HandlerStateChangeEvent) => void;\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 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","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 * 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 { getLocaleDirection, useLocaleContext } from '../../modules/useLocale';\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 = (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 = (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 = Object.assign({}, 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 = props => pick(props, forwardPropsList); // 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((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(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(() => 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 }, [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(() => {\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 setTimeout(() => hostNode.blur(), 0);\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(() => {\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 useElementLayout(hostRef, onLayout);\n useResponderEvents(hostRef, {\n onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture,\n onResponderEnd,\n onResponderGrant,\n onResponderMove,\n onResponderReject,\n onResponderRelease,\n onResponderStart,\n onResponderTerminate,\n onResponderTerminationRequest,\n onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder,\n onStartShouldSetResponderCapture\n });\n\n var _useLocaleContext = useLocaleContext(),\n contextDirection = _useLocaleContext.direction;\n\n var supportedProps = pickProps(props);\n supportedProps.autoCapitalize = autoCapitalize;\n supportedProps.autoComplete = autoComplete || autoCompleteType || 'on';\n supportedProps.autoCorrect = autoCorrect ? 'on' : 'off'; // 'auto' by default allows browsers to infer writing direction\n\n supportedProps.dir = dir !== undefined ? dir : 'auto';\n supportedProps.enterKeyHint = returnKeyType;\n supportedProps.inputMode = inputMode;\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 = [{\n '--placeholderTextColor': placeholderTextColor\n }, styles.textinput$raw, styles.placeholder, props.style];\n supportedProps.type = multiline ? undefined : type;\n var platformMethodsRef = usePlatformMethods(supportedProps);\n var setRef = useMergeRefs(hostRef, platformMethodsRef, imperativeRef, forwardedRef);\n supportedProps.ref = setRef;\n var langDirection = props.lang != null ? getLocaleDirection(props.lang) : null;\n var componentDirection = props.dir || langDirection;\n var writingDirection = componentDirection || contextDirection;\n var element = createElement(component, supportedProps, {\n writingDirection\n });\n return element;\n});\nTextInput.displayName = 'TextInput'; // $FlowFixMe\n\nTextInput.State = TextInputState;\nvar styles = StyleSheet.create({\n textinput$raw: {\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 placeholder: {\n placeholderTextColor: 'var(--placeholderTextColor)'\n }\n});\nexport default TextInput;","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","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 * as React from 'react';\nimport {\n Platform,\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 {\n handlerIDToTag,\n getNextHandlerTag,\n registerOldGestureHandler,\n} from './handlersRegistry';\n\nimport {\n BaseGestureHandlerProps,\n filterConfig,\n GestureEvent,\n HandlerStateChangeEvent,\n findNodeHandle,\n scheduleFlushOperations,\n} from './gestureHandlerCommon';\nimport { ValueOf } from '../typeUtils';\nimport { isFabric, isJestEnv, tagMessage } from '../utils';\nimport { ActionType } from '../ActionType';\nimport { PressabilityDebugView } from './PressabilityDebugView';\n\nconst UIManagerAny = UIManager as any;\n\nconst customGHEventsConfigFabricAndroid = {\n topOnGestureHandlerEvent: { registrationName: 'onGestureHandlerEvent' },\n topOnGestureHandlerStateChange: {\n registrationName: 'onGestureHandlerStateChange',\n },\n};\n\nconst customGHEventsConfig = {\n onGestureHandlerEvent: { registrationName: 'onGestureHandlerEvent' },\n onGestureHandlerStateChange: {\n registrationName: 'onGestureHandlerStateChange',\n },\n\n // When using React Native Gesture Handler for Animated.event with useNativeDriver: true\n // on Android with Fabric enabled, the native part still sends the native events to JS\n // but prefixed with \"top\". We cannot simply rename the events above so they are prefixed\n // with \"top\" instead of \"on\" because in such case Animated.events would not be registered.\n // That's why we need to register another pair of event names.\n // The incoming events will be queued but never handled.\n // Without this piece of code below, you'll get the following JS error:\n // Unsupported top level event type \"topOnGestureHandlerEvent\" dispatched\n ...(isFabric() &&\n Platform.OS === 'android' &&\n customGHEventsConfigFabricAndroid),\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 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\nconst UNRESOLVED_REFS_RETRY_LIMIT = 1;\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 }\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(UNRESOLVED_REFS_RETRY_LIMIT);\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(UNRESOLVED_REFS_RETRY_LIMIT);\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(UNRESOLVED_REFS_RETRY_LIMIT);\n }\n\n componentWillUnmount() {\n this.inspectorToggleListener?.remove();\n RNGestureHandlerModule.dropGestureHandler(this.handlerTag);\n scheduleFlushOperations();\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 if (typeof this.props.onGestureEvent === 'function') {\n this.props.onGestureEvent?.(event);\n }\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 if (typeof this.props.onHandlerStateChange === 'function') {\n this.props.onHandlerStateChange?.(event);\n }\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 (\n RNGestureHandlerModule.attachGestureHandler as typeof RNGestureHandlerModuleWeb.attachGestureHandler\n )(\n this.handlerTag,\n newViewTag,\n ActionType.JS_FUNCTION_OLD_API, // ignored on web\n this.propsRef\n );\n } else {\n registerOldGestureHandler(this.handlerTag, {\n onGestureEvent: this.onGestureHandlerEvent,\n onGestureStateChange: this.onGestureHandlerStateChange,\n });\n\n const actionType = (() => {\n if (\n this.props?.onGestureEvent &&\n 'current' in this.props.onGestureEvent\n ) {\n // Reanimated worklet\n return ActionType.REANIMATED_WORKLET;\n } else if (\n this.props?.onGestureEvent &&\n '__isNative' in this.props.onGestureEvent\n ) {\n // Animated.event with useNativeDriver: true\n return ActionType.NATIVE_ANIMATED_EVENT;\n } else {\n // JS callback or Animated.event with useNativeDriver: false\n return ActionType.JS_FUNCTION_OLD_API;\n }\n })();\n\n RNGestureHandlerModule.attachGestureHandler(\n this.handlerTag,\n newViewTag,\n actionType\n );\n }\n\n scheduleFlushOperations();\n };\n\n private updateGestureHandler = (\n newConfig: Readonly>\n ) => {\n this.config = newConfig;\n\n RNGestureHandlerModule.updateGestureHandler(this.handlerTag, newConfig);\n scheduleFlushOperations();\n };\n\n private update(remainingTries: number) {\n const props: HandlerProps = this.props;\n\n // When ref is set via a function i.e. `ref={(r) => refObject.current = r}` instead of\n // `ref={refObject}` it's possible that it won't be resolved in time. Seems like trying\n // again is easy enough fix.\n if (hasUnresolvedRefs(props) && remainingTries > 0) {\n this.updateEnqueued = setImmediate(() => {\n this.updateEnqueued = null;\n this.update(remainingTries - 1);\n });\n } else {\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\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 { onGestureEvent, onGestureHandlerEvent }: OnGestureEventHandlers =\n 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 let child: any = null;\n try {\n child = React.Children.only(this.props.children);\n } catch (e) {\n throw new Error(\n tagMessage(\n `${name} got more than one view as a child. If you want the gesture to work on multiple views, wrap them with a common parent and attach the gesture to that view.`\n )\n );\n }\n\n let grandChildren = child.props.children;\n if (\n __DEV__ &&\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 \n );\n }\n\n return React.cloneElement(\n child,\n {\n ref: this.refHandler,\n collapsable: false,\n ...(isJestEnv()\n ? {\n handlerType: name,\n handlerTag: this.handlerTag,\n }\n : {}),\n testID: this.props.testID ?? child.props.testID,\n ...events,\n },\n grandChildren\n );\n }\n }\n return Handler;\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","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 TouchEventType = {\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 TouchEventType = typeof TouchEventType[keyof typeof TouchEventType];\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","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 '../../modules/canUseDom';\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() {\n return query && query.matches ? 'dark' : 'light';\n },\n\n addChangeListener(listener) {\n var mappedListener = listenerMapping.get(listener);\n\n if (!mappedListener) {\n 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 function remove() {\n var mappedListener = listenerMapping.get(listener);\n\n if (query && mappedListener) {\n query.removeListener(mappedListener);\n }\n\n listenerMapping.delete(listener);\n }\n\n return {\n remove\n };\n }\n\n};\nexport default Appearance;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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\nexport default class PixelRatio {\n /**\n * Returns the device pixel density.\n */\n static get() {\n return Dimensions.get('window').scale;\n }\n /**\n * No equivalent for Web\n */\n\n\n static 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 static 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 static roundToNearestPixel(layoutSize) {\n var ratio = PixelRatio.get();\n return Math.round(layoutSize * ratio) / ratio;\n }\n\n}","import RCTDeviceEventEmitter from '../../vendor/react-native/NativeEventEmitter/RCTDeviceEventEmitter';\nexport default RCTDeviceEventEmitter;","import { Animated } from 'react-native';\nimport color from 'color';\nimport { MD2DarkTheme } from './themes/v2/DarkTheme';\nexport const isAnimatedValue = it => it instanceof Animated.Value;\nexport default function overlay(elevation) {\n var _MD2DarkTheme$colors;\n let surfaceColor = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (_MD2DarkTheme$colors = MD2DarkTheme.colors) === null || _MD2DarkTheme$colors === void 0 ? void 0 : _MD2DarkTheme$colors.surface;\n if (isAnimatedValue(elevation)) {\n const inputRange = [0, 1, 2, 3, 8, 24];\n\n // @ts-expect-error: TS doesn't seem to refine the type correctly\n return elevation.interpolate({\n inputRange,\n outputRange: inputRange.map(elevation => {\n return calculateColor(surfaceColor, elevation);\n })\n });\n }\n\n // @ts-expect-error: TS doesn't seem to refine the type correctly\n return calculateColor(surfaceColor, elevation);\n}\nfunction calculateColor(surfaceColor) {\n let elevation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n let overlayTransparency;\n if (elevation >= 1 && elevation <= 24) {\n overlayTransparency = elevationOverlayTransparency[elevation];\n } else if (elevation > 24) {\n overlayTransparency = elevationOverlayTransparency[24];\n } else {\n overlayTransparency = elevationOverlayTransparency[1];\n }\n return color(surfaceColor).mix(color('white'), overlayTransparency * 0.01).hex();\n}\nconst elevationOverlayTransparency = {\n 1: 5,\n 2: 7,\n 3: 8,\n 4: 9,\n 5: 10,\n 6: 11,\n 7: 11.5,\n 8: 12,\n 9: 12.5,\n 10: 13,\n 11: 13.5,\n 12: 14,\n 13: 14.25,\n 14: 14.5,\n 15: 14.75,\n 16: 15,\n 17: 15.12,\n 18: 15.24,\n 19: 15.36,\n 20: 15.48,\n 21: 15.6,\n 22: 15.72,\n 23: 15.84,\n 24: 16\n};\n//# sourceMappingURL=overlay.js.map","/**\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 rtlScripts = new Set(['Arab', 'Syrc', 'Samr', 'Mand', 'Thaa', 'Mend', 'Nkoo', 'Adlm', 'Rohg', 'Hebr']);\nvar rtlLangs = new Set(['ae', // Avestan\n'ar', // Arabic\n'arc', // Aramaic\n'bcc', // Southern Balochi\n'bqi', // Bakthiari\n'ckb', // Sorani\n'dv', // Dhivehi\n'fa', 'far', // Persian\n'glk', // Gilaki\n'he', 'iw', // Hebrew\n'khw', // Khowar\n'ks', // Kashmiri\n'ku', // Kurdish\n'mzn', // Mazanderani\n'nqo', // N'Ko\n'pnb', // Western Punjabi\n'ps', // Pashto\n'sd', // Sindhi\n'ug', // Uyghur\n'ur', // Urdu\n'yi' // Yiddish\n]);\nvar cache = new Map();\n/**\n * Determine the writing direction of a locale\n */\n\nexport function isLocaleRTL(locale) {\n var cachedRTL = cache.get(locale);\n\n if (cachedRTL) {\n return cachedRTL;\n }\n\n var isRTL = false; // $FlowFixMe\n\n if (Intl.Locale) {\n // $FlowFixMe\n var script = new Intl.Locale(locale).maximize().script;\n isRTL = rtlScripts.has(script);\n } else {\n // Fallback to inferring from language\n var lang = locale.split('-')[0];\n isRTL = rtlLangs.has(lang);\n }\n\n cache.set(locale, isRTL);\n return isRTL;\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 React, { createContext, useContext } from 'react';\nimport { isLocaleRTL } from './isLocaleRTL';\nvar defaultLocale = {\n direction: 'ltr',\n locale: 'en-US'\n};\nvar LocaleContext = /*#__PURE__*/createContext(defaultLocale);\nexport function getLocaleDirection(locale) {\n return isLocaleRTL(locale) ? 'rtl' : 'ltr';\n}\nexport function LocaleProvider(props) {\n var direction = props.direction,\n locale = props.locale,\n children = props.children;\n var needsContext = direction || locale;\n return needsContext ? /*#__PURE__*/React.createElement(LocaleContext.Provider, {\n children: children,\n value: {\n direction: locale ? getLocaleDirection(locale) : direction,\n locale\n }\n }) : children;\n}\nexport function useLocaleContext() {\n return useContext(LocaleContext);\n}","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 = (prefix, key) => {\n return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n};\n\nObject.keys(unitlessNumbers).forEach(prop => {\n prefixes.forEach(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 unitlessNumbers from './unitlessNumbers';\nimport normalizeColor from './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}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 = props => pick(props, forwardPropsList);\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(() => ({\n cancelable: !rejectResponderTermination,\n disabled,\n delayLongPress,\n delayPressStart: delayPressIn,\n delayPressEnd: delayPressOut,\n onLongPress,\n onPress,\n onPressStart: onPressIn,\n onPressEnd: onPressOut\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(element, elementProps, ...children);\n}\n\nvar MemoedTouchableWithoutFeedback = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(TouchableWithoutFeedback));\nMemoedTouchableWithoutFeedback.displayName = 'TouchableWithoutFeedback';\nexport default MemoedTouchableWithoutFeedback;","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","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 (!shouldBeUseWeb() &&\n (this.props.layout || this.props.entering || this.props.exiting) &&\n tag != null) {\n enableLayoutAnimations(true, false);\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","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar 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;","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","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { StyleSheet, Text as NativeText } from 'react-native';\nimport { useInternalTheme } from '../../../core/theming';\nimport { forwardRef } from '../../../utils/forwardRef';\n// @component-group Typography\n/**\n * Text component which follows styles from the theme.\n *\n * @extends Text props https://reactnative.dev/docs/text#props\n */\nconst Text = (_ref, ref) => {\n var _theme$fonts, _theme$colors;\n let {\n style,\n theme: overrideTheme,\n ...rest\n } = _ref;\n const root = React.useRef(null);\n const theme = useInternalTheme(overrideTheme);\n React.useImperativeHandle(ref, () => ({\n setNativeProps: args => {\n var _root$current;\n return (_root$current = root.current) === null || _root$current === void 0 ? void 0 : _root$current.setNativeProps(args);\n }\n }));\n return /*#__PURE__*/React.createElement(NativeText, _extends({}, rest, {\n ref: root,\n style: [{\n ...(!theme.isV3 && ((_theme$fonts = theme.fonts) === null || _theme$fonts === void 0 ? void 0 : _theme$fonts.regular)),\n color: theme.isV3 ? (_theme$colors = theme.colors) === null || _theme$colors === void 0 ? void 0 : _theme$colors.onSurface : theme.colors.text\n }, styles.text, style]\n }));\n};\nconst styles = StyleSheet.create({\n text: {\n textAlign: 'left'\n }\n});\nexport default forwardRef(Text);\n//# sourceMappingURL=Text.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { I18nManager, StyleSheet } from 'react-native';\nimport color from 'color';\nimport Text from './Text';\nimport { useInternalTheme } from '../../../core/theming';\nconst StyledText = _ref => {\n var _theme$colors, _theme$fonts;\n let {\n alpha = 1,\n family,\n style,\n theme: themeOverrides,\n ...rest\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const textColor = color(theme.isV3 ? theme.colors.onSurface : (_theme$colors = theme.colors) === null || _theme$colors === void 0 ? void 0 : _theme$colors.text).alpha(alpha).rgb().string();\n const writingDirection = I18nManager.getConstants().isRTL ? 'rtl' : 'ltr';\n return /*#__PURE__*/React.createElement(Text, _extends({}, rest, {\n style: [styles.text, {\n color: textColor,\n ...(!theme.isV3 && ((_theme$fonts = theme.fonts) === null || _theme$fonts === void 0 ? void 0 : _theme$fonts[family])),\n writingDirection\n }, style]\n }));\n};\nconst styles = StyleSheet.create({\n text: {\n textAlign: 'left'\n }\n});\nexport default StyledText;\n//# sourceMappingURL=StyledText.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { Animated, I18nManager, StyleSheet } from 'react-native';\nimport { useInternalTheme } from '../../core/theming';\n/**\n * Animated text component which follows styles from the theme.\n *\n * @extends Text props https://reactnative.dev/docs/text#props\n */\nfunction AnimatedText(_ref) {\n let {\n style,\n theme: themeOverrides,\n variant,\n ...rest\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const writingDirection = I18nManager.getConstants().isRTL ? 'rtl' : 'ltr';\n if (theme.isV3 && variant) {\n const font = theme.fonts[variant];\n if (typeof font !== 'object') {\n throw new Error(`Variant ${variant} was not provided properly. Valid variants are ${Object.keys(theme.fonts).join(', ')}.`);\n }\n return /*#__PURE__*/React.createElement(Animated.Text, _extends({}, rest, {\n style: [font, styles.text, {\n writingDirection,\n color: theme.colors.onSurface\n }, style]\n }));\n } else {\n const font = !theme.isV3 ? theme.fonts.regular : theme.fonts.bodyMedium;\n const textStyle = {\n ...font,\n color: theme.isV3 ? theme.colors.onSurface : theme.colors.text\n };\n return /*#__PURE__*/React.createElement(Animated.Text, _extends({}, rest, {\n style: [styles.text, textStyle, {\n writingDirection\n }, style]\n }));\n }\n}\nconst styles = StyleSheet.create({\n text: {\n textAlign: 'left'\n }\n});\nexport const customAnimatedText = () => AnimatedText;\nexport default AnimatedText;\n//# sourceMappingURL=AnimatedText.js.map","var unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\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 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 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}\nmodule.exports = _createForOfIteratorHelperLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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) Meta Platforms, Inc. and affiliates.\n *\n * This source 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() {\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(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(textFieldNode) {\n if (textFieldNode !== null) {\n this._currentlyFocusedNode = null;\n\n if (document.activeElement === textFieldNode) {\n UIManager.blur(textFieldNode);\n }\n }\n }\n\n};\nexport default TextInputState;","// @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","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 = 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;","import { PermissionResponse } from 'expo-modules-core';\n\n// @needsAudit\n/**\n * Alias for `PermissionResponse` type exported by `expo-modules-core`.\n */\nexport type CameraPermissionResponse = PermissionResponse;\n\n// @needsAudit\n/**\n * Extends `PermissionResponse` type exported by `expo-modules-core` and contains additional iOS-specific field.\n */\nexport type MediaLibraryPermissionResponse = PermissionResponse & {\n /**\n * @platform ios\n */\n accessPrivileges?: 'all' | 'limited' | 'none';\n};\n\n// @needsAudit\nexport enum MediaTypeOptions {\n /**\n * Images and videos.\n */\n All = 'All',\n /**\n * Only videos.\n */\n Videos = 'Videos',\n /**\n * Only images.\n */\n Images = 'Images',\n}\n\n// @needsAudit\nexport enum VideoExportPreset {\n /**\n * Resolution: __Unchanged__ •\n * Video compression: __None__ •\n * Audio compression: __None__\n */\n Passthrough = 0,\n /**\n * Resolution: __Depends on the device__ •\n * Video compression: __H.264__ •\n * Audio compression: __AAC__\n */\n LowQuality = 1,\n /**\n * Resolution: __Depends on the device__ •\n * Video compression: __H.264__ •\n * Audio compression: __AAC__\n */\n MediumQuality = 2,\n /**\n * Resolution: __Depends on the device__ •\n * Video compression: __H.264__ •\n * Audio compression: __AAC__\n */\n HighestQuality = 3,\n /**\n * Resolution: __640 × 480__ •\n * Video compression: __H.264__ •\n * Audio compression: __AAC__\n */\n H264_640x480 = 4,\n /**\n * Resolution: __960 × 540__ •\n * Video compression: __H.264__ •\n * Audio compression: __AAC__\n */\n H264_960x540 = 5,\n /**\n * Resolution: __1280 × 720__ •\n * Video compression: __H.264__ •\n * Audio compression: __AAC__\n */\n H264_1280x720 = 6,\n /**\n * Resolution: __1920 × 1080__ •\n * Video compression: __H.264__ •\n * Audio compression: __AAC__\n */\n H264_1920x1080 = 7,\n /**\n * Resolution: __3840 × 2160__ •\n * Video compression: __H.264__ •\n * Audio compression: __AAC__\n */\n H264_3840x2160 = 8,\n /**\n * Resolution: __1920 × 1080__ •\n * Video compression: __HEVC__ •\n * Audio compression: __AAC__\n */\n HEVC_1920x1080 = 9,\n /**\n * Resolution: __3840 × 2160__ •\n * Video compression: __HEVC__ •\n * Audio compression: __AAC__\n */\n HEVC_3840x2160 = 10,\n}\n\n// @needsAudit\nexport enum UIImagePickerControllerQualityType {\n /**\n * Highest available resolution.\n */\n High = 0,\n /**\n * Depends on the device.\n */\n Medium = 1,\n /**\n * Depends on the device.\n */\n Low = 2,\n /**\n * 640 × 480\n */\n VGA640x480 = 3,\n /**\n * 1280 × 720\n */\n IFrame1280x720 = 4,\n /**\n * 960 × 540\n */\n IFrame960x540 = 5,\n}\n\n/**\n * Picker presentation style. Its values are directly mapped to the [`UIModalPresentationStyle`](https://developer.apple.com/documentation/uikit/uiviewcontroller/1621355-modalpresentationstyle).\n *\n * @platform ios\n */\nexport enum UIImagePickerPresentationStyle {\n /**\n * A presentation style in which the presented picker covers the screen.\n */\n FULL_SCREEN = 'fullScreen',\n /**\n * A presentation style that partially covers the underlying content.\n */\n PAGE_SHEET = 'pageSheet',\n /**\n * A presentation style that displays the picker centered in the screen.\n */\n FORM_SHEET = 'formSheet',\n /**\n * A presentation style where the picker is displayed over the app's content.\n */\n CURRENT_CONTEXT = 'currentContext',\n /**\n * A presentation style in which the picker view covers the screen.\n */\n OVER_FULL_SCREEN = 'overFullScreen',\n /**\n * A presentation style where the picker is displayed over the app's content.\n */\n OVER_CURRENT_CONTEXT = 'overCurrentContext',\n /**\n * A presentation style where the picker is displayed in a popover view.\n */\n POPOVER = 'popover',\n /**\n * The default presentation style chosen by the system.\n * On older iOS versions, falls back to `WebBrowserPresentationStyle.FullScreen`.\n *\n * @platform ios 13+\n */\n AUTOMATIC = 'automatic',\n /**\n * @deprecated Use `UIImagePickerPresentationStyle.FULL_SCREEN` instead.\n */\n FullScreen = 'fullScreen',\n /**\n * @deprecated Use `UIImagePickerPresentationStyle.PAGE_SHEET` instead.\n */\n PageSheet = 'pageSheet',\n /**\n * @deprecated Use `UIImagePickerPresentationStyle.FORM_SHEET` instead.\n */\n FormSheet = 'formSheet',\n /**\n * @deprecated Use `UIImagePickerPresentationStyle.CURRENT_CONTEXT` instead.\n */\n CurrentContext = 'currentContext',\n /**\n * @deprecated Use `UIImagePickerPresentationStyle.OVER_FULL_SCREEN` instead.\n */\n OverFullScreen = 'overFullScreen',\n /**\n * @deprecated Use `UIImagePickerPresentationStyle.OVER_CURRENT_CONTEXT` instead.\n */\n OverCurrentContext = 'overCurrentContext',\n /**\n * @deprecated Use `UIImagePickerPresentationStyle.POPOVER` instead.\n */\n Popover = 'popover',\n /**\n * @deprecated Use `UIImagePickerPresentationStyle.AUTOMATIC` instead.\n */\n Automatic = 'automatic',\n}\n\n/**\n * @hidden\n * @deprecated Use `ImagePickerAsset` instead\n */\nexport type ImageInfo = ImagePickerAsset;\n\n/**\n * Represents an asset (image or video) returned by the image picker or camera.\n */\nexport type ImagePickerAsset = {\n /**\n * URI to the local image or video file (usable as the source of an `Image` element, in the case of\n * an image) and `width` and `height` specify the dimensions of the media.\n */\n uri: string;\n /**\n * The unique ID that represents the picked image or video, if picked from the library. It can be used\n * by [expo-media-library](./media-library) to manage the picked asset.\n *\n * > This might be `null` when the ID is unavailable or the user gave limited permission to access the media library.\n * > On Android, the ID is unavailable when the user selects a photo by directly browsing file system.\n *\n * @platform ios\n * @platform android\n */\n assetId?: string | null;\n /**\n * Width of the image or video.\n */\n width: number;\n /**\n * Height of the image or video.\n */\n height: number;\n /**\n * The type of the asset.\n */\n type?: 'image' | 'video';\n /**\n * Preferred filename to use when saving this item. This might be `null` when the name is unavailable\n * or user gave limited permission to access the media library.\n *\n * @platform ios\n */\n fileName?: string | null;\n /**\n * File size of the picked image or video, in bytes.\n *\n * @platform ios\n */\n fileSize?: number;\n /**\n * The `exif` field is included if the `exif` option is truthy, and is an object containing the\n * image's EXIF data. The names of this object's properties are EXIF tags and the values are the\n * respective EXIF values for those tags.\n */\n exif?: Record | null;\n /**\n * When the `base64` option is truthy, it is a Base64-encoded string of the selected image's JPEG data, otherwise `null`.\n * If you prepend this with `'data:image/jpeg;base64,'` to create a data URI,\n * you can use it as the source of an `Image` element; for example:\n * ```ts\n * \n * ```\n */\n base64?: string | null;\n /**\n * Length of the video in milliseconds or `null` if the asset is not a video.\n */\n duration?: number | null;\n};\n\n// @needsAudit\nexport type ImagePickerErrorResult = {\n /**\n * The error code.\n */\n code: string;\n /**\n * The error message.\n */\n message: string;\n /**\n * The exception which caused the error.\n */\n exception?: string;\n};\n\n// @needsAudit\nexport type ImagePickerResult = {\n /**\n * An array of picked assets or `null` when the request was canceled.\n */\n assets: ImagePickerAsset[] | null;\n /**\n * Boolean flag which shows if request was canceled. If asset data have been returned this should\n * always be `false`.\n */\n canceled: boolean;\n /**\n * @deprecated Use `canceled` instead.\n */\n cancelled?: boolean;\n /**\n * @deprecated This field is deprecated and will be removed in SDK 48, you can access selected assets through the `assets` array instead.\n */\n selected?: ImagePickerAsset[];\n /**\n * @deprecated This field is deprecated and will be removed in SDK 48, you can access selected assets through the `assets` array instead.\n */\n uri?: string;\n /**\n * @deprecated This field is deprecated and will be removed in SDK 48, you can access selected assets through the `assets` array instead.\n */\n assetId?: string | null;\n /**\n * @deprecated This field is deprecated and will be removed in SDK 48, you can access selected assets through the `assets` array instead.\n */\n width?: number;\n /**\n * @deprecated This field is deprecated and will be removed in SDK 48, you can access selected assets through the `assets` array instead.\n */\n height?: number;\n /**\n * @deprecated This field is deprecated and will be removed in SDK 48, you can access selected assets through the `assets` array instead.\n */\n type?: 'image' | 'video';\n /**\n * @deprecated This field is deprecated and will be removed in SDK 48, you can access selected assets through the `assets` array instead.\n */\n fileName?: string | null;\n /**\n * @deprecated This field is deprecated and will be removed in SDK 48, you can access selected assets through the `assets` array instead.\n */\n fileSize?: number;\n /**\n * @deprecated This field is deprecated and will be removed in SDK 48, you can access selected assets through the `assets` array instead.\n */\n exif?: Record | null;\n /**\n * @deprecated This field is deprecated and will be removed in SDK 48, you can access selected assets through the `assets` array instead.\n */\n base64?: string | null;\n /**\n * @deprecated This field is deprecated and will be removed in SDK 48, you can access selected assets through the `assets` array instead.\n */\n duration?: number | null;\n} & (ImagePickerSuccessResult | ImagePickerCanceledResult);\n\n/**\n * @hidden\n */\nexport type ImagePickerSuccessResult = {\n canceled: false;\n assets: ImagePickerAsset[];\n};\n\n/**\n * @hidden\n */\nexport type ImagePickerCanceledResult = {\n canceled: true;\n assets: null;\n};\n\n/**\n * @hidden\n * @deprecated Use `ImagePickerResult` instead.\n */\nexport type ImagePickerCancelledResult = ImagePickerCanceledResult;\n\n/**\n * @hidden\n * @deprecated `ImagePickerMultipleResult` has been deprecated in favor of `ImagePickerResult`.\n */\nexport type ImagePickerMultipleResult = ImagePickerResult;\n\n// @needsAudit\nexport type ImagePickerOptions = {\n /**\n * Whether to show a UI to edit the image after it is picked. On Android the user can crop and\n * rotate the image and on iOS simply crop it.\n *\n * > Cropping multiple images is not supported - this option is mutually exclusive with `allowsMultipleSelection`.\n * > On iOS, this option is ignored if `allowsMultipleSelection` is enabled.\n *\n * @default false\n * @platform ios\n * @platform android\n */\n allowsEditing?: boolean;\n /**\n * An array with two entries `[x, y]` specifying the aspect ratio to maintain if the user is\n * allowed to edit the image (by passing `allowsEditing: true`). This is only applicable on\n * Android, since on iOS the crop rectangle is always a square.\n */\n aspect?: [number, number];\n /**\n * Specify the quality of compression, from `0` to `1`. `0` means compress for small size,\n * `1` means compress for maximum quality.\n * > Note: If the selected image has been compressed before, the size of the output file may be\n * > bigger than the size of the original image.\n *\n * > Note: On iOS, if a `.bmp` or `.png` image is selected from the library, this option is ignored.\n *\n * @default 0.2\n * @platform ios\n * @platform android\n */\n quality?: number;\n /**\n * Choose what type of media to pick.\n * @default ImagePicker.MediaTypeOptions.Images\n */\n mediaTypes?: MediaTypeOptions;\n /**\n * Whether to also include the EXIF data for the image. On iOS the EXIF data does not include GPS\n * tags in the camera case.\n */\n exif?: boolean;\n /**\n * Whether to also include the image data in Base64 format.\n */\n base64?: boolean;\n /**\n * Specify preset which will be used to compress selected video.\n * @default ImagePicker.VideoExportPreset.Passthrough\n * @platform ios 11+\n * @deprecated See [`videoExportPreset`](https://developer.apple.com/documentation/uikit/uiimagepickercontroller/2890964-videoexportpreset?language=objc)\n * in Apple documentation.\n */\n videoExportPreset?: VideoExportPreset;\n /**\n * Specify the quality of recorded videos. Defaults to the highest quality available for the device.\n * @default ImagePicker.UIImagePickerControllerQualityType.High\n * @platform ios\n */\n videoQuality?: UIImagePickerControllerQualityType;\n /**\n * Whether or not to allow selecting multiple media files at once.\n *\n * > Cropping multiple images is not supported - this option is mutually exclusive with `allowsEditing`.\n * > If this option is enabled, then `allowsEditing` is ignored.\n *\n * @default false\n * @platform ios 14+\n * @platform android\n * @platform web\n */\n allowsMultipleSelection?: boolean;\n /**\n * The maximum number of items that user can select. Applicable when `allowsMultipleSelection` is enabled.\n * Setting the value to `0` sets the selection limit to the maximum that the system supports.\n *\n * @platform ios 14+\n * @default 0\n */\n selectionLimit?: number;\n /**\n * Whether to display number badges when assets are selected. The badges are numbered\n * in selection order. Assets are then returned in the exact same order they were selected.\n *\n * > Assets should be returned in the selection order regardless of this option,\n * > but there is no guarantee that it is always true when this option is disabled.\n *\n * @platform ios 15+\n * @default false\n */\n orderedSelection?: boolean;\n /**\n * Maximum duration, in seconds, for video recording. Setting this to `0` disables the limit.\n * Defaults to `0` (no limit).\n * - **On iOS**, when `allowsEditing` is set to `true`, maximum duration is limited to 10 minutes.\n * This limit is applied automatically, if `0` or no value is specified.\n * - **On Android**, effect of this option depends on support of installed camera app.\n * - **On Web** this option has no effect - the limit is browser-dependant.\n */\n videoMaxDuration?: number;\n /**\n * Choose [presentation style](https://developer.apple.com/documentation/uikit/uiviewcontroller/1621355-modalpresentationstyle?language=objc)\n * to customize view during taking photo/video.\n * @default ImagePicker.UIImagePickerPresentationStyle.Automatic\n * @platform ios\n */\n presentationStyle?: UIImagePickerPresentationStyle;\n};\n\n// @needsAudit\nexport type OpenFileBrowserOptions = {\n /**\n * Choose what type of media to pick.\n * @default ImagePicker.MediaTypeOptions.Images\n */\n mediaTypes: MediaTypeOptions;\n // @docsMissing\n capture?: boolean;\n /**\n * Whether or not to allow selecting multiple media files at once.\n * @platform web\n */\n allowsMultipleSelection: boolean;\n /**\n * Whether to also include the image data in Base64 format.\n */\n base64: boolean;\n};\n\n/**\n * @hidden\n * @deprecated Use `ImagePickerResult` or `OpenFileBrowserOptions` instead.\n */\nexport type ExpandImagePickerResult =\n T extends {\n allowsMultipleSelection: true;\n }\n ? ImagePickerResult\n : ImagePickerResult;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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) Meta Platforms, Inc. and affiliates.\n *\n * This source 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();","export const IS_MANAGED_ENV = false;\nexport const IS_ENV_WITH_UPDATES_ENABLED = false;\nexport const IS_ENV_WITHOUT_UPDATES_ENABLED = false;\n\n// Compute manifest base URL if available\nexport const manifestBaseUrl = null;\n\nexport async function downloadAsync(uri, hash, type, name): Promise {\n return uri;\n}\n\nexport function getManifest() {\n return {};\n}\n\nexport function getManifest2() {\n return {};\n}\n","import Foundation from './build/Foundation';\nexport default Foundation;\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { Animated, Easing, Platform, StyleSheet, View } from 'react-native';\nimport { useInternalTheme } from '../core/theming';\nconst DURATION = 2400;\n\n/**\n * Activity indicator is used to present progress of some activity in the app.\n * It can be used as a drop-in for the ActivityIndicator shipped with React Native.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { ActivityIndicator, MD2Colors } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * \n * );\n *\n * export default MyComponent;\n * ```\n */\nconst ActivityIndicator = _ref => {\n var _theme$colors;\n let {\n animating = true,\n color: indicatorColor,\n hidesWhenStopped = true,\n size: indicatorSize = 'small',\n style,\n theme: themeOverrides,\n ...rest\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const {\n current: timer\n } = React.useRef(new Animated.Value(0));\n const {\n current: fade\n } = React.useRef(new Animated.Value(!animating && hidesWhenStopped ? 0 : 1));\n const rotation = React.useRef(undefined);\n const {\n animation: {\n scale\n }\n } = theme;\n const startRotation = React.useCallback(() => {\n // Show indicator\n Animated.timing(fade, {\n duration: 200 * scale,\n toValue: 1,\n isInteraction: false,\n useNativeDriver: true\n }).start();\n\n // Circular animation in loop\n if (rotation.current) {\n timer.setValue(0);\n // $FlowFixMe\n Animated.loop(rotation.current).start();\n }\n }, [scale, fade, timer]);\n const stopRotation = () => {\n if (rotation.current) {\n rotation.current.stop();\n }\n };\n React.useEffect(() => {\n if (rotation.current === undefined) {\n // Circular animation in loop\n rotation.current = Animated.timing(timer, {\n duration: DURATION,\n easing: Easing.linear,\n // Animated.loop does not work if useNativeDriver is true on web\n useNativeDriver: Platform.OS !== 'web',\n toValue: 1,\n isInteraction: false\n });\n }\n if (animating) {\n startRotation();\n } else if (hidesWhenStopped) {\n // Hide indicator first and then stop rotation\n Animated.timing(fade, {\n duration: 200 * scale,\n toValue: 0,\n useNativeDriver: true,\n isInteraction: false\n }).start(stopRotation);\n } else {\n stopRotation();\n }\n }, [animating, fade, hidesWhenStopped, startRotation, scale, timer]);\n const color = indicatorColor || ((_theme$colors = theme.colors) === null || _theme$colors === void 0 ? void 0 : _theme$colors.primary);\n const size = typeof indicatorSize === 'string' ? indicatorSize === 'small' ? 24 : 48 : indicatorSize ? indicatorSize : 24;\n const frames = 60 * DURATION / 1000;\n const easing = Easing.bezier(0.4, 0.0, 0.7, 1.0);\n const containerStyle = {\n width: size,\n height: size / 2,\n overflow: 'hidden'\n };\n return /*#__PURE__*/React.createElement(View, _extends({\n style: [styles.container, style]\n }, rest, {\n accessible: true,\n accessibilityRole: \"progressbar\",\n accessibilityState: {\n busy: animating\n }\n }), /*#__PURE__*/React.createElement(Animated.View, {\n style: [{\n width: size,\n height: size,\n opacity: fade\n }],\n collapsable: false\n }, [0, 1].map(index => {\n // Thanks to https://github.com/n4kz/react-native-indicators for the great work\n const inputRange = Array.from(new Array(frames), (_, frameIndex) => frameIndex / (frames - 1));\n const outputRange = Array.from(new Array(frames), (_, frameIndex) => {\n let progress = 2 * frameIndex / (frames - 1);\n const rotation = index ? +(360 - 15) : -(180 - 15);\n if (progress > 1.0) {\n progress = 2.0 - progress;\n }\n const direction = index ? -1 : +1;\n return `${direction * (180 - 30) * easing(progress) + rotation}deg`;\n });\n const layerStyle = {\n width: size,\n height: size,\n transform: [{\n rotate: timer.interpolate({\n inputRange: [0, 1],\n outputRange: [`${0 + 30 + 15}deg`, `${2 * 360 + 30 + 15}deg`]\n })\n }]\n };\n const viewportStyle = {\n width: size,\n height: size,\n transform: [{\n translateY: index ? -size / 2 : 0\n }, {\n rotate: timer.interpolate({\n inputRange,\n outputRange\n })\n }]\n };\n const offsetStyle = index ? {\n top: size / 2\n } : null;\n const lineStyle = {\n width: size,\n height: size,\n borderColor: color,\n borderWidth: size / 10,\n borderRadius: size / 2\n };\n return /*#__PURE__*/React.createElement(Animated.View, {\n key: index,\n style: [styles.layer]\n }, /*#__PURE__*/React.createElement(Animated.View, {\n style: layerStyle\n }, /*#__PURE__*/React.createElement(Animated.View, {\n style: [containerStyle, offsetStyle],\n collapsable: false\n }, /*#__PURE__*/React.createElement(Animated.View, {\n style: viewportStyle\n }, /*#__PURE__*/React.createElement(Animated.View, {\n style: containerStyle,\n collapsable: false\n }, /*#__PURE__*/React.createElement(Animated.View, {\n style: lineStyle\n }))))));\n })));\n};\nconst styles = StyleSheet.create({\n container: {\n justifyContent: 'center',\n alignItems: 'center'\n },\n layer: {\n ...StyleSheet.absoluteFillObject,\n justifyContent: 'center',\n alignItems: 'center'\n }\n});\nexport default ActivityIndicator;\n//# sourceMappingURL=ActivityIndicator.js.map","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 ReactDOM from 'react-dom';\nimport canUseDOM from '../../modules/canUseDom';\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(() => {\n if (canUseDOM) {\n return () => {\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) Meta Platforms, Inc. and affiliates.\n *\n * This source 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(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(() => {\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\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;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"active\", \"children\", \"onRequestClose\", \"transparent\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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';\nimport StyleSheet from '../StyleSheet';\nimport canUseDOM from '../../modules/canUseDom';\nvar ModalContent = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var active = props.active,\n children = props.children,\n onRequestClose = props.onRequestClose,\n transparent = props.transparent,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n\n React.useEffect(() => {\n if (canUseDOM) {\n var 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 () => document.removeEventListener('keyup', closeOnEscape, false);\n }\n }, [active, onRequestClose]);\n var style = React.useMemo(() => {\n return [styles.modal, transparent ? styles.modalTransparent : styles.modalOpaque];\n }, [transparent]);\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, {\n accessibilityModal: true,\n accessibilityRole: active ? 'dialog' : null,\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) Meta Platforms, Inc. and affiliates.\n *\n * This source 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';\nimport createElement from '../createElement';\nimport StyleSheet from '../StyleSheet';\nimport UIManager from '../UIManager';\nimport canUseDOM from '../../modules/canUseDom';\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 = () => {\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 = _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(() => {\n if (canUseDOM) {\n var 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 () => document.removeEventListener('focus', trapFocus, true);\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});","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"animationType\", \"children\", \"onDismiss\", \"onRequestClose\", \"onShow\", \"transparent\", \"visible\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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(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((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,\n rest = _objectWithoutPropertiesLoose(props, _excluded); // Set a unique model identifier so we can correctly route\n // dismissals and check the layering of modals.\n\n\n var modalId = React.useMemo(() => uniqueModalIdentifier++, []);\n\n var _React$useState = React.useState(false),\n isActive = _React$useState[0],\n setIsActive = _React$useState[1];\n\n var onDismissCallback = React.useCallback(() => {\n removeActiveModal(modalId);\n\n if (onDismiss) {\n onDismiss();\n }\n }, [modalId, onDismiss]);\n var onShowCallback = React.useCallback(() => {\n addActiveModal(modalId, setIsActive);\n\n if (onShow) {\n onShow();\n }\n }, [modalId, onShow]);\n React.useEffect(() => {\n return () => removeActiveModal(modalId);\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, _extends({}, rest, {\n active: isActive,\n onRequestClose: onRequestClose,\n ref: forwardedRef,\n transparent: transparent\n }), children))));\n});\nexport default Modal;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nvar _excluded = [\"numColumns\", \"columnWrapperStyle\", \"removeClippedSubviews\"];\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 deepDiffer from '../deepDiffer';\nimport * as React from 'react';\nimport View from '../../../exports/View';\nimport VirtualizedList from '../VirtualizedList';\nimport StyleSheet from '../../../exports/StyleSheet';\nimport invariant from 'fbjs/lib/invariant';\nimport { keyExtractor as defaultKeyExtractor } from '../VirtualizeUtils';\n\n/**\n * Default Props Helper Functions\n * Use the following helper functions for default values\n */\n// removeClippedSubviewsOrDefault(this.props.removeClippedSubviews)\nfunction removeClippedSubviewsOrDefault(removeClippedSubviews) {\n return removeClippedSubviews !== null && removeClippedSubviews !== void 0 ? removeClippedSubviews : Platform.OS === 'android';\n} // numColumnsOrDefault(this.props.numColumns)\n\n\nfunction numColumnsOrDefault(numColumns) {\n return numColumns !== null && numColumns !== void 0 ? 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 */\nclass FlatList extends React.PureComponent {\n /**\n * Scrolls to the end of the content. May be janky without `getItemLayout` prop.\n */\n 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 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 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 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 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 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 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 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 getScrollableNode() {\n if (this._listRef) {\n return this._listRef.getScrollableNode();\n }\n }\n\n setNativeProps(props) {\n if (this._listRef) {\n this._listRef.setNativeProps(props);\n }\n }\n\n constructor(_props) {\n super(_props);\n this._virtualizedListPairs = [];\n\n this._captureRef = ref => {\n this._listRef = ref;\n };\n\n this._getItem = (data, index) => {\n var numColumns = numColumnsOrDefault(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 = data => {\n if (data) {\n var numColumns = numColumnsOrDefault(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 = (items, index) => {\n var _this$props$keyExtrac;\n\n var numColumns = numColumnsOrDefault(this.props.numColumns);\n var keyExtractor = (_this$props$keyExtrac = this.props.keyExtractor) !== null && _this$props$keyExtrac !== void 0 ? _this$props$keyExtrac : defaultKeyExtractor;\n\n if (numColumns > 1) {\n if (Array.isArray(items)) {\n return items.map((item, kk) => keyExtractor(item, index * numColumns + kk)).join(':');\n } else {\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 }\n } else {\n // $FlowFixMe[incompatible-call] Can't call keyExtractor with an array\n return keyExtractor(items, index);\n }\n };\n\n this._renderer = () => {\n var _this$props = this.props,\n ListItemComponent = _this$props.ListItemComponent,\n renderItem = _this$props.renderItem,\n columnWrapperStyle = _this$props.columnWrapperStyle;\n var numColumns = numColumnsOrDefault(this.props.numColumns);\n var virtualizedListRenderKey = ListItemComponent ? 'ListItemComponent' : 'renderItem';\n\n var renderer = props => {\n if (ListItemComponent) {\n // $FlowFixMe[not-a-component] Component isn't valid\n // $FlowFixMe[incompatible-type-arg] Component isn't valid\n // $FlowFixMe[incompatible-return] 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 {\n /* $FlowFixMe[invalid-computed-prop] (>=0.111.0 site=react_native_fb)\n * This comment suppresses an error found when Flow v0.111 was deployed.\n * To see the error, delete this comment and run Flow. */\n [virtualizedListRenderKey]: 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((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 }\n };\n };\n\n this._checkProps(this.props);\n\n if (this.props.viewabilityConfigCallbackPairs) {\n this._virtualizedListPairs = this.props.viewabilityConfigCallbackPairs.map(pair => ({\n viewabilityConfig: pair.viewabilityConfig,\n onViewableItemsChanged: this._createOnViewableItemsChanged(pair.onViewableItemsChanged)\n }));\n } else if (this.props.onViewableItemsChanged) {\n this._virtualizedListPairs.push({\n /* $FlowFixMe[incompatible-call] (>=0.63.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.63 was deployed. To\n * see the error delete this comment and run Flow. */\n viewabilityConfig: this.props.viewabilityConfig,\n onViewableItemsChanged: this._createOnViewableItemsChanged(this.props.onViewableItemsChanged)\n });\n }\n }\n\n 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 _checkProps(props) {\n var getItem = props.getItem,\n getItemCount = props.getItemCount,\n horizontal = props.horizontal,\n columnWrapperStyle = props.columnWrapperStyle,\n onViewableItemsChanged = props.onViewableItemsChanged,\n viewabilityConfigCallbackPairs = props.viewabilityConfigCallbackPairs;\n var numColumns = numColumnsOrDefault(this.props.numColumns);\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 _pushMultiColumnViewable(arr, v) {\n var _this$props$keyExtrac2;\n\n var numColumns = numColumnsOrDefault(this.props.numColumns);\n var keyExtractor = (_this$props$keyExtrac2 = this.props.keyExtractor) !== null && _this$props$keyExtrac2 !== void 0 ? _this$props$keyExtrac2 : defaultKeyExtractor;\n v.item.forEach((item, ii) => {\n invariant(v.index != null, 'Missing index!');\n var index = v.index * numColumns + ii;\n arr.push(_objectSpread(_objectSpread({}, v), {}, {\n item,\n key: keyExtractor(item, index),\n index\n }));\n });\n }\n\n _createOnViewableItemsChanged(onViewableItemsChanged) {\n return info => {\n var numColumns = numColumnsOrDefault(this.props.numColumns);\n\n if (onViewableItemsChanged) {\n if (numColumns > 1) {\n var changed = [];\n var viewableItems = [];\n info.viewableItems.forEach(v => this._pushMultiColumnViewable(viewableItems, v));\n info.changed.forEach(v => this._pushMultiColumnViewable(changed, v));\n onViewableItemsChanged({\n viewableItems,\n changed\n });\n } else {\n onViewableItemsChanged(info);\n }\n }\n };\n }\n\n render() {\n var _this$props2 = this.props,\n numColumns = _this$props2.numColumns,\n columnWrapperStyle = _this$props2.columnWrapperStyle,\n _removeClippedSubviews = _this$props2.removeClippedSubviews,\n restProps = _objectWithoutPropertiesLoose(_this$props2, _excluded);\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 removeClippedSubviews: removeClippedSubviewsOrDefault(_removeClippedSubviews)\n }, this._renderer()));\n }\n\n}\n\nvar styles = StyleSheet.create({\n row: {\n flexDirection: 'row'\n }\n});\nexport default FlatList;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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;","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","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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\nclass UnimplementedView extends React.Component {\n setNativeProps() {// Do nothing.\n }\n\n render() {\n return /*#__PURE__*/React.createElement(View, {\n style: [unimplementedViewStyles, this.props.style]\n }, this.props.children);\n }\n\n}\n\nvar unimplementedViewStyles = process.env.NODE_ENV !== 'production' ? {\n alignSelf: 'flex-start',\n borderColor: 'red',\n borderWidth: 1\n} : {};\nexport default UnimplementedView;","import { Platform } from 'react-native';\n\nlet EXPERIMENTAL_WEB_IMPLEMENTATION = false;\nlet getWasCalled = false;\n\nexport function enableExperimentalWebImplementation(shouldEnable = true): void {\n if (\n Platform.OS !== 'web' ||\n EXPERIMENTAL_WEB_IMPLEMENTATION === shouldEnable\n ) {\n return;\n }\n\n if (getWasCalled) {\n console.error(\n 'Some parts of this application have already started using old gesture handler implementation. No changes will be applied. You can try enabling new implementation earlier.'\n );\n return;\n }\n\n EXPERIMENTAL_WEB_IMPLEMENTATION = shouldEnable;\n}\n\nexport function isExperimentalWebImplementationEnabled(): boolean {\n getWasCalled = true;\n return EXPERIMENTAL_WEB_IMPLEMENTATION;\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","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","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 (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 { useEffect, useLayoutEffect } from 'react';\nimport canUseDOM from '../canUseDom';\nvar useLayoutEffectImpl = canUseDOM ? useLayoutEffect : useEffect;\nexport default useLayoutEffectImpl;","import * as React from 'react';\nimport MaterialCommunityIcon from '../components/MaterialCommunityIcon';\nexport const SettingsContext = /*#__PURE__*/React.createContext({\n icon: MaterialCommunityIcon,\n rippleEffectEnabled: true\n});\nexport const {\n Provider,\n Consumer\n} = SettingsContext;\n//# sourceMappingURL=settings.js.map","export function addEventListener(Module) {\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n const [eventName, handler] = rest;\n let removed = false;\n const subscription = Module.addEventListener(eventName, handler) ?? {\n remove: () => {\n var _Module$removeEventLi, _Module$remove;\n if (removed) {\n return;\n }\n (_Module$removeEventLi = Module.removeEventListener) === null || _Module$removeEventLi === void 0 ? void 0 : _Module$removeEventLi.call(Module, eventName, handler);\n (_Module$remove = Module.remove) === null || _Module$remove === void 0 ? void 0 : _Module$remove.call(Module, eventName, handler);\n removed = true;\n }\n };\n return subscription;\n}\nexport function addListener(Module) {\n for (var _len2 = arguments.length, rest = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n rest[_key2 - 1] = arguments[_key2];\n }\n const [eventName, handler] = rest;\n let removed = false;\n const subscription = Module.addListener(eventName, handler) ?? {\n remove: () => {\n if (removed) {\n return;\n }\n Module.removeEventListener(eventName, handler);\n removed = true;\n }\n };\n return subscription;\n}\n//# sourceMappingURL=addEventListener.js.map","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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\nexport function 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\nexport function 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\nexport function computeWindowedRenderLimits(data, getItemCount, maxToRenderPerBatch, windowSize, prev, getFrameMetricsApprox, scrollMetrics) {\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], itemCount, 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,\n 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,\n last,\n itemCount,\n overscanFirst,\n overscanLast,\n visible\n }));\n }\n\n return {\n first,\n last\n };\n}\nexport function keyExtractor(item, index) {\n if (typeof item === 'object' && (item == null ? void 0 : item.key) != null) {\n return item.key;\n }\n\n if (typeof item === 'object' && (item == null ? void 0 : item.id) != null) {\n return item.id;\n }\n\n return String(index);\n}","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 canUseDOM from '../../modules/canUseDom';\nvar initialURL = canUseDOM ? window.location.href : '';\n\nclass Linking {\n constructor() {\n this._eventCallbacks = {};\n\n this.addEventListener = (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 = (event, callback) => {\n var callbacks = this._eventCallbacks[event];\n var filteredCallbacks = callbacks.filter(c => c.toString() !== callback.toString());\n this._eventCallbacks[event] = filteredCallbacks;\n };\n }\n\n _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(listener => {\n listener(...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 canOpenURL() {\n return Promise.resolve(true);\n }\n\n 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 a target is passed (including undefined) that target will be used, otherwise '_blank'.\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 openURL(url, target) {\n if (arguments.length === 1) {\n target = '_blank';\n }\n\n try {\n open(url, target);\n\n this._dispatchEvent('onOpen', url);\n\n return Promise.resolve();\n } catch (e) {\n return Promise.reject(e);\n }\n }\n\n _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}\n\nvar open = (url, target) => {\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, target, 'noopener');\n }\n }\n};\n\nexport default new Linking();","export const ActionType = {\n REANIMATED_WORKLET: 1,\n NATIVE_ANIMATED_EVENT: 2,\n JS_FUNCTION_OLD_API: 3,\n JS_FUNCTION_NEW_API: 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 ActionType = typeof ActionType[keyof typeof ActionType];\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","import { Platform } from 'react-native';\nimport { typescale } from './themes/v3/tokens';\nexport const fontConfig = {\n web: {\n regular: {\n fontFamily: 'Roboto, \"Helvetica Neue\", Helvetica, Arial, sans-serif',\n fontWeight: '400'\n },\n medium: {\n fontFamily: 'Roboto, \"Helvetica Neue\", Helvetica, Arial, sans-serif',\n fontWeight: '500'\n },\n light: {\n fontFamily: 'Roboto, \"Helvetica Neue\", Helvetica, Arial, sans-serif',\n fontWeight: '300'\n },\n thin: {\n fontFamily: 'Roboto, \"Helvetica Neue\", Helvetica, Arial, sans-serif',\n fontWeight: '100'\n }\n },\n ios: {\n regular: {\n fontFamily: 'System',\n fontWeight: '400'\n },\n medium: {\n fontFamily: 'System',\n fontWeight: '500'\n },\n light: {\n fontFamily: 'System',\n fontWeight: '300'\n },\n thin: {\n fontFamily: 'System',\n fontWeight: '100'\n }\n },\n default: {\n regular: {\n fontFamily: 'sans-serif',\n fontWeight: 'normal'\n },\n medium: {\n fontFamily: 'sans-serif-medium',\n fontWeight: 'normal'\n },\n light: {\n fontFamily: 'sans-serif-light',\n fontWeight: 'normal'\n },\n thin: {\n fontFamily: 'sans-serif-thin',\n fontWeight: 'normal'\n }\n }\n};\nfunction configureV2Fonts(config) {\n const fonts = Platform.select({\n ...fontConfig,\n ...config\n });\n return fonts;\n}\nfunction configureV3Fonts(config) {\n if (!config) {\n return typescale;\n }\n const isFlatConfig = Object.keys(config).every(key => typeof config[key] !== 'object');\n if (isFlatConfig) {\n return Object.fromEntries(Object.entries(typescale).map(_ref => {\n let [variantName, variantProperties] = _ref;\n return [variantName, {\n ...variantProperties,\n ...config\n }];\n }));\n }\n return Object.assign({}, typescale, ...Object.entries(config).map(_ref2 => {\n let [variantName, variantProperties] = _ref2;\n return {\n [variantName]: {\n ...typescale[variantName],\n ...variantProperties\n }\n };\n }));\n}\n\n// eslint-disable-next-line no-redeclare\n\n// eslint-disable-next-line no-redeclare\n\n// eslint-disable-next-line no-redeclare\n\n// eslint-disable-next-line no-redeclare\n\n// eslint-disable-next-line no-redeclare\n\n// eslint-disable-next-line no-redeclare\nexport default function configureFonts(params) {\n const {\n isV3 = true,\n config\n } = params || {};\n if (isV3) {\n return configureV3Fonts(config);\n }\n return configureV2Fonts(config);\n}\n//# sourceMappingURL=fonts.js.map","/**\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 _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"children\", \"style\", \"imageStyle\", \"imageRef\"];\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport { forwardRef } from 'react';\nimport Image from '../Image';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar emptyObject = {};\n/**\n * Very simple drop-in replacement for which supports nesting views.\n */\n\nvar ImageBackground = /*#__PURE__*/forwardRef((props, forwardedRef) => {\n var children = props.children,\n _props$style = props.style,\n style = _props$style === void 0 ? emptyObject : _props$style,\n imageStyle = props.imageStyle,\n imageRef = props.imageRef,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n\n var _StyleSheet$flatten = StyleSheet.flatten(style),\n height = _StyleSheet$flatten.height,\n width = _StyleSheet$flatten.width;\n\n return /*#__PURE__*/React.createElement(View, {\n ref: forwardedRef,\n style: style\n }, /*#__PURE__*/React.createElement(Image, _extends({}, rest, {\n ref: imageRef,\n style: [{\n // Temporary Workaround:\n // Current (imperfect yet) implementation of overwrites width and height styles\n // (which is not quite correct), and these styles conflict with explicitly set styles\n // of and with our internal layout model here.\n // So, we have to proxy/reapply these styles explicitly for actual component.\n // This workaround should be removed after implementing proper support of\n // intrinsic content size of the .\n width,\n height,\n zIndex: -1\n }, StyleSheet.absoluteFill, imageStyle]\n })), children);\n});\nImageBackground.displayName = 'ImageBackground';\nexport default ImageBackground;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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) Meta Platforms, Inc. and affiliates.\n *\n * This source 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(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(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(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(event) {\n return config.onStartShouldSetPanResponder == null ? false : config.onStartShouldSetPanResponder(event, gestureState);\n },\n\n onMoveShouldSetResponder(event) {\n return config.onMoveShouldSetPanResponder == null ? false : config.onMoveShouldSetPanResponder(event, gestureState);\n },\n\n 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\n 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\n 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\n onResponderReject(event) {\n clearInteractionHandle(interactionState, config.onPanResponderReject, event, gestureState);\n },\n\n onResponderRelease(event) {\n clearInteractionHandle(interactionState, config.onPanResponderRelease, event, gestureState);\n setInteractionTimeout(interactionState);\n\n PanResponder._initializeGestureState(gestureState);\n },\n\n 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\n 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\n onResponderEnd(event) {\n var touchHistory = event.touchHistory;\n gestureState.numberActiveTouches = touchHistory.numberActiveTouches;\n clearInteractionHandle(interactionState, config.onPanResponderEnd, event, gestureState);\n },\n\n onResponderTerminate(event) {\n clearInteractionHandle(interactionState, config.onPanResponderTerminate, event, gestureState);\n setInteractionTimeout(interactionState);\n\n PanResponder._initializeGestureState(gestureState);\n },\n\n onResponderTerminationRequest(event) {\n return config.onPanResponderTerminationRequest == null ? true : config.onPanResponderTerminationRequest(event, gestureState);\n },\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: event => {\n if (interactionState.shouldCancelClick === true) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n };\n return {\n panHandlers,\n\n getInteractionHandle() {\n return interactionState.handle;\n }\n\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(() => {\n interactionState.shouldCancelClick = false;\n }, 250);\n}\n\nexport default PanResponder;","import PanResponder from '../../vendor/react-native/PanResponder';\nexport default PanResponder;","import { StyleSheet } from 'react-native';\nimport color from 'color';\nimport { black, white } from '../../styles/themes/v2/colors';\nconst isDark = _ref => {\n let {\n dark,\n backgroundColor\n } = _ref;\n if (typeof dark === 'boolean') {\n return dark;\n }\n if (backgroundColor === 'transparent') {\n return false;\n }\n if (backgroundColor !== 'transparent') {\n return !color(backgroundColor).isLight();\n }\n return false;\n};\nconst getButtonBackgroundColor = _ref2 => {\n let {\n isMode,\n theme,\n disabled,\n customButtonColor\n } = _ref2;\n if (customButtonColor && !disabled) {\n return customButtonColor;\n }\n if (theme.isV3) {\n if (disabled) {\n if (isMode('outlined') || isMode('text')) {\n return 'transparent';\n }\n return theme.colors.surfaceDisabled;\n }\n if (isMode('elevated')) {\n return theme.colors.elevation.level1;\n }\n if (isMode('contained')) {\n return theme.colors.primary;\n }\n if (isMode('contained-tonal')) {\n return theme.colors.secondaryContainer;\n }\n }\n if (isMode('contained')) {\n if (disabled) {\n return color(theme.dark ? white : black).alpha(0.12).rgb().string();\n }\n return theme.colors.primary;\n }\n return 'transparent';\n};\nconst getButtonTextColor = _ref3 => {\n let {\n isMode,\n theme,\n disabled,\n customTextColor,\n backgroundColor,\n dark\n } = _ref3;\n if (customTextColor && !disabled) {\n return customTextColor;\n }\n if (theme.isV3) {\n if (disabled) {\n return theme.colors.onSurfaceDisabled;\n }\n if (typeof dark === 'boolean') {\n if (isMode('contained') || isMode('contained-tonal') || isMode('elevated')) {\n return isDark({\n dark,\n backgroundColor\n }) ? white : black;\n }\n }\n if (isMode('outlined') || isMode('text') || isMode('elevated')) {\n return theme.colors.primary;\n }\n if (isMode('contained')) {\n return theme.colors.onPrimary;\n }\n if (isMode('contained-tonal')) {\n return theme.colors.onSecondaryContainer;\n }\n }\n if (disabled) {\n return color(theme.dark ? white : black).alpha(0.32).rgb().string();\n }\n if (isMode('contained')) {\n return isDark({\n dark,\n backgroundColor\n }) ? white : black;\n }\n return theme.colors.primary;\n};\nconst getButtonBorderColor = _ref4 => {\n let {\n isMode,\n disabled,\n theme\n } = _ref4;\n if (theme.isV3) {\n if (disabled && isMode('outlined')) {\n return theme.colors.surfaceDisabled;\n }\n if (isMode('outlined')) {\n return theme.colors.outline;\n }\n }\n if (isMode('outlined')) {\n return color(theme.dark ? white : black).alpha(0.29).rgb().string();\n }\n return 'transparent';\n};\nconst getButtonBorderWidth = _ref5 => {\n let {\n isMode,\n theme\n } = _ref5;\n if (theme.isV3) {\n if (isMode('outlined')) {\n return 1;\n }\n }\n if (isMode('outlined')) {\n return StyleSheet.hairlineWidth;\n }\n return 0;\n};\nexport const getButtonColors = _ref6 => {\n let {\n theme,\n mode,\n customButtonColor,\n customTextColor,\n disabled,\n dark\n } = _ref6;\n const isMode = modeToCompare => {\n return mode === modeToCompare;\n };\n const backgroundColor = getButtonBackgroundColor({\n isMode,\n theme,\n disabled,\n customButtonColor\n });\n const textColor = getButtonTextColor({\n isMode,\n theme,\n disabled,\n customTextColor,\n backgroundColor,\n dark\n });\n const borderColor = getButtonBorderColor({\n isMode,\n theme,\n disabled\n });\n const borderWidth = getButtonBorderWidth({\n isMode,\n theme\n });\n return {\n backgroundColor,\n borderColor,\n textColor,\n borderWidth\n };\n};\n//# sourceMappingURL=utils.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { Animated, Platform, StyleSheet, View } from 'react-native';\nimport color from 'color';\nimport { getButtonColors } from './utils';\nimport { useInternalTheme } from '../../core/theming';\nimport { forwardRef } from '../../utils/forwardRef';\nimport hasTouchHandler from '../../utils/hasTouchHandler';\nimport { splitStyles } from '../../utils/splitStyles';\nimport ActivityIndicator from '../ActivityIndicator';\nimport Icon from '../Icon';\nimport Surface from '../Surface';\nimport TouchableRipple from '../TouchableRipple/TouchableRipple';\nimport Text from '../Typography/Text';\n/**\n * A button is component that the user can press to trigger an action.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Button } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * \n * );\n *\n * export default MyComponent;\n * ```\n */\nconst Button = (_ref, ref) => {\n var _StyleSheet$flatten;\n let {\n disabled,\n compact,\n mode = 'text',\n dark,\n loading,\n icon,\n buttonColor: customButtonColor,\n textColor: customTextColor,\n rippleColor: customRippleColor,\n children,\n accessibilityLabel,\n accessibilityHint,\n accessibilityRole = 'button',\n onPress,\n onPressIn,\n onPressOut,\n onLongPress,\n delayLongPress,\n style,\n theme: themeOverrides,\n uppercase: uppercaseProp,\n contentStyle,\n labelStyle,\n testID = 'button',\n accessible,\n background,\n maxFontSizeMultiplier,\n ...rest\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const isMode = React.useCallback(modeToCompare => {\n return mode === modeToCompare;\n }, [mode]);\n const {\n roundness,\n isV3,\n animation\n } = theme;\n const uppercase = uppercaseProp ?? !theme.isV3;\n const hasPassedTouchHandler = hasTouchHandler({\n onPress,\n onPressIn,\n onPressOut,\n onLongPress\n });\n const isElevationEntitled = !disabled && (isV3 ? isMode('elevated') : isMode('contained'));\n const initialElevation = isV3 ? 1 : 2;\n const activeElevation = isV3 ? 2 : 8;\n const {\n current: elevation\n } = React.useRef(new Animated.Value(isElevationEntitled ? initialElevation : 0));\n React.useEffect(() => {\n elevation.setValue(isElevationEntitled ? initialElevation : 0);\n }, [isElevationEntitled, elevation, initialElevation]);\n const handlePressIn = e => {\n onPressIn === null || onPressIn === void 0 ? void 0 : onPressIn(e);\n if (isV3 ? isMode('elevated') : isMode('contained')) {\n const {\n scale\n } = animation;\n Animated.timing(elevation, {\n toValue: activeElevation,\n duration: 200 * scale,\n useNativeDriver: Platform.OS === 'web' || Platform.constants.reactNativeVersion.minor <= 72\n }).start();\n }\n };\n const handlePressOut = e => {\n onPressOut === null || onPressOut === void 0 ? void 0 : onPressOut(e);\n if (isV3 ? isMode('elevated') : isMode('contained')) {\n const {\n scale\n } = animation;\n Animated.timing(elevation, {\n toValue: initialElevation,\n duration: 150 * scale,\n useNativeDriver: Platform.OS === 'web' || Platform.constants.reactNativeVersion.minor <= 72\n }).start();\n }\n };\n const flattenedStyles = StyleSheet.flatten(style) || {};\n const [, borderRadiusStyles] = splitStyles(flattenedStyles, style => style.startsWith('border') && style.endsWith('Radius'));\n const borderRadius = (isV3 ? 5 : 1) * roundness;\n const iconSize = isV3 ? 18 : 16;\n const {\n backgroundColor,\n borderColor,\n textColor,\n borderWidth\n } = getButtonColors({\n customButtonColor,\n customTextColor,\n theme,\n mode,\n disabled,\n dark\n });\n const rippleColor = customRippleColor || color(textColor).alpha(0.12).rgb().string();\n const touchableStyle = {\n ...borderRadiusStyles,\n borderRadius: borderRadiusStyles.borderRadius ?? borderRadius\n };\n const buttonStyle = {\n backgroundColor,\n borderColor,\n borderWidth,\n ...touchableStyle\n };\n const {\n color: customLabelColor,\n fontSize: customLabelSize\n } = StyleSheet.flatten(labelStyle) || {};\n const font = isV3 ? theme.fonts.labelLarge : theme.fonts.medium;\n const textStyle = {\n color: textColor,\n ...font\n };\n const iconStyle = ((_StyleSheet$flatten = StyleSheet.flatten(contentStyle)) === null || _StyleSheet$flatten === void 0 ? void 0 : _StyleSheet$flatten.flexDirection) === 'row-reverse' ? [styles.iconReverse, isV3 && styles[`md3IconReverse${compact ? 'Compact' : ''}`], isV3 && isMode('text') && styles[`md3IconReverseTextMode${compact ? 'Compact' : ''}`]] : [styles.icon, isV3 && styles[`md3Icon${compact ? 'Compact' : ''}`], isV3 && isMode('text') && styles[`md3IconTextMode${compact ? 'Compact' : ''}`]];\n return /*#__PURE__*/React.createElement(Surface, _extends({}, rest, {\n ref: ref,\n testID: `${testID}-container`,\n style: [styles.button, compact && styles.compact, buttonStyle, style, !isV3 && !disabled && {\n elevation\n }]\n }, isV3 && {\n elevation: elevation\n }), /*#__PURE__*/React.createElement(TouchableRipple, {\n borderless: true,\n background: background,\n onPress: onPress,\n onLongPress: onLongPress,\n onPressIn: hasPassedTouchHandler ? handlePressIn : undefined,\n onPressOut: hasPassedTouchHandler ? handlePressOut : undefined,\n delayLongPress: delayLongPress,\n accessibilityLabel: accessibilityLabel,\n accessibilityHint: accessibilityHint,\n accessibilityRole: accessibilityRole,\n accessibilityState: {\n disabled\n },\n accessible: accessible,\n disabled: disabled,\n rippleColor: rippleColor,\n style: touchableStyle,\n testID: testID,\n theme: theme\n }, /*#__PURE__*/React.createElement(View, {\n style: [styles.content, contentStyle]\n }, icon && loading !== true ? /*#__PURE__*/React.createElement(View, {\n style: iconStyle,\n testID: `${testID}-icon-container`\n }, /*#__PURE__*/React.createElement(Icon, {\n source: icon,\n size: customLabelSize ?? iconSize,\n color: typeof customLabelColor === 'string' ? customLabelColor : textColor\n })) : null, loading ? /*#__PURE__*/React.createElement(ActivityIndicator, {\n size: customLabelSize ?? iconSize,\n color: typeof customLabelColor === 'string' ? customLabelColor : textColor,\n style: iconStyle\n }) : null, /*#__PURE__*/React.createElement(Text, {\n variant: \"labelLarge\",\n selectable: false,\n numberOfLines: 1,\n testID: `${testID}-text`,\n style: [styles.label, !isV3 && styles.md2Label, isV3 && (isMode('text') ? icon || loading ? styles.md3LabelTextAddons : styles.md3LabelText : styles.md3Label), compact && styles.compactLabel, uppercase && styles.uppercaseLabel, textStyle, labelStyle],\n maxFontSizeMultiplier: maxFontSizeMultiplier\n }, children))));\n};\nconst styles = StyleSheet.create({\n button: {\n minWidth: 64,\n borderStyle: 'solid'\n },\n compact: {\n minWidth: 'auto'\n },\n content: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center'\n },\n icon: {\n marginLeft: 12,\n marginRight: -4\n },\n iconReverse: {\n marginRight: 12,\n marginLeft: -4\n },\n /* eslint-disable react-native/no-unused-styles */\n md3Icon: {\n marginLeft: 16,\n marginRight: -16\n },\n md3IconCompact: {\n marginLeft: 8,\n marginRight: 0\n },\n md3IconReverse: {\n marginLeft: -16,\n marginRight: 16\n },\n md3IconReverseCompact: {\n marginLeft: 0,\n marginRight: 8\n },\n md3IconTextMode: {\n marginLeft: 12,\n marginRight: -8\n },\n md3IconTextModeCompact: {\n marginLeft: 6,\n marginRight: 0\n },\n md3IconReverseTextMode: {\n marginLeft: -8,\n marginRight: 12\n },\n md3IconReverseTextModeCompact: {\n marginLeft: 0,\n marginRight: 6\n },\n /* eslint-enable react-native/no-unused-styles */\n label: {\n textAlign: 'center',\n marginVertical: 9,\n marginHorizontal: 16\n },\n md2Label: {\n letterSpacing: 1\n },\n compactLabel: {\n marginHorizontal: 8\n },\n uppercaseLabel: {\n textTransform: 'uppercase'\n },\n md3Label: {\n marginVertical: 10,\n marginHorizontal: 24\n },\n md3LabelText: {\n marginHorizontal: 12\n },\n md3LabelTextAddons: {\n marginHorizontal: 16\n }\n});\nexport default forwardRef(Button);\n//# sourceMappingURL=Button.js.map","/**\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 = str => str.match(CSS_UNIT_RE)[1];\n\nvar isNumeric = n => {\n return !isNaN(parseFloat(n)) && isFinite(n);\n};\n\nvar 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;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"accessibilityLabel\", \"activeThumbColor\", \"activeTrackColor\", \"disabled\", \"onValueChange\", \"style\", \"thumbColor\", \"trackColor\", \"value\"];\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((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, _excluded);\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,\n 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,\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 appearance: 'none',\n padding: 0,\n width: '100%'\n })\n});\nexport default Switch;","/**\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) {\n nextObj[key] = obj[key];\n }\n }\n }\n\n return nextObj;\n}","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\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 didWarn = false;\nvar emptyObject = {};\n\nfunction setNativeProps(node, nativeProps, pointerEvents, style, previousStyleRef) {\n if (!didWarn) {\n console.warn('setNativeProps is deprecated. Please update props using React state instead.');\n didWarn = true;\n }\n\n if (node != null && nativeProps) {\n var domProps = createDOMProps(null, _objectSpread(_objectSpread({\n pointerEvents\n }, nativeProps), {}, {\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 pointerEvents = _ref.pointerEvents,\n style = _ref.style;\n var previousStyleRef = useRef(null);\n var setNativePropsArgsRef = useRef(null);\n setNativePropsArgsRef.current = {\n pointerEvents,\n 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(() => hostNode => {\n if (hostNode != null) {\n hostNode.measure = callback => UIManager.measure(hostNode, callback);\n\n hostNode.measureLayout = (relativeToNode, success, failure) => UIManager.measureLayout(hostNode, relativeToNode, failure, success);\n\n hostNode.measureInWindow = callback => UIManager.measureInWindow(hostNode, callback);\n\n hostNode.setNativeProps = nativeProps => {\n var _ref2 = setNativePropsArgsRef.current || emptyObject,\n style = _ref2.style,\n pointerEvents = _ref2.pointerEvents;\n\n setNativeProps(hostNode, nativeProps, pointerEvents, style, previousStyleRef);\n };\n }\n });\n return ref;\n}","const touchableEvents = ['onPress', 'onLongPress', 'onPressIn', 'onPressOut'];\nexport default function hasTouchHandler(touchableEventObject) {\n return touchableEvents.some(event => {\n return Boolean(touchableEventObject[event]);\n });\n}\n//# sourceMappingURL=hasTouchHandler.js.map","/**\n * Utility function to extract styles in separate objects\n *\n * @param styles The style object you want to filter\n * @param filters The filters by which you want to split the styles\n * @returns An array of filtered style objects:\n * - The first style object contains the properties that didn't match any filter\n * - After that there will be a style object for each filter you passed in the same order as the matching filters\n * - A style property will exist in a single style object, the first filter it matched\n */\nexport function splitStyles(styles) {\n for (var _len = arguments.length, filters = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n filters[_key - 1] = arguments[_key];\n }\n if (process.env.NODE_ENV !== 'production' && filters.length === 0) {\n console.error('No filters were passed when calling splitStyles');\n }\n\n // `Object.entries` will be used to iterate over the styles and `Object.fromEntries` will be called before returning\n // Entries which match the given filters will be temporarily stored in `newStyles`\n const newStyles = filters.map(() => []);\n\n // Entries which match no filter\n const rest = [];\n\n // Iterate every style property\n outer: for (const item of Object.entries(styles)) {\n // Check each filter\n for (let i = 0; i < filters.length; i++) {\n // Check if filter matches\n if (filters[i](item[0])) {\n newStyles[i].push(item); // Push to temporary filtered entries array\n continue outer; // Skip to checking next style property\n }\n }\n\n // Adds to rest styles if not filtered\n rest.push(item);\n }\n\n // Put unmatched styles in the beginning\n newStyles.unshift(rest);\n\n // Convert arrays of entries into objects\n return newStyles.map(styles => Object.fromEntries(styles));\n}\n//# sourceMappingURL=splitStyles.js.map","import * as React from 'react';\nconst LinkingContext = /*#__PURE__*/React.createContext({\n options: undefined\n});\nLinkingContext.displayName = 'LinkingContext';\nexport default LinkingContext;\n//# sourceMappingURL=LinkingContext.js.map","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","import color from 'color';\nconst getAndroidCheckedColor = _ref => {\n let {\n theme,\n customColor\n } = _ref;\n if (customColor) {\n return customColor;\n }\n if (theme.isV3) {\n return theme.colors.primary;\n }\n return theme.colors.accent;\n};\nconst getAndroidUncheckedColor = _ref2 => {\n let {\n theme,\n customUncheckedColor\n } = _ref2;\n if (customUncheckedColor) {\n return customUncheckedColor;\n }\n if (theme.isV3) {\n return theme.colors.onSurfaceVariant;\n }\n if (theme.dark) {\n return color(theme.colors.text).alpha(0.7).rgb().string();\n }\n return color(theme.colors.text).alpha(0.54).rgb().string();\n};\nconst getAndroidRippleColor = _ref3 => {\n let {\n theme,\n checkedColor,\n disabled\n } = _ref3;\n if (disabled) {\n if (theme.isV3) {\n return color(theme.colors.onSurface).alpha(0.16).rgb().string();\n }\n return color(theme.colors.text).alpha(0.16).rgb().string();\n }\n return color(checkedColor).fade(0.32).rgb().string();\n};\nconst getAndroidControlColor = _ref4 => {\n let {\n theme,\n checked,\n disabled,\n checkedColor,\n uncheckedColor\n } = _ref4;\n if (disabled) {\n if (theme.isV3) {\n return theme.colors.onSurfaceDisabled;\n }\n return theme.colors.disabled;\n }\n if (checked) {\n return checkedColor;\n }\n return uncheckedColor;\n};\nexport const getAndroidSelectionControlColor = _ref5 => {\n let {\n theme,\n disabled,\n checked,\n customColor,\n customUncheckedColor\n } = _ref5;\n const checkedColor = getAndroidCheckedColor({\n theme,\n customColor\n });\n const uncheckedColor = getAndroidUncheckedColor({\n theme,\n customUncheckedColor\n });\n return {\n rippleColor: getAndroidRippleColor({\n theme,\n checkedColor,\n disabled\n }),\n selectionControlColor: getAndroidControlColor({\n theme,\n disabled,\n checked,\n checkedColor,\n uncheckedColor\n })\n };\n};\nconst getIOSCheckedColor = _ref6 => {\n let {\n theme,\n disabled,\n customColor\n } = _ref6;\n if (disabled) {\n if (theme.isV3) {\n return theme.colors.onSurfaceDisabled;\n }\n return theme.colors.disabled;\n }\n if (customColor) {\n return customColor;\n }\n if (theme.isV3) {\n return theme.colors.primary;\n }\n return theme.colors.accent;\n};\nconst getIOSRippleColor = _ref7 => {\n let {\n theme,\n checkedColor,\n disabled\n } = _ref7;\n if (disabled) {\n if (theme.isV3) {\n return color(theme.colors.onSurface).alpha(0.16).rgb().string();\n }\n return color(theme.colors.text).alpha(0.16).rgb().string();\n }\n return color(checkedColor).fade(0.32).rgb().string();\n};\nexport const getSelectionControlIOSColor = _ref8 => {\n let {\n theme,\n disabled,\n customColor\n } = _ref8;\n const checkedColor = getIOSCheckedColor({\n theme,\n disabled,\n customColor\n });\n return {\n checkedColor,\n rippleColor: getIOSRippleColor({\n theme,\n checkedColor,\n disabled\n })\n };\n};\n//# sourceMappingURL=utils.js.map","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 = signal => signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START;\n\nvar isButtonRole = element => element.getAttribute('role') === 'button';\n\nvar isPressStartSignal = signal => signal === RESPONDER_INACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START;\n\nvar isTerminalSignal = signal => signal === RESPONDER_TERMINATED || signal === RESPONDER_RELEASE;\n\nvar 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\nexport default class PressResponder {\n constructor(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 configure(config) {\n this._config = config;\n }\n /**\n * Resets any pending timers. This should be called on unmount.\n */\n\n\n 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 getEventHandlers() {\n if (this._eventHandlers == null) {\n this._eventHandlers = this._createEventHandlers();\n }\n\n return this._eventHandlers;\n }\n\n _createEventHandlers() {\n var 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(() => {\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(() => {\n this._handleLongPress(event);\n }, delayLongPress + delayPressStart);\n };\n\n var end = event => {\n this._receiveSignal(RESPONDER_RELEASE, event);\n };\n\n var 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: 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: 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: event => start(event),\n 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: event => end(event),\n onResponderTerminate: event => {\n if (event.nativeEvent.type === 'selectionchange') {\n this._selectionTerminated = true;\n }\n\n this._receiveSignal(RESPONDER_TERMINATED, event);\n },\n 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: 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: 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 _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 _performTransitionSideEffects(prevState, nextState, signal, event) {\n if (isTerminalSignal(signal)) {\n // Pressable suppression of contextmenu on windows.\n // On Windows, the contextmenu is displayed after pointerup.\n // https://github.com/necolas/react-native-web/issues/2296\n setTimeout(() => {\n this._isPointerTouch = false;\n }, 0);\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 _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 _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(() => {\n end();\n }, delayPressEnd);\n } else {\n end();\n }\n }\n\n _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 _cancelLongPressDelayTimeout() {\n if (this._longPressDelayTimeout != null) {\n clearTimeout(this._longPressDelayTimeout);\n this._longPressDelayTimeout = null;\n }\n }\n\n _cancelPressDelayTimeout() {\n if (this._pressDelayTimeout != null) {\n clearTimeout(this._pressDelayTimeout);\n this._pressDelayTimeout = null;\n }\n }\n\n _cancelPressOutDelayTimeout() {\n if (this._pressOutDelayTimeout != null) {\n clearTimeout(this._pressOutDelayTimeout);\n this._pressOutDelayTimeout = null;\n }\n }\n\n}\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) Meta Platforms, Inc. and affiliates.\n *\n * This source 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(() => {\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(() => {\n return () => {\n pressResponder.reset();\n };\n }, [pressResponder]);\n useDebugValue(config);\n return pressResponder.getEventHandlers();\n}","import color from 'color';\nimport { MD3Colors, tokens } from './tokens';\nimport configureFonts from '../../fonts';\nconst {\n palette,\n opacity\n} = tokens.md.ref;\nexport const MD3LightTheme = {\n dark: false,\n roundness: 4,\n version: 3,\n isV3: true,\n colors: {\n primary: palette.primary40,\n primaryContainer: palette.primary90,\n secondary: palette.secondary40,\n secondaryContainer: palette.secondary90,\n tertiary: palette.tertiary40,\n tertiaryContainer: palette.tertiary90,\n surface: palette.neutral99,\n surfaceVariant: palette.neutralVariant90,\n surfaceDisabled: color(palette.neutral10).alpha(opacity.level2).rgb().string(),\n background: palette.neutral99,\n error: palette.error40,\n errorContainer: palette.error90,\n onPrimary: palette.primary100,\n onPrimaryContainer: palette.primary10,\n onSecondary: palette.secondary100,\n onSecondaryContainer: palette.secondary10,\n onTertiary: palette.tertiary100,\n onTertiaryContainer: palette.tertiary10,\n onSurface: palette.neutral10,\n onSurfaceVariant: palette.neutralVariant30,\n onSurfaceDisabled: color(palette.neutral10).alpha(opacity.level4).rgb().string(),\n onError: palette.error100,\n onErrorContainer: palette.error10,\n onBackground: palette.neutral10,\n outline: palette.neutralVariant50,\n outlineVariant: palette.neutralVariant80,\n inverseSurface: palette.neutral20,\n inverseOnSurface: palette.neutral95,\n inversePrimary: palette.primary80,\n shadow: palette.neutral0,\n scrim: palette.neutral0,\n backdrop: color(MD3Colors.neutralVariant20).alpha(0.4).rgb().string(),\n elevation: {\n level0: 'transparent',\n // Note: Color values with transparency cause RN to transfer shadows to children nodes\n // instead of View component in Surface. Providing solid background fixes the issue.\n // Opaque color values generated with `palette.primary99` used as background\n level1: 'rgb(247, 243, 249)',\n // palette.primary40, alpha 0.05\n level2: 'rgb(243, 237, 246)',\n // palette.primary40, alpha 0.08\n level3: 'rgb(238, 232, 244)',\n // palette.primary40, alpha 0.11\n level4: 'rgb(236, 230, 243)',\n // palette.primary40, alpha 0.12\n level5: 'rgb(233, 227, 241)' // palette.primary40, alpha 0.14\n }\n },\n\n fonts: configureFonts(),\n animation: {\n scale: 1.0\n }\n};\n//# sourceMappingURL=LightTheme.js.map","'use strict';\n\nvar required = require('requires-port')\n , qs = require('querystringify')\n , controlOrWhitespace = /^[\\x00-\\x20\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff]+/\n , CRHTLF = /[\\n\\r\\t]/g\n , slashes = /^[A-Za-z][A-Za-z0-9+-.]*:\\/\\//\n , port = /:\\d+$/\n , protocolre = /^([a-z][a-z0-9.+-]*:)?(\\/\\/)?([\\\\/]+)?([\\S\\s]*)/i\n , windowsDriveLetter = /^[a-zA-Z]:/;\n\n/**\n * Remove control characters and whitespace from the beginning of a string.\n *\n * @param {Object|String} str String to trim.\n * @returns {String} A new string representing `str` stripped of control\n * characters and whitespace from its beginning.\n * @public\n */\nfunction trimLeft(str) {\n return (str ? str : '').toString().replace(controlOrWhitespace, '');\n}\n\n/**\n * These are the parse rules for the URL parser, it informs the parser\n * about:\n *\n * 0. The char it Needs to parse, if it's a string it should be done using\n * indexOf, RegExp using exec and NaN means set as current value.\n * 1. The property we should set when parsing this value.\n * 2. Indication if it's backwards or forward parsing, when set as number it's\n * the value of extra chars that should be split off.\n * 3. Inherit from location if non existing in the parser.\n * 4. `toLowerCase` the resulting value.\n */\nvar rules = [\n ['#', 'hash'], // Extract from the back.\n ['?', 'query'], // Extract from the back.\n function sanitize(address, url) { // Sanitize what is left of the address\n return isSpecial(url.protocol) ? address.replace(/\\\\/g, '/') : address;\n },\n ['/', 'pathname'], // Extract from the back.\n ['@', 'auth', 1], // Extract from the front.\n [NaN, 'host', undefined, 1, 1], // Set left over value.\n [/:(\\d*)$/, 'port', undefined, 1], // RegExp the back.\n [NaN, 'hostname', undefined, 1, 1] // Set left over.\n];\n\n/**\n * These properties should not be copied or inherited from. This is only needed\n * for all non blob URL's as a blob URL does not include a hash, only the\n * origin.\n *\n * @type {Object}\n * @private\n */\nvar ignore = { hash: 1, query: 1 };\n\n/**\n * The location object differs when your code is loaded through a normal page,\n * Worker or through a worker using a blob. And with the blobble begins the\n * trouble as the location object will contain the URL of the blob, not the\n * location of the page where our code is loaded in. The actual origin is\n * encoded in the `pathname` so we can thankfully generate a good \"default\"\n * location from it so we can generate proper relative URL's again.\n *\n * @param {Object|String} loc Optional default location object.\n * @returns {Object} lolcation object.\n * @public\n */\nfunction lolcation(loc) {\n var globalVar;\n\n if (typeof window !== 'undefined') globalVar = window;\n else if (typeof global !== 'undefined') globalVar = global;\n else if (typeof self !== 'undefined') globalVar = self;\n else globalVar = {};\n\n var location = globalVar.location || {};\n loc = loc || location;\n\n var finaldestination = {}\n , type = typeof loc\n , key;\n\n if ('blob:' === loc.protocol) {\n finaldestination = new Url(unescape(loc.pathname), {});\n } else if ('string' === type) {\n finaldestination = new Url(loc, {});\n for (key in ignore) delete finaldestination[key];\n } else if ('object' === type) {\n for (key in loc) {\n if (key in ignore) continue;\n finaldestination[key] = loc[key];\n }\n\n if (finaldestination.slashes === undefined) {\n finaldestination.slashes = slashes.test(loc.href);\n }\n }\n\n return finaldestination;\n}\n\n/**\n * Check whether a protocol scheme is special.\n *\n * @param {String} The protocol scheme of the URL\n * @return {Boolean} `true` if the protocol scheme is special, else `false`\n * @private\n */\nfunction isSpecial(scheme) {\n return (\n scheme === 'file:' ||\n scheme === 'ftp:' ||\n scheme === 'http:' ||\n scheme === 'https:' ||\n scheme === 'ws:' ||\n scheme === 'wss:'\n );\n}\n\n/**\n * @typedef ProtocolExtract\n * @type Object\n * @property {String} protocol Protocol matched in the URL, in lowercase.\n * @property {Boolean} slashes `true` if protocol is followed by \"//\", else `false`.\n * @property {String} rest Rest of the URL that is not part of the protocol.\n */\n\n/**\n * Extract protocol information from a URL with/without double slash (\"//\").\n *\n * @param {String} address URL we want to extract from.\n * @param {Object} location\n * @return {ProtocolExtract} Extracted information.\n * @private\n */\nfunction extractProtocol(address, location) {\n address = trimLeft(address);\n address = address.replace(CRHTLF, '');\n location = location || {};\n\n var match = protocolre.exec(address);\n var protocol = match[1] ? match[1].toLowerCase() : '';\n var forwardSlashes = !!match[2];\n var otherSlashes = !!match[3];\n var slashesCount = 0;\n var rest;\n\n if (forwardSlashes) {\n if (otherSlashes) {\n rest = match[2] + match[3] + match[4];\n slashesCount = match[2].length + match[3].length;\n } else {\n rest = match[2] + match[4];\n slashesCount = match[2].length;\n }\n } else {\n if (otherSlashes) {\n rest = match[3] + match[4];\n slashesCount = match[3].length;\n } else {\n rest = match[4]\n }\n }\n\n if (protocol === 'file:') {\n if (slashesCount >= 2) {\n rest = rest.slice(2);\n }\n } else if (isSpecial(protocol)) {\n rest = match[4];\n } else if (protocol) {\n if (forwardSlashes) {\n rest = rest.slice(2);\n }\n } else if (slashesCount >= 2 && isSpecial(location.protocol)) {\n rest = match[4];\n }\n\n return {\n protocol: protocol,\n slashes: forwardSlashes || isSpecial(protocol),\n slashesCount: slashesCount,\n rest: rest\n };\n}\n\n/**\n * Resolve a relative URL pathname against a base URL pathname.\n *\n * @param {String} relative Pathname of the relative URL.\n * @param {String} base Pathname of the base URL.\n * @return {String} Resolved pathname.\n * @private\n */\nfunction resolve(relative, base) {\n if (relative === '') return base;\n\n var path = (base || '/').split('/').slice(0, -1).concat(relative.split('/'))\n , i = path.length\n , last = path[i - 1]\n , unshift = false\n , up = 0;\n\n while (i--) {\n if (path[i] === '.') {\n path.splice(i, 1);\n } else if (path[i] === '..') {\n path.splice(i, 1);\n up++;\n } else if (up) {\n if (i === 0) unshift = true;\n path.splice(i, 1);\n up--;\n }\n }\n\n if (unshift) path.unshift('');\n if (last === '.' || last === '..') path.push('');\n\n return path.join('/');\n}\n\n/**\n * The actual URL instance. Instead of returning an object we've opted-in to\n * create an actual constructor as it's much more memory efficient and\n * faster and it pleases my OCD.\n *\n * It is worth noting that we should not use `URL` as class name to prevent\n * clashes with the global URL instance that got introduced in browsers.\n *\n * @constructor\n * @param {String} address URL we want to parse.\n * @param {Object|String} [location] Location defaults for relative paths.\n * @param {Boolean|Function} [parser] Parser for the query string.\n * @private\n */\nfunction Url(address, location, parser) {\n address = trimLeft(address);\n address = address.replace(CRHTLF, '');\n\n if (!(this instanceof Url)) {\n return new Url(address, location, parser);\n }\n\n var relative, extracted, parse, instruction, index, key\n , instructions = rules.slice()\n , type = typeof location\n , url = this\n , i = 0;\n\n //\n // The following if statements allows this module two have compatibility with\n // 2 different API:\n //\n // 1. Node.js's `url.parse` api which accepts a URL, boolean as arguments\n // where the boolean indicates that the query string should also be parsed.\n //\n // 2. The `URL` interface of the browser which accepts a URL, object as\n // arguments. The supplied object will be used as default values / fall-back\n // for relative paths.\n //\n if ('object' !== type && 'string' !== type) {\n parser = location;\n location = null;\n }\n\n if (parser && 'function' !== typeof parser) parser = qs.parse;\n\n location = lolcation(location);\n\n //\n // Extract protocol information before running the instructions.\n //\n extracted = extractProtocol(address || '', location);\n relative = !extracted.protocol && !extracted.slashes;\n url.slashes = extracted.slashes || relative && location.slashes;\n url.protocol = extracted.protocol || location.protocol || '';\n address = extracted.rest;\n\n //\n // When the authority component is absent the URL starts with a path\n // component.\n //\n if (\n extracted.protocol === 'file:' && (\n extracted.slashesCount !== 2 || windowsDriveLetter.test(address)) ||\n (!extracted.slashes &&\n (extracted.protocol ||\n extracted.slashesCount < 2 ||\n !isSpecial(url.protocol)))\n ) {\n instructions[3] = [/(.*)/, 'pathname'];\n }\n\n for (; i < instructions.length; i++) {\n instruction = instructions[i];\n\n if (typeof instruction === 'function') {\n address = instruction(address, url);\n continue;\n }\n\n parse = instruction[0];\n key = instruction[1];\n\n if (parse !== parse) {\n url[key] = address;\n } else if ('string' === typeof parse) {\n index = parse === '@'\n ? address.lastIndexOf(parse)\n : address.indexOf(parse);\n\n if (~index) {\n if ('number' === typeof instruction[2]) {\n url[key] = address.slice(0, index);\n address = address.slice(index + instruction[2]);\n } else {\n url[key] = address.slice(index);\n address = address.slice(0, index);\n }\n }\n } else if ((index = parse.exec(address))) {\n url[key] = index[1];\n address = address.slice(0, index.index);\n }\n\n url[key] = url[key] || (\n relative && instruction[3] ? location[key] || '' : ''\n );\n\n //\n // Hostname, host and protocol should be lowercased so they can be used to\n // create a proper `origin`.\n //\n if (instruction[4]) url[key] = url[key].toLowerCase();\n }\n\n //\n // Also parse the supplied query string in to an object. If we're supplied\n // with a custom parser as function use that instead of the default build-in\n // parser.\n //\n if (parser) url.query = parser(url.query);\n\n //\n // If the URL is relative, resolve the pathname against the base URL.\n //\n if (\n relative\n && location.slashes\n && url.pathname.charAt(0) !== '/'\n && (url.pathname !== '' || location.pathname !== '')\n ) {\n url.pathname = resolve(url.pathname, location.pathname);\n }\n\n //\n // Default to a / for pathname if none exists. This normalizes the URL\n // to always have a /\n //\n if (url.pathname.charAt(0) !== '/' && isSpecial(url.protocol)) {\n url.pathname = '/' + url.pathname;\n }\n\n //\n // We should not add port numbers if they are already the default port number\n // for a given protocol. As the host also contains the port number we're going\n // override it with the hostname which contains no port number.\n //\n if (!required(url.port, url.protocol)) {\n url.host = url.hostname;\n url.port = '';\n }\n\n //\n // Parse down the `auth` for the username and password.\n //\n url.username = url.password = '';\n\n if (url.auth) {\n index = url.auth.indexOf(':');\n\n if (~index) {\n url.username = url.auth.slice(0, index);\n url.username = encodeURIComponent(decodeURIComponent(url.username));\n\n url.password = url.auth.slice(index + 1);\n url.password = encodeURIComponent(decodeURIComponent(url.password))\n } else {\n url.username = encodeURIComponent(decodeURIComponent(url.auth));\n }\n\n url.auth = url.password ? url.username +':'+ url.password : url.username;\n }\n\n url.origin = url.protocol !== 'file:' && isSpecial(url.protocol) && url.host\n ? url.protocol +'//'+ url.host\n : 'null';\n\n //\n // The href is just the compiled result.\n //\n url.href = url.toString();\n}\n\n/**\n * This is convenience method for changing properties in the URL instance to\n * insure that they all propagate correctly.\n *\n * @param {String} part Property we need to adjust.\n * @param {Mixed} value The newly assigned value.\n * @param {Boolean|Function} fn When setting the query, it will be the function\n * used to parse the query.\n * When setting the protocol, double slash will be\n * removed from the final url if it is true.\n * @returns {URL} URL instance for chaining.\n * @public\n */\nfunction set(part, value, fn) {\n var url = this;\n\n switch (part) {\n case 'query':\n if ('string' === typeof value && value.length) {\n value = (fn || qs.parse)(value);\n }\n\n url[part] = value;\n break;\n\n case 'port':\n url[part] = value;\n\n if (!required(value, url.protocol)) {\n url.host = url.hostname;\n url[part] = '';\n } else if (value) {\n url.host = url.hostname +':'+ value;\n }\n\n break;\n\n case 'hostname':\n url[part] = value;\n\n if (url.port) value += ':'+ url.port;\n url.host = value;\n break;\n\n case 'host':\n url[part] = value;\n\n if (port.test(value)) {\n value = value.split(':');\n url.port = value.pop();\n url.hostname = value.join(':');\n } else {\n url.hostname = value;\n url.port = '';\n }\n\n break;\n\n case 'protocol':\n url.protocol = value.toLowerCase();\n url.slashes = !fn;\n break;\n\n case 'pathname':\n case 'hash':\n if (value) {\n var char = part === 'pathname' ? '/' : '#';\n url[part] = value.charAt(0) !== char ? char + value : value;\n } else {\n url[part] = value;\n }\n break;\n\n case 'username':\n case 'password':\n url[part] = encodeURIComponent(value);\n break;\n\n case 'auth':\n var index = value.indexOf(':');\n\n if (~index) {\n url.username = value.slice(0, index);\n url.username = encodeURIComponent(decodeURIComponent(url.username));\n\n url.password = value.slice(index + 1);\n url.password = encodeURIComponent(decodeURIComponent(url.password));\n } else {\n url.username = encodeURIComponent(decodeURIComponent(value));\n }\n }\n\n for (var i = 0; i < rules.length; i++) {\n var ins = rules[i];\n\n if (ins[4]) url[ins[1]] = url[ins[1]].toLowerCase();\n }\n\n url.auth = url.password ? url.username +':'+ url.password : url.username;\n\n url.origin = url.protocol !== 'file:' && isSpecial(url.protocol) && url.host\n ? url.protocol +'//'+ url.host\n : 'null';\n\n url.href = url.toString();\n\n return url;\n}\n\n/**\n * Transform the properties back in to a valid and full URL string.\n *\n * @param {Function} stringify Optional query stringify function.\n * @returns {String} Compiled version of the URL.\n * @public\n */\nfunction toString(stringify) {\n if (!stringify || 'function' !== typeof stringify) stringify = qs.stringify;\n\n var query\n , url = this\n , host = url.host\n , protocol = url.protocol;\n\n if (protocol && protocol.charAt(protocol.length - 1) !== ':') protocol += ':';\n\n var result =\n protocol +\n ((url.protocol && url.slashes) || isSpecial(url.protocol) ? '//' : '');\n\n if (url.username) {\n result += url.username;\n if (url.password) result += ':'+ url.password;\n result += '@';\n } else if (url.password) {\n result += ':'+ url.password;\n result += '@';\n } else if (\n url.protocol !== 'file:' &&\n isSpecial(url.protocol) &&\n !host &&\n url.pathname !== '/'\n ) {\n //\n // Add back the empty userinfo, otherwise the original invalid URL\n // might be transformed into a valid one with `url.pathname` as host.\n //\n result += '@';\n }\n\n //\n // Trailing colon is removed from `url.host` when it is parsed. If it still\n // ends with a colon, then add back the trailing colon that was removed. This\n // prevents an invalid URL from being transformed into a valid one.\n //\n if (host[host.length - 1] === ':' || (port.test(url.hostname) && !url.port)) {\n host += ':';\n }\n\n result += host + url.pathname;\n\n query = 'object' === typeof url.query ? stringify(url.query) : url.query;\n if (query) result += '?' !== query.charAt(0) ? '?'+ query : query;\n\n if (url.hash) result += url.hash;\n\n return result;\n}\n\nUrl.prototype = { set: set, toString: toString };\n\n//\n// Expose the URL parser and some additional properties that might be useful for\n// others or testing.\n//\nUrl.extractProtocol = extractProtocol;\nUrl.location = lolcation;\nUrl.trimLeft = trimLeft;\nUrl.qs = qs;\n\nmodule.exports = Url;\n","import * as React from 'react';\nimport { View } from 'react-native';\nconst Dummy = _ref => {\n let {\n children\n } = _ref;\n return /*#__PURE__*/React.createElement(React.Fragment, null, children);\n};\nexport const PanGestureHandler = Dummy;\nexport const TapGestureHandler = Dummy;\nexport const GestureHandlerRootView = View;\nexport const GestureState = {\n UNDETERMINED: 0,\n FAILED: 1,\n BEGAN: 2,\n CANCELLED: 3,\n ACTIVE: 4,\n END: 5\n};\n//# sourceMappingURL=GestureHandler.js.map","import { ComponentClass } from 'react';\nimport {\n GestureUpdateEvent,\n GestureStateChangeEvent,\n} from '../gestureHandlerCommon';\nimport { tagMessage } from '../../utils';\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.useSharedValue) {\n // @ts-ignore Make sure the loaded module is actually Reanimated, if it's not\n // reset the module to undefined so we can fallback to the default implementation\n Reanimated = undefined;\n throw new Error('react-native-reanimated is not found');\n }\n\n if (!Reanimated.setGestureState) {\n Reanimated.setGestureState = () => {\n 'worklet';\n console.warn(\n tagMessage(\n 'Please use newer version of react-native-reanimated in order to control state of the gestures.'\n )\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","let toSJISFunction\nconst CODEWORDS_COUNT = [\n 0, // Not used\n 26, 44, 70, 100, 134, 172, 196, 242, 292, 346,\n 404, 466, 532, 581, 655, 733, 815, 901, 991, 1085,\n 1156, 1258, 1364, 1474, 1588, 1706, 1828, 1921, 2051, 2185,\n 2323, 2465, 2611, 2761, 2876, 3034, 3196, 3362, 3532, 3706\n]\n\n/**\n * Returns the QR Code size for the specified version\n *\n * @param {Number} version QR Code version\n * @return {Number} size of QR code\n */\nexports.getSymbolSize = function getSymbolSize (version) {\n if (!version) throw new Error('\"version\" cannot be null or undefined')\n if (version < 1 || version > 40) throw new Error('\"version\" should be in range from 1 to 40')\n return version * 4 + 17\n}\n\n/**\n * Returns the total number of codewords used to store data and EC information.\n *\n * @param {Number} version QR Code version\n * @return {Number} Data length in bits\n */\nexports.getSymbolTotalCodewords = function getSymbolTotalCodewords (version) {\n return CODEWORDS_COUNT[version]\n}\n\n/**\n * Encode data with Bose-Chaudhuri-Hocquenghem\n *\n * @param {Number} data Value to encode\n * @return {Number} Encoded value\n */\nexports.getBCHDigit = function (data) {\n let digit = 0\n\n while (data !== 0) {\n digit++\n data >>>= 1\n }\n\n return digit\n}\n\nexports.setToSJISFunction = function setToSJISFunction (f) {\n if (typeof f !== 'function') {\n throw new Error('\"toSJISFunc\" is not a valid function.')\n }\n\n toSJISFunction = f\n}\n\nexports.isKanjiModeEnabled = function () {\n return typeof toSJISFunction !== 'undefined'\n}\n\nexports.toSJIS = function toSJIS (kanji) {\n return toSJISFunction(kanji)\n}\n","const VersionCheck = require('./version-check')\nconst Regex = require('./regex')\n\n/**\n * Numeric mode encodes data from the decimal digit set (0 - 9)\n * (byte values 30HEX to 39HEX).\n * Normally, 3 data characters are represented by 10 bits.\n *\n * @type {Object}\n */\nexports.NUMERIC = {\n id: 'Numeric',\n bit: 1 << 0,\n ccBits: [10, 12, 14]\n}\n\n/**\n * Alphanumeric mode encodes data from a set of 45 characters,\n * i.e. 10 numeric digits (0 - 9),\n * 26 alphabetic characters (A - Z),\n * and 9 symbols (SP, $, %, *, +, -, ., /, :).\n * Normally, two input characters are represented by 11 bits.\n *\n * @type {Object}\n */\nexports.ALPHANUMERIC = {\n id: 'Alphanumeric',\n bit: 1 << 1,\n ccBits: [9, 11, 13]\n}\n\n/**\n * In byte mode, data is encoded at 8 bits per character.\n *\n * @type {Object}\n */\nexports.BYTE = {\n id: 'Byte',\n bit: 1 << 2,\n ccBits: [8, 16, 16]\n}\n\n/**\n * The Kanji mode efficiently encodes Kanji characters in accordance with\n * the Shift JIS system based on JIS X 0208.\n * The Shift JIS values are shifted from the JIS X 0208 values.\n * JIS X 0208 gives details of the shift coded representation.\n * Each two-byte character value is compacted to a 13-bit binary codeword.\n *\n * @type {Object}\n */\nexports.KANJI = {\n id: 'Kanji',\n bit: 1 << 3,\n ccBits: [8, 10, 12]\n}\n\n/**\n * Mixed mode will contain a sequences of data in a combination of any of\n * the modes described above\n *\n * @type {Object}\n */\nexports.MIXED = {\n bit: -1\n}\n\n/**\n * Returns the number of bits needed to store the data length\n * according to QR Code specifications.\n *\n * @param {Mode} mode Data mode\n * @param {Number} version QR Code version\n * @return {Number} Number of bits\n */\nexports.getCharCountIndicator = function getCharCountIndicator (mode, version) {\n if (!mode.ccBits) throw new Error('Invalid mode: ' + mode)\n\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid version: ' + version)\n }\n\n if (version >= 1 && version < 10) return mode.ccBits[0]\n else if (version < 27) return mode.ccBits[1]\n return mode.ccBits[2]\n}\n\n/**\n * Returns the most efficient mode to store the specified data\n *\n * @param {String} dataStr Input data string\n * @return {Mode} Best mode\n */\nexports.getBestModeForData = function getBestModeForData (dataStr) {\n if (Regex.testNumeric(dataStr)) return exports.NUMERIC\n else if (Regex.testAlphanumeric(dataStr)) return exports.ALPHANUMERIC\n else if (Regex.testKanji(dataStr)) return exports.KANJI\n else return exports.BYTE\n}\n\n/**\n * Return mode name as string\n *\n * @param {Mode} mode Mode object\n * @returns {String} Mode name\n */\nexports.toString = function toString (mode) {\n if (mode && mode.id) return mode.id\n throw new Error('Invalid mode')\n}\n\n/**\n * Check if input param is a valid mode object\n *\n * @param {Mode} mode Mode object\n * @returns {Boolean} True if valid mode, false otherwise\n */\nexports.isValid = function isValid (mode) {\n return mode && mode.bit && mode.ccBits\n}\n\n/**\n * Get mode object from its name\n *\n * @param {String} string Mode name\n * @returns {Mode} Mode object\n */\nfunction fromString (string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string')\n }\n\n const lcStr = string.toLowerCase()\n\n switch (lcStr) {\n case 'numeric':\n return exports.NUMERIC\n case 'alphanumeric':\n return exports.ALPHANUMERIC\n case 'kanji':\n return exports.KANJI\n case 'byte':\n return exports.BYTE\n default:\n throw new Error('Unknown mode: ' + string)\n }\n}\n\n/**\n * Returns mode from a value.\n * If value is not a valid mode, returns defaultValue\n *\n * @param {Mode|String} value Encoding mode\n * @param {Mode} defaultValue Fallback value\n * @return {Mode} Encoding mode\n */\nexports.from = function from (value, defaultValue) {\n if (exports.isValid(value)) {\n return value\n }\n\n try {\n return fromString(value)\n } catch (e) {\n return defaultValue\n }\n}\n","import { configureProps as jsiConfigureProps } from './reanimated2/core';\n/**\n * Styles allowed to be direcly updated in UI thread\n */\nlet UI_THREAD_PROPS_WHITELIST = {\n opacity: true,\n transform: true,\n /* colors */\n backgroundColor: true,\n borderRightColor: true,\n borderBottomColor: true,\n borderColor: true,\n borderEndColor: true,\n borderLeftColor: true,\n borderStartColor: true,\n borderTopColor: true,\n /* ios styles */\n shadowOpacity: true,\n shadowRadius: true,\n /* legacy android transform properties */\n scaleX: true,\n scaleY: true,\n translateX: true,\n translateY: true,\n};\n/**\n * Whitelist of view props that can be updated in native thread via UIManagerModule\n */\nlet NATIVE_THREAD_PROPS_WHITELIST = {\n borderBottomWidth: true,\n borderEndWidth: true,\n borderLeftWidth: true,\n borderRightWidth: true,\n borderStartWidth: true,\n borderTopWidth: true,\n borderWidth: true,\n bottom: true,\n flex: true,\n flexGrow: true,\n flexShrink: true,\n height: true,\n left: true,\n margin: true,\n marginBottom: true,\n marginEnd: true,\n marginHorizontal: true,\n marginLeft: true,\n marginRight: true,\n marginStart: true,\n marginTop: true,\n marginVertical: true,\n maxHeight: true,\n maxWidth: true,\n minHeight: true,\n minWidth: true,\n padding: true,\n paddingBottom: true,\n paddingEnd: true,\n paddingHorizontal: true,\n paddingLeft: true,\n paddingRight: true,\n paddingStart: true,\n paddingTop: true,\n paddingVertical: true,\n right: true,\n start: true,\n top: true,\n width: true,\n zIndex: true,\n borderBottomEndRadius: true,\n borderBottomLeftRadius: true,\n borderBottomRightRadius: true,\n borderBottomStartRadius: true,\n borderRadius: true,\n borderTopEndRadius: true,\n borderTopLeftRadius: true,\n borderTopRightRadius: true,\n borderTopStartRadius: true,\n elevation: true,\n fontSize: true,\n lineHeight: true,\n textShadowRadius: true,\n letterSpacing: true,\n /* strings */\n display: true,\n backfaceVisibility: true,\n overflow: true,\n resizeMode: true,\n fontStyle: true,\n fontWeight: true,\n textAlign: true,\n textDecorationLine: true,\n fontFamily: true,\n textAlignVertical: true,\n fontVariant: true,\n textDecorationStyle: true,\n textTransform: true,\n writingDirection: true,\n /* text color */\n color: true,\n tintColor: true,\n shadowColor: true,\n placeholderTextColor: true,\n};\nfunction configureProps() {\n jsiConfigureProps(Object.keys(UI_THREAD_PROPS_WHITELIST), Object.keys(NATIVE_THREAD_PROPS_WHITELIST));\n}\nexport function addWhitelistedNativeProps(props) {\n const oldSize = Object.keys(NATIVE_THREAD_PROPS_WHITELIST).length;\n NATIVE_THREAD_PROPS_WHITELIST = Object.assign(Object.assign({}, NATIVE_THREAD_PROPS_WHITELIST), props);\n if (oldSize !== Object.keys(NATIVE_THREAD_PROPS_WHITELIST).length) {\n configureProps();\n }\n}\nexport function addWhitelistedUIProps(props) {\n const oldSize = Object.keys(UI_THREAD_PROPS_WHITELIST).length;\n UI_THREAD_PROPS_WHITELIST = Object.assign(Object.assign({}, UI_THREAD_PROPS_WHITELIST), props);\n if (oldSize !== Object.keys(UI_THREAD_PROPS_WHITELIST).length) {\n configureProps();\n }\n}\nconst PROCESSED_VIEW_NAMES = new Set();\n/**\n * updates UI props whitelist for given view host instance\n * this will work just once for every view name\n */\nexport function adaptViewConfig(viewConfig) {\n const viewName = viewConfig.uiViewClassName;\n const props = viewConfig.validAttributes;\n // update whitelist of UI props for this view name only once\n if (!PROCESSED_VIEW_NAMES.has(viewName)) {\n const propsToAdd = {};\n Object.keys(props).forEach((key) => {\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 * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 './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\nclass AnimatedValueXY extends AnimatedWithChildren {\n constructor(valueIn) {\n super();\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 }\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 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 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 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 extractOffset() {\n this.x.extractOffset();\n this.y.extractOffset();\n }\n\n __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 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 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 addListener(callback) {\n var id = String(_uniqueId++);\n\n var jointCallback = _ref => {\n var number = _ref.value;\n callback(this.__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 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 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 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 getTranslateTransform() {\n return [{\n translateX: this.x\n }, {\n translateY: this.y\n }];\n }\n\n}\n\nexport default AnimatedValueXY;","import { Animated } from 'react-native';\nimport * as MD2Colors from './themes/v2/colors';\nimport { MD3Colors } from './themes/v3/tokens';\nconst SHADOW_COLOR = MD2Colors.black;\nconst SHADOW_OPACITY = 0.24;\nconst MD3_SHADOW_OPACITY = 0.3;\nconst MD3_SHADOW_COLOR = MD3Colors.primary0;\nexport default function shadow() {\n let elevation = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let isV3 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return isV3 ? v3Shadow(elevation) : v2Shadow(elevation);\n}\nfunction v2Shadow() {\n let elevation = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n if (elevation instanceof Animated.Value) {\n const inputRange = [0, 1, 2, 3, 8, 24];\n return {\n shadowColor: SHADOW_COLOR,\n shadowOffset: {\n width: new Animated.Value(0),\n height: elevation.interpolate({\n inputRange,\n outputRange: [0, 0.5, 0.75, 2, 7, 23]\n })\n },\n shadowOpacity: elevation.interpolate({\n inputRange: [0, 1],\n outputRange: [0, SHADOW_OPACITY],\n extrapolate: 'clamp'\n }),\n shadowRadius: elevation.interpolate({\n inputRange,\n outputRange: [0, 0.75, 1.5, 3, 8, 24]\n })\n };\n } else {\n if (elevation === 0) {\n return {};\n }\n let height, radius;\n switch (elevation) {\n case 1:\n height = 0.5;\n radius = 0.75;\n break;\n case 2:\n height = 0.75;\n radius = 1.5;\n break;\n default:\n height = elevation - 1;\n radius = elevation;\n }\n return {\n shadowColor: SHADOW_COLOR,\n shadowOffset: {\n width: 0,\n height\n },\n shadowOpacity: SHADOW_OPACITY,\n shadowRadius: radius\n };\n }\n}\nfunction v3Shadow() {\n let elevation = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n const inputRange = [0, 1, 2, 3, 4, 5];\n const shadowHeight = [0, 1, 2, 4, 6, 8];\n const shadowRadius = [0, 3, 6, 8, 10, 12];\n if (elevation instanceof Animated.Value) {\n return {\n shadowColor: MD3_SHADOW_COLOR,\n shadowOffset: {\n width: new Animated.Value(0),\n height: elevation.interpolate({\n inputRange,\n outputRange: shadowHeight\n })\n },\n shadowOpacity: elevation.interpolate({\n inputRange: [0, 1],\n outputRange: [0, MD3_SHADOW_OPACITY],\n extrapolate: 'clamp'\n }),\n shadowRadius: elevation.interpolate({\n inputRange,\n outputRange: shadowRadius\n })\n };\n } else {\n return {\n shadowColor: MD3_SHADOW_COLOR,\n shadowOpacity: elevation ? MD3_SHADOW_OPACITY : 0,\n shadowOffset: {\n width: 0,\n height: shadowHeight[elevation]\n },\n shadowRadius: shadowRadius[elevation]\n };\n }\n}\n//# sourceMappingURL=shadow.js.map","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","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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\n addEventListener() {\n return {\n remove: emptyFunction\n };\n },\n\n removeEventListener: emptyFunction\n};\nexport default BackHandler;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { createContext } from 'react';\nvar TextAncestorContext = /*#__PURE__*/createContext(false);\nexport default TextAncestorContext;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\nfunction _construct(t, e, r) {\n if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && setPrototypeOf(p, r.prototype), p;\n}\nmodule.exports = _construct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import * as React from 'react';\nimport { overlay, useTheme } from 'react-native-paper';\nimport Color from 'color';\nexport function useLatest(value) {\n const ref = React.useRef(value);\n ref.current = value;\n return ref;\n}\nexport function useHeaderBackgroundColor() {\n const theme = useTheme();\n\n if (theme.isV3) {\n return theme.colors.surface;\n }\n\n return theme.dark && theme.mode === 'adaptive' ? overlay(4, theme.colors.surface) : theme.colors.primary;\n}\nexport function useHeaderColorIsLight() {\n const theme = useTheme();\n const background = theme.dark && theme.mode === 'adaptive' ? theme.colors.surface : theme.colors.primary;\n return Color(background).isLight();\n}\nexport function useHeaderTextColor() {\n const theme = useTheme();\n const isLight = useHeaderColorIsLight();\n\n if (theme.isV3) {\n return theme.colors.onSurfaceVariant;\n }\n\n return !isLight ? '#fff' : '#000';\n}\nexport function useTextColorOnPrimary() {\n const theme = useTheme();\n const isDark = !Color(theme.colors.primary).isLight();\n\n if (theme.isV3) {\n if (isDark && theme.dark) {\n return theme.colors.onSurface;\n } else {\n return theme.colors.onPrimary;\n }\n }\n\n return isDark ? '#fff' : '#000';\n}\nexport function range(start, end) {\n return Array(end - start + 1).fill(null).map((_, i) => start + i);\n}\nexport function lightenBy(color, ratio) {\n const lightness = color.lightness();\n return color.lightness(lightness + (100 - lightness) * ratio);\n}\nexport function darkenBy(color, ratio) {\n const lightness = color.lightness();\n return color.lightness(lightness - lightness * ratio);\n}\n//# sourceMappingURL=utils.js.map","import * as React from 'react';\nimport { useLatest } from '../utils';\nexport function showWeekDay(dayIndex, disableWeekDays) {\n return !(disableWeekDays && disableWeekDays.some(di => di === dayIndex));\n}\nexport function dateToUnix(d) {\n return Math.round(d.getTime() / 1000);\n}\nexport function addMonths(date, count) {\n let n = date.getDate();\n let n2 = new Date(date.getTime());\n n2.setDate(1);\n n2.setMonth(n2.getMonth() + count);\n n2.setDate(Math.min(n, getDaysInMonth({\n year: n2.getFullYear(),\n month: n2.getMonth()\n })));\n return n2;\n} // https://stackoverflow.com/a/1185068/2508481\n// pass in any date as parameter anyDateInMonth based on dayjs\n\nexport function getDaysInMonth(_ref) {\n let {\n year,\n month\n } = _ref;\n return [31, isLeapYear({\n year\n }) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];\n}\nexport function getFirstDayOfMonth(_ref2) {\n let {\n year,\n month\n } = _ref2;\n return new Date(year, month, 1).getDay();\n}\nexport function useRangeChecker(validRange) {\n const validStart = validRange === null || validRange === void 0 ? void 0 : validRange.startDate;\n const validEnd = validRange === null || validRange === void 0 ? void 0 : validRange.endDate;\n const startUnix = validStart instanceof Date ? dateToUnix(getStartOfDay(validStart)) : undefined;\n const endUnix = validEnd instanceof Date ? dateToUnix(getEndOfDay(validEnd)) : undefined;\n const validDisabledDatesRef = useLatest(validRange === null || validRange === void 0 ? void 0 : validRange.disabledDates);\n const isWithinValidRange = React.useCallback(day => {\n return isDateWithinOptionalRange(day, {\n startUnix: startUnix,\n endUnix: endUnix\n });\n }, [startUnix, endUnix]);\n const isDisabled = React.useCallback(day => {\n return validDisabledDatesRef.current ? validDisabledDatesRef.current.some(disabledDate => areDatesOnSameDay(disabledDate, day)) : false;\n }, [validDisabledDatesRef]);\n return {\n isDisabled,\n isWithinValidRange,\n validStart,\n validEnd\n };\n}\nexport function areDatesOnSameDay(a, b) {\n if (!b) {\n return false;\n }\n\n return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();\n}\nexport function isDateBetween(date, _ref3) {\n let {\n startDate,\n endDate\n } = _ref3;\n\n if (!startDate || !endDate) {\n return false;\n }\n\n return date <= endDate && date >= startDate;\n}\n/**\n * Check if a date is within an optional range.\n *\n * If the range doesn't exist, it defaults to `true`.\n */\n\nexport function isDateWithinOptionalRange(date, _ref4) {\n let {\n startUnix,\n endUnix\n } = _ref4;\n const dateUnix = dateToUnix(date); // if startUnix is provided and date is before start\n\n if (startUnix && dateUnix < startUnix) {\n return false;\n } // if endUnix is provided and date is after end\n\n\n if (endUnix && dateUnix > endUnix) {\n return false;\n }\n\n return true;\n}\nexport function isLeapYear(_ref5) {\n let {\n year\n } = _ref5;\n return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n}\nexport const daySize = 46;\nexport const estimatedMonthHeight = 360;\nexport const startAtIndex = 1200;\nexport const totalMonths = startAtIndex * 2;\nexport const beginOffset = estimatedMonthHeight * startAtIndex;\nexport const gridCounts = new Array(totalMonths);\nexport function getGridCount(index) {\n const cHeight = gridCounts[index];\n\n if (cHeight) {\n return cHeight;\n }\n\n const monthDate = addMonths(new Date(), getRealIndex(index));\n const h = getGridCountForDate(monthDate);\n gridCounts[index] = h;\n return h;\n}\nexport function getGridCountForDate(date) {\n const year = date.getFullYear();\n const month = date.getMonth();\n const daysInMonth = getDaysInMonth({\n year,\n month\n });\n const dayOfWeek = getFirstDayOfMonth({\n year,\n month\n });\n return Math.ceil((daysInMonth + dayOfWeek) / 7);\n}\nexport function getRealIndex(index) {\n return index - startAtIndex;\n}\nexport function getInitialIndex(date) {\n if (!date) {\n return startAtIndex;\n }\n\n const today = new Date();\n const months = differenceInMonths(today, date);\n return startAtIndex + months;\n}\nexport function useInputFormatter(_ref6) {\n let {\n locale\n } = _ref6;\n return React.useMemo(() => {\n return new Intl.DateTimeFormat(locale, {\n month: '2-digit',\n day: '2-digit',\n year: 'numeric'\n });\n }, [locale]);\n}\nexport function getStartOfDay(d) {\n return new Date(d.getFullYear(), d.getMonth(), d.getDate(), 0, 0, 0);\n}\nexport function getEndOfDay(d) {\n return new Date(d.getFullYear(), d.getMonth(), d.getDate(), 23, 59, 59);\n}\nexport function useInputFormat(_ref7) {\n let {\n formatter,\n locale\n } = _ref7;\n return React.useMemo(() => {\n // TODO: something cleaner and more universal?\n const inputDate = formatter.format(new Date(2020, 10 - 1, 1));\n return inputDate.replace('2020', locale === 'pt' ? 'AAAA' : 'YYYY').replace('10', 'MM').replace('01', 'DD');\n }, [formatter, locale]);\n}\nexport function differenceInMonths(firstDate, secondDate) {\n let diffMonths = (secondDate.getFullYear() - firstDate.getFullYear()) * 12;\n diffMonths -= firstDate.getMonth();\n diffMonths += secondDate.getMonth();\n return diffMonths;\n}\n//# sourceMappingURL=dateUtils.js.map","import * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { daySize } from './dateUtils';\n\nfunction DayRange(_ref) {\n let {\n leftCrop,\n rightCrop,\n inRange,\n selectColor\n } = _ref;\n const bothWays = inRange && leftCrop && rightCrop;\n const isCrop = inRange && (leftCrop || rightCrop) && !(leftCrop && rightCrop);\n\n if (inRange || isCrop) {\n return /*#__PURE__*/React.createElement(View, {\n pointerEvents: \"none\",\n style: [StyleSheet.absoluteFill, styles.rangeRoot, bothWays && styles.rangeRootBoth, inRange && !isCrop ? {\n backgroundColor: selectColor\n } : null]\n }, isCrop && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(View, {\n style: [styles.flex1, rightCrop ? {\n backgroundColor: selectColor\n } : null]\n }), /*#__PURE__*/React.createElement(View, {\n style: [{\n backgroundColor: selectColor,\n minWidth: daySize,\n minHeight: daySize\n }, leftCrop ? styles.leftRadius : null, rightCrop ? styles.rightRadius : null]\n }), /*#__PURE__*/React.createElement(View, {\n style: [styles.flex1, leftCrop ? {\n backgroundColor: selectColor\n } : null]\n })));\n }\n\n return null;\n}\n\nconst styles = StyleSheet.create({\n leftRadius: {\n borderBottomLeftRadius: daySize / 2,\n borderTopLeftRadius: daySize / 2\n },\n rightRadius: {\n borderBottomRightRadius: daySize / 2,\n borderTopRightRadius: daySize / 2\n },\n rangeRootBoth: {\n borderRadius: daySize / 2\n },\n flex1: {\n flex: 1\n },\n rangeRoot: {\n flexDirection: 'row'\n }\n});\nexport default /*#__PURE__*/React.memo(DayRange);\n//# sourceMappingURL=DayRange.js.map","import * as React from 'react';\nimport { Text, TouchableRipple } from 'react-native-paper';\nimport { StyleSheet, View } from 'react-native';\nimport DayRange from './DayRange';\nimport { daySize } from './dateUtils';\n\nfunction EmptyDayPure() {\n return /*#__PURE__*/React.createElement(View, {\n style: styles.empty\n });\n}\n\nexport const EmptyDay = /*#__PURE__*/React.memo(EmptyDayPure);\n\nfunction Day(props) {\n const {\n day,\n month,\n year,\n selected,\n inRange,\n leftCrop,\n rightCrop,\n onPressDate,\n primaryColor,\n selectColor,\n isToday,\n disabled,\n textColorOnPrimary,\n theme\n } = props;\n const onPress = React.useCallback(() => {\n onPressDate(new Date(year, month, day));\n }, [onPressDate, year, month, day]);\n const borderColor = theme.isV3 ? theme.colors.primary : selected || inRange && theme.dark ? textColorOnPrimary : theme.dark ? '#fff' : '#000';\n const textColor = theme.isV3 && selected ? theme.colors.onPrimary : theme.isV3 && inRange && theme.dark ? theme.colors.onPrimaryContainer : selected || inRange && theme.dark ? textColorOnPrimary : theme.isV3 ? theme.colors.onSurface : undefined;\n let textFont = theme !== null && theme !== void 0 && theme.isV3 ? theme.fonts.bodySmall : theme.fonts.medium;\n return /*#__PURE__*/React.createElement(View, {\n style: [styles.root, disabled && styles.disabled]\n }, /*#__PURE__*/React.createElement(DayRange, {\n inRange: inRange,\n leftCrop: leftCrop,\n rightCrop: rightCrop,\n selectColor: selectColor\n }), /*#__PURE__*/React.createElement(TouchableRipple, {\n testID: `react-native-paper-dates-day-${year}-${month}-${day}`,\n disabled: disabled,\n borderless: true,\n onPress: disabled ? undefined : onPress,\n style: [styles.button, {\n backgroundColor: inRange ? selectColor : undefined\n }],\n accessibilityRole: \"button\"\n }, /*#__PURE__*/React.createElement(View, {\n style: [styles.day, isToday ? {\n borderColor: borderColor\n } : null, selected ? {\n backgroundColor: primaryColor\n } : null]\n }, /*#__PURE__*/React.createElement(Text, {\n style: [textColor ? {\n color: theme.isV3 && isToday && selected ? textColor : theme.isV3 && isToday ? theme.colors.primary : textColor\n } : undefined, { ...textFont\n }],\n selectable: false\n }, day))));\n}\n\nconst styles = StyleSheet.create({\n empty: {\n flex: 1,\n flexBasis: 0\n },\n disabled: {\n opacity: 0.3\n },\n root: {\n flexBasis: 0,\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center',\n position: 'relative'\n },\n button: {\n width: daySize,\n height: daySize,\n overflow: 'hidden',\n borderRadius: daySize / 2\n },\n day: {\n flexBasis: 0,\n flex: 1,\n borderRadius: daySize / 2,\n width: daySize,\n height: daySize,\n justifyContent: 'center',\n alignItems: 'center',\n borderWidth: 1,\n borderColor: 'transparent'\n },\n flex1: {\n flex: 1\n }\n});\nexport default /*#__PURE__*/React.memo(Day);\n//# sourceMappingURL=Day.js.map","import * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { Text, useTheme } from 'react-native-paper';\n\nfunction DayName(_ref) {\n let {\n label\n } = _ref;\n const theme = useTheme();\n let textFont = theme !== null && theme !== void 0 && theme.isV3 ? theme.fonts.bodySmall : theme.fonts.medium;\n return /*#__PURE__*/React.createElement(View, {\n style: styles.dayName\n }, /*#__PURE__*/React.createElement(Text, {\n style: [styles.dayNameLabel, { ...textFont,\n color: theme.colors.onSurface\n }],\n selectable: false\n }, label));\n}\n\nconst styles = StyleSheet.create({\n dayName: {\n flex: 1,\n alignItems: 'center'\n },\n dayNameLabel: {\n fontSize: 14,\n opacity: 0.7\n }\n});\nexport default /*#__PURE__*/React.memo(DayName);\n//# sourceMappingURL=DayName.js.map","import * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport DayName from './DayName';\nimport { useTheme } from 'react-native-paper';\nimport { showWeekDay } from './dateUtils';\nexport const dayNamesHeight = 44; // TODO: wait for a better Intl api ;-)\n\nconst weekdays = [new Date(2020, 7, 2), new Date(2020, 7, 3), new Date(2020, 7, 4), new Date(2020, 7, 5), new Date(2020, 7, 6), new Date(2020, 7, 7), new Date(2020, 7, 8)];\n\nfunction DayNames(_ref) {\n let {\n disableWeekDays,\n locale\n } = _ref;\n const theme = useTheme();\n const shortDayNames = React.useMemo(() => {\n const formatter = new Intl.DateTimeFormat(locale, {\n weekday: 'narrow'\n });\n return weekdays.map(date => formatter.format(date));\n }, [locale]);\n return /*#__PURE__*/React.createElement(View, {\n style: [styles.dayNames, {\n backgroundColor: theme.colors.surface\n }],\n pointerEvents: 'none'\n }, shortDayNames.filter((_, dayIndex) => showWeekDay(dayIndex, disableWeekDays)).map((dayName, i) => /*#__PURE__*/React.createElement(DayName, {\n key: `${dayName}_${i}`,\n label: dayName\n })));\n}\n\nconst styles = StyleSheet.create({\n dayNames: {\n height: dayNamesHeight,\n flexDirection: 'row',\n alignItems: 'center',\n backgroundColor: '#fff'\n }\n});\nexport default /*#__PURE__*/React.memo(DayNames);\n//# sourceMappingURL=DayNames.js.map","let translationsPerLocale = {};\nexport function getTranslation(locale, key, fallback) {\n const l = locale || 'en';\n const translationForLocale = translationsPerLocale[l];\n\n if (!translationForLocale) {\n console.warn(`[react-native-paper-dates] The locale ${locale} is not registered, see README!, key: ${key}`);\n return fallback || key;\n }\n\n const translation = translationsPerLocale[l][key];\n\n if (!translation) {\n console.warn(`[react-native-paper-dates] The locale ${locale} is registered, but ${key} is missing`);\n }\n\n return translation || fallback || key;\n}\nexport function registerTranslation(locale, translations) {\n translationsPerLocale[locale] = translations;\n}\n//# sourceMappingURL=utils.js.map","import * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { IconButton, useTheme } from 'react-native-paper';\nimport DayNames, { dayNamesHeight } from './DayNames';\nimport { getTranslation } from '../translations/utils';\nconst buttonContainerHeight = 56;\nconst buttonContainerMarginTop = 4;\nconst buttonContainerMarginBottom = 8;\nexport function getCalendarHeaderHeight(scrollMode) {\n if (scrollMode === 'horizontal') {\n return buttonContainerHeight + buttonContainerMarginTop + buttonContainerMarginBottom + dayNamesHeight;\n }\n\n return dayNamesHeight;\n}\n\nfunction CalendarHeader(_ref) {\n let {\n scrollMode,\n onPrev,\n onNext,\n disableWeekDays,\n locale\n } = _ref;\n const theme = useTheme();\n const isHorizontal = scrollMode === 'horizontal';\n return /*#__PURE__*/React.createElement(View, {\n style: styles.datePickerHeader,\n pointerEvents: 'box-none'\n }, isHorizontal ? /*#__PURE__*/React.createElement(View, {\n style: styles.buttonContainer,\n pointerEvents: 'box-none'\n }, /*#__PURE__*/React.createElement(View, {\n style: styles.spacer,\n pointerEvents: 'box-none'\n }), /*#__PURE__*/React.createElement(View, {\n style: [styles.buttonWrapper, {\n backgroundColor: theme.colors.surface\n }]\n }, /*#__PURE__*/React.createElement(IconButton, {\n icon: \"chevron-left\",\n accessibilityLabel: getTranslation(locale, 'previous'),\n onPress: onPrev\n })), /*#__PURE__*/React.createElement(View, {\n style: [styles.buttonWrapper, {\n backgroundColor: theme.colors.surface\n }]\n }, /*#__PURE__*/React.createElement(IconButton, {\n icon: \"chevron-right\",\n accessibilityLabel: getTranslation(locale, 'next'),\n onPress: onNext\n }))) : null, /*#__PURE__*/React.createElement(DayNames, {\n disableWeekDays: disableWeekDays,\n locale: locale\n }));\n}\n\nconst styles = StyleSheet.create({\n datePickerHeader: {\n position: 'absolute',\n top: 0,\n right: 0,\n left: 0,\n zIndex: 10\n },\n buttonContainer: {\n height: buttonContainerHeight,\n marginTop: buttonContainerMarginTop,\n marginBottom: buttonContainerMarginBottom,\n flexDirection: 'row',\n alignItems: 'center'\n },\n buttonWrapper: {},\n spacer: {\n flex: 1\n }\n});\nexport default /*#__PURE__*/React.memo(CalendarHeader);\n//# sourceMappingURL=CalendarHeader.js.map","import * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { IconButton, Text, useTheme, TouchableRipple } from 'react-native-paper';\nimport Day, { EmptyDay } from './Day';\nimport { addMonths, areDatesOnSameDay, daySize, getDaysInMonth, getFirstDayOfMonth, getRealIndex, getGridCount, isDateBetween, gridCounts, showWeekDay, startAtIndex, beginOffset, estimatedMonthHeight, useRangeChecker } from './dateUtils';\nimport { getCalendarHeaderHeight } from './CalendarHeader';\nimport { dayNamesHeight } from './DayNames';\nimport { useTextColorOnPrimary } from '../utils';\n\nfunction Month(props) {\n const {\n index,\n mode,\n date,\n dates,\n startDate,\n endDate,\n onPressYear,\n selectingYear,\n onPressDate,\n scrollMode,\n primaryColor,\n selectColor,\n roundness,\n disableWeekDays,\n locale,\n validRange\n } = props;\n const theme = useTheme();\n const textColorOnPrimary = useTextColorOnPrimary();\n const realIndex = getRealIndex(index);\n const isHorizontal = scrollMode === 'horizontal';\n const {\n isDisabled,\n isWithinValidRange\n } = useRangeChecker(validRange);\n const {\n monthName,\n month,\n year\n } = React.useMemo(() => {\n const md = addMonths(new Date(), realIndex);\n const y = md.getFullYear();\n const m = md.getMonth();\n const formatter = new Intl.DateTimeFormat(locale, {\n month: 'long'\n });\n return {\n monthName: formatter.format(md),\n month: m,\n year: y\n };\n }, [realIndex, locale]);\n const grid = React.useMemo(() => {\n const today = new Date();\n const daysInMonth = getDaysInMonth({\n year,\n month\n });\n const dayOfWeek = getFirstDayOfMonth({\n year,\n month\n });\n const emptyDays = dayOfWeek;\n return monthGrid(index).map(_ref => {\n let {\n days,\n weekGrid\n } = _ref;\n return {\n weekIndex: weekGrid,\n generatedDays: days.map((_, dayIndex) => {\n const isFirstWeek = weekGrid === 0;\n const realDayIndex = emptyDays - dayIndex;\n const beforeWeekDay = isFirstWeek && realDayIndex > 0;\n const dayOfMonth = weekGrid * 7 + dayIndex - emptyDays + 1;\n const afterWeekDay = dayOfMonth > daysInMonth;\n const day = new Date(year, month, dayOfMonth);\n const isToday = areDatesOnSameDay(day, today);\n let inRange = false;\n let disabled = isDisabled(day);\n let selected = false;\n let leftCrop = dayOfMonth === 1;\n let rightCrop = dayOfMonth === daysInMonth;\n const isFirstDayOfMonth = dayOfMonth === 1;\n const isLastDayOfMonth = dayOfMonth === daysInMonth;\n\n if (mode === 'range') {\n const selectedStartDay = areDatesOnSameDay(day, startDate);\n const selectedEndDay = areDatesOnSameDay(day, endDate);\n selected = selectedStartDay || selectedEndDay;\n inRange = isDateBetween(day, {\n startDate,\n endDate\n });\n\n if (selectedStartDay) {\n leftCrop = true;\n }\n\n if (selectedEndDay) {\n rightCrop = true;\n }\n\n if (dayIndex === 0 && !selectedStartDay) {\n leftCrop = false;\n }\n\n if (dayIndex === 6 && !selectedEndDay) {\n rightCrop = false;\n }\n\n if (isFirstDayOfMonth && selectedEndDay || isLastDayOfMonth && selectedStartDay) {\n inRange = false;\n }\n } else if (mode === 'multiple') {\n const safeDates = dates || [];\n selected = safeDates.some(d => areDatesOnSameDay(day, d));\n const yesterday = new Date(year, month, dayOfMonth - 1);\n const tomorrow = new Date(year, month, dayOfMonth + 1);\n const yesterdaySelected = safeDates.some(d => areDatesOnSameDay(d, yesterday));\n const tomorrowSelected = safeDates.some(d => areDatesOnSameDay(d, tomorrow));\n\n if (selected) {\n if (tomorrowSelected && yesterdaySelected) {\n inRange = true;\n }\n\n if (tomorrowSelected && !yesterdaySelected) {\n inRange = true;\n leftCrop = true;\n }\n\n if (yesterdaySelected && !tomorrowSelected) {\n inRange = true;\n rightCrop = true;\n }\n\n if (isFirstDayOfMonth && !tomorrowSelected) {\n inRange = false;\n }\n\n if (isLastDayOfMonth && !yesterdaySelected) {\n inRange = false;\n }\n\n if (inRange && !leftCrop && !rightCrop) {\n selected = false;\n }\n }\n } else if (mode === 'single') {\n selected = areDatesOnSameDay(day, date);\n }\n\n const isWithinOptionalValidRange = isWithinValidRange(day);\n\n if (inRange && !disabled) {\n disabled = false;\n }\n\n if (!isWithinOptionalValidRange) {\n disabled = true;\n }\n\n return {\n beforeWeekDay,\n afterWeekDay,\n year,\n month,\n dayOfMonth,\n dayIndex,\n mode,\n selected,\n inRange,\n leftCrop,\n rightCrop,\n isToday,\n disabled\n };\n })\n };\n });\n }, [year, month, index, isDisabled, mode, isWithinValidRange, startDate, endDate, dates, date]);\n let textFont = theme !== null && theme !== void 0 && theme.isV3 ? theme.fonts.titleSmall : theme.fonts.medium;\n return /*#__PURE__*/React.createElement(View, {\n style: [styles.month, {\n height: getMonthHeight(scrollMode, index)\n }]\n }, /*#__PURE__*/React.createElement(View, {\n style: [styles.monthHeader, isHorizontal ? {\n marginTop: monthHeaderSingleMarginTop,\n marginBottom: monthHeaderSingleMarginBottom\n } : null]\n }, /*#__PURE__*/React.createElement(TouchableRipple, {\n disabled: !isHorizontal,\n onPress: isHorizontal ? () => onPressYear(year) : undefined,\n accessibilityRole: \"button\",\n accessibilityLabel: `${monthName} ${year}`,\n style: [styles.yearButton, {\n borderRadius: roundness\n }]\n }, /*#__PURE__*/React.createElement(View, {\n style: [styles.yearButtonInner, {\n borderRadius: roundness\n }]\n }, /*#__PURE__*/React.createElement(Text, {\n style: [styles.monthLabel, { ...textFont,\n color: theme.isV3 ? theme.colors.onSurfaceVariant : theme.colors.onSurface\n }],\n selectable: false\n }, monthName, \" \", year), /*#__PURE__*/React.createElement(View, {\n style: isHorizontal ? styles.opacity1 : styles.opacity0\n }, /*#__PURE__*/React.createElement(IconButton, {\n onPress: isHorizontal ? () => onPressYear(year) : undefined,\n icon: selectingYear ? theme.isV3 ? 'menu-up' : 'chevron-up' : theme.isV3 ? 'menu-down' : 'chevron-down'\n }))))), grid.map(_ref2 => {\n let {\n weekIndex,\n generatedDays\n } = _ref2;\n return /*#__PURE__*/React.createElement(View, {\n style: styles.week,\n key: weekIndex\n }, generatedDays.filter(gd => showWeekDay(gd.dayIndex, disableWeekDays)).map(gd => gd.beforeWeekDay || gd.afterWeekDay ? /*#__PURE__*/React.createElement(EmptyDay, {\n key: gd.dayIndex\n }) : /*#__PURE__*/React.createElement(Day, {\n key: gd.dayIndex,\n theme: theme,\n day: gd.dayOfMonth,\n month: gd.month,\n year: gd.year,\n selected: gd.selected,\n inRange: gd.inRange,\n leftCrop: gd.leftCrop,\n rightCrop: gd.rightCrop,\n onPressDate: onPressDate,\n isToday: gd.isToday,\n selectColor: selectColor,\n primaryColor: primaryColor,\n disabled: gd.disabled,\n textColorOnPrimary: textColorOnPrimary\n })));\n }));\n}\n\nexport const weekMargin = 6;\nexport const weekSize = daySize + weekMargin;\nexport const montHeaderHeight = 56;\nexport const monthHeaderSingleMarginTop = 4;\nexport const monthHeaderSingleMarginBottom = 8 + 44 + 12;\nexport const monthHeaderSingleHeight = monthHeaderSingleMarginTop + monthHeaderSingleMarginBottom;\nconst styles = StyleSheet.create({\n week: {\n flexDirection: 'row',\n marginBottom: weekMargin,\n height: daySize\n },\n month: {},\n monthHeader: {\n height: montHeaderHeight,\n justifyContent: 'center',\n overflow: 'hidden'\n },\n monthLabel: {\n fontSize: 14,\n opacity: 0.7\n },\n yearButton: {\n alignSelf: 'flex-start',\n marginLeft: 6\n },\n yearButtonInner: {\n paddingLeft: 16,\n flexDirection: 'row',\n alignItems: 'center'\n },\n opacity0: {\n opacity: 0\n },\n opacity1: {\n opacity: 1\n }\n});\n\nconst monthGrid = index => {\n return Array(getGridCount(index)).fill(null).map((_, weekGrid) => {\n const days = Array(7).fill(null);\n return {\n weekGrid,\n days\n };\n });\n};\n\nfunction getIndexCount(index) {\n if (index > startAtIndex) {\n return index - startAtIndex;\n }\n\n return -(startAtIndex - index);\n}\n\nfunction weeksOffset(index) {\n if (index === startAtIndex) {\n return 0;\n }\n\n let off = 0;\n\n if (index > startAtIndex) {\n for (let i = 0; i < index - startAtIndex; i++) {\n const cIndex = startAtIndex + i;\n off += gridCounts[cIndex] || getGridCount(cIndex);\n }\n } else {\n for (let i = 0; i < startAtIndex - index; i++) {\n const cIndex = startAtIndex - i - 1;\n off -= gridCounts[cIndex] || getGridCount(cIndex);\n }\n }\n\n return off;\n}\n\nexport function getIndexFromHorizontalOffset(offset, width) {\n return startAtIndex + Math.floor(offset / width);\n}\nexport function getIndexFromVerticalOffset(offset) {\n let estimatedIndex = startAtIndex + Math.ceil(offset / estimatedMonthHeight);\n const realOffset = getVerticalMonthsOffset(estimatedIndex);\n const difference = (realOffset - beginOffset - offset) / estimatedMonthHeight;\n\n if (difference >= 1 || difference <= -1) {\n estimatedIndex -= Math.floor(difference);\n }\n\n return estimatedIndex;\n}\nexport function getHorizontalMonthOffset(index, width) {\n if (index < 0) {\n return 0;\n }\n\n return width * index;\n}\nexport function getVerticalMonthsOffset(index) {\n const count = getIndexCount(index);\n const ob = weeksOffset(index);\n const monthsHeight = weekSize * ob;\n const c = monthsHeight + count * (dayNamesHeight + montHeaderHeight);\n return (c || 0) + beginOffset;\n}\nexport function getMonthHeight(scrollMode, index) {\n const calendarHeight = getCalendarHeaderHeight(scrollMode);\n const gc = getGridCount(index);\n const currentMonthHeight = weekSize * gc;\n const extraHeight = scrollMode === 'horizontal' ? monthHeaderSingleHeight : montHeaderHeight;\n const c = calendarHeight + currentMonthHeight + extraHeight;\n return c || 0;\n}\nexport default /*#__PURE__*/React.memo(Month);\n//# sourceMappingURL=Month.js.map","import * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nexport default function AutoSizer(_ref) {\n let {\n children\n } = _ref;\n const [layout, setLayout] = React.useState(null);\n const onLayout = React.useCallback(event => {\n const nl = event.nativeEvent.layout; // https://github.com/necolas/react-native-web/issues/1704\n\n if (!layout || layout.width !== nl.width || layout.height !== nl.height) {\n setLayout({\n width: nl.width,\n height: nl.height\n });\n }\n }, [layout, setLayout]);\n return /*#__PURE__*/React.createElement(View, {\n style: [styles.autoSizer, layout && layout],\n onLayout: onLayout\n }, layout ? children(layout) : null);\n}\nconst styles = StyleSheet.create({\n autoSizer: {\n flex: 1,\n overflow: 'hidden'\n }\n});\n//# sourceMappingURL=AutoSizer.js.map","import * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { getIndexFromVerticalOffset, getMonthHeight, getVerticalMonthsOffset, montHeaderHeight } from './Month';\nimport { beginOffset, estimatedMonthHeight, totalMonths } from './dateUtils';\nimport { useLatest } from '../utils';\nimport { useYearChange } from './SwiperUtils';\nimport AutoSizer from './AutoSizer';\n\nfunction Swiper(_ref) {\n let {\n scrollMode,\n renderItem,\n renderHeader,\n renderFooter,\n selectedYear,\n initialIndex\n } = _ref;\n const isHorizontal = scrollMode === 'horizontal';\n const [index, setIndex] = React.useState(initialIndex);\n const onPrev = React.useCallback(() => {\n setIndex(prev => prev - 1);\n }, [setIndex]);\n const onNext = React.useCallback(() => {\n setIndex(prev => prev + 1);\n }, [setIndex]);\n const renderProps = {\n index,\n onPrev,\n onNext\n };\n const indexRef = useLatest(index);\n useYearChange(newIndex => {\n if (newIndex) {\n setIndex(newIndex);\n }\n }, {\n selectedYear,\n currentIndexRef: indexRef\n });\n return /*#__PURE__*/React.createElement(React.Fragment, null, renderHeader && renderHeader(renderProps), isHorizontal ? /*#__PURE__*/React.createElement(View, {\n style: styles.flex1\n }, renderItem({\n index,\n onPrev,\n onNext\n })) : /*#__PURE__*/React.createElement(AutoSizer, null, _ref2 => {\n let {\n width,\n height\n } = _ref2;\n return /*#__PURE__*/React.createElement(VerticalScroller, {\n width: width,\n height: height,\n initialIndex: initialIndex,\n estimatedHeight: estimatedMonthHeight,\n renderItem: renderItem\n });\n }), renderFooter && renderFooter(renderProps));\n}\n\nconst visibleArray = i => [i - 2, i - 1, i, i + 1, i + 2];\n\nfunction VerticalScroller(_ref3) {\n let {\n width,\n height,\n initialIndex,\n estimatedHeight,\n renderItem\n } = _ref3;\n const idx = React.useRef(initialIndex);\n const [visibleIndexes, setVisibleIndexes] = React.useState(visibleArray(initialIndex));\n const parentRef = React.useRef(null);\n useIsomorphicLayoutEffect(() => {\n const element = parentRef.current;\n\n if (!element) {\n return;\n }\n\n const top = getVerticalMonthsOffset(idx.current) - montHeaderHeight;\n element.scrollTo({\n top\n });\n }, [parentRef, idx]);\n const setVisibleIndexesThrottled = useDebouncedCallback(setVisibleIndexes);\n const onScroll = React.useCallback(e => {\n const top = e.currentTarget.scrollTop;\n\n if (top === 0) {\n return;\n }\n\n const offset = top - beginOffset;\n const index = getIndexFromVerticalOffset(offset);\n\n if (idx.current !== index) {\n idx.current = index;\n setVisibleIndexesThrottled(visibleArray(index));\n }\n }, [setVisibleIndexesThrottled]);\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: parentRef // eslint-disable-next-line react-native/no-inline-styles\n ,\n style: {\n height,\n width,\n overflow: 'auto'\n },\n onScroll: onScroll\n }, /*#__PURE__*/React.createElement(\"div\", {\n // eslint-disable-next-line react-native/no-inline-styles\n style: {\n height: estimatedHeight * totalMonths,\n position: 'relative'\n }\n }, [0, 1, 2, 3, 4].map(vi => /*#__PURE__*/React.createElement(\"div\", {\n key: vi // eslint-disable-next-line react-native/no-inline-styles\n ,\n style: {\n willChange: 'transform',\n transform: `translateY(${getVerticalMonthsOffset(visibleIndexes[vi])}px)`,\n left: 0,\n right: 0,\n position: 'absolute',\n height: getMonthHeight('vertical', visibleIndexes[vi])\n }\n }, renderItem({\n index: visibleIndexes[vi],\n onPrev: empty,\n onNext: empty\n })))));\n}\n\nconst empty = () => null;\n\nconst styles = StyleSheet.create({\n flex1: {\n flex: 1\n }\n});\nexport function useDebouncedCallback(callback) {\n const mounted = React.useRef(true);\n const latest = useLatest(callback);\n const timerId = React.useRef(null);\n React.useEffect(() => {\n return () => {\n mounted.current = false;\n\n if (timerId.current) {\n window.cancelAnimationFrame(timerId.current);\n }\n };\n }, [mounted, timerId]);\n return React.useCallback(args => {\n if (timerId.current) {\n window.cancelAnimationFrame(timerId.current);\n }\n\n timerId.current = window.requestAnimationFrame(function () {\n if (mounted.current) {\n latest.current(args);\n }\n });\n }, [mounted, timerId, latest]);\n}\nconst useIsomorphicLayoutEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nexport default /*#__PURE__*/React.memo(Swiper);\n//# sourceMappingURL=Swiper.js.map","import { useLatest } from '../utils';\nimport * as React from 'react';\nimport { addMonths, differenceInMonths, getRealIndex, startAtIndex } from './dateUtils';\nexport function useYearChange(onChange, _ref) {\n let {\n selectedYear,\n currentIndexRef\n } = _ref;\n const onChangeRef = useLatest(onChange);\n React.useEffect(() => {\n if (selectedYear) {\n const currentIndex = currentIndexRef.current || 0;\n const currentDate = addMonths(new Date(), getRealIndex(currentIndex));\n currentDate.setFullYear(selectedYear);\n const today = new Date();\n const months = differenceInMonths(today, currentDate);\n const newIndex = startAtIndex + months;\n\n if (currentIndex !== newIndex) {\n onChangeRef.current(newIndex);\n }\n }\n }, [currentIndexRef, onChangeRef, selectedYear]);\n}\n//# sourceMappingURL=SwiperUtils.js.map","import * as React from 'react';\nimport { FlatList, StyleSheet, View, ScrollView } from 'react-native';\nimport { Text, TouchableRipple, useTheme } from 'react-native-paper';\nimport { range } from '../utils';\nconst ITEM_HEIGHT = 62;\nexport default function YearPicker(_ref) {\n let {\n selectedYear,\n selectingYear,\n onPressYear,\n startYear,\n endYear\n } = _ref;\n const theme = useTheme();\n const flatList = React.useRef(null);\n const years = range(isNaN(startYear) ? 1800 : startYear, isNaN(endYear) ? 2200 : endYear); // scroll to selected year\n\n React.useEffect(() => {\n if (flatList.current && selectedYear) {\n const indexToGo = selectedYear - startYear;\n flatList.current.scrollToOffset({\n offset: indexToGo / 3 * ITEM_HEIGHT - ITEM_HEIGHT,\n animated: false\n });\n }\n }, [flatList, selectedYear, startYear]);\n return /*#__PURE__*/React.createElement(View, {\n style: [StyleSheet.absoluteFill, styles.root, {\n backgroundColor: theme.colors.surface\n }, selectingYear ? styles.opacity1 : styles.opacity0],\n pointerEvents: selectingYear ? 'auto' : 'none'\n }, /*#__PURE__*/React.createElement(FlatList, {\n ref: flatList,\n style: styles.list,\n data: years,\n renderScrollComponent: sProps => {\n return /*#__PURE__*/React.createElement(ScrollView, sProps);\n },\n renderItem: _ref2 => {\n let {\n item\n } = _ref2;\n return /*#__PURE__*/React.createElement(Year, {\n year: item,\n selected: selectedYear === item,\n onPressYear: onPressYear\n });\n },\n keyExtractor: item => `${item}`,\n numColumns: 3\n }));\n}\n\nfunction YearPure(_ref3) {\n let {\n year,\n selected,\n onPressYear\n } = _ref3;\n const theme = useTheme();\n let textFont = theme !== null && theme !== void 0 && theme.isV3 ? theme.fonts.bodyLarge : theme.fonts.medium;\n return /*#__PURE__*/React.createElement(View, {\n style: styles.year\n }, /*#__PURE__*/React.createElement(TouchableRipple, {\n onPress: () => onPressYear(year),\n accessibilityRole: \"button\",\n accessibilityLabel: String(year),\n style: styles.yearButton\n }, /*#__PURE__*/React.createElement(View, {\n style: [styles.yearInner, selected ? {\n backgroundColor: theme.colors.primary\n } : null]\n }, /*#__PURE__*/React.createElement(Text, {\n style: [styles.yearLabel, selected ? // eslint-disable-next-line react-native/no-inline-styles\n {\n color: theme.isV3 ? theme.colors.onPrimary : '#fff'\n } : {\n color: theme.isV3 ? theme.colors.onSurfaceVariant : theme.colors.onSurface\n }, { ...textFont\n }],\n selectable: false\n }, year))));\n}\n\nconst Year = /*#__PURE__*/React.memo(YearPure);\nconst styles = StyleSheet.create({\n root: {\n flex: 1,\n top: 56,\n zIndex: 100\n },\n list: {\n flex: 1\n },\n year: {\n flex: 1,\n marginLeft: 16,\n marginRight: 16,\n height: ITEM_HEIGHT,\n justifyContent: 'center'\n },\n yearButton: {\n borderRadius: 46 / 2,\n overflow: 'hidden'\n },\n yearInner: {\n borderRadius: 46 / 2,\n height: 46,\n alignItems: 'center',\n justifyContent: 'center'\n },\n yearLabel: {\n fontSize: 16\n },\n opacity0: {\n opacity: 0\n },\n opacity1: {\n opacity: 1\n }\n});\n//# sourceMappingURL=YearPicker.js.map","import * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport Swiper from './Swiper';\nimport Month from './Month';\nimport { areDatesOnSameDay, dateToUnix, getEndOfDay, getInitialIndex } from './dateUtils';\nimport CalendarHeader from './CalendarHeader';\nimport { useCallback, useMemo } from 'react';\nimport YearPicker from './YearPicker';\nimport Color from 'color';\nimport { useTheme } from 'react-native-paper';\nimport { useLatest, lightenBy, darkenBy } from '../utils';\n\nfunction Calendar(props) {\n const {\n locale,\n mode,\n onChange,\n startDate,\n endDate,\n date,\n disableWeekDays,\n startYear,\n endYear,\n dates,\n validRange,\n dateMode\n } = props;\n const theme = useTheme();\n const selectColor = useMemo(() => {\n if (theme.isV3) {\n return theme.colors.primaryContainer;\n }\n\n if (theme.dark) {\n return darkenBy(Color(theme.colors.primary), 0.1).hex();\n }\n\n return lightenBy(Color(theme.colors.primary), 0.9).hex();\n }, [theme]);\n const scrollMode = mode === 'range' || mode === 'multiple' ? 'vertical' : 'horizontal';\n const [selectedYear, setSelectedYear] = React.useState(undefined);\n const [selectingYear, setSelectingYear] = React.useState(false);\n const onPressYear = useCallback(year => {\n setSelectedYear(year);\n setSelectingYear(prev => !prev);\n }, [setSelectingYear]); // prevent re-rendering all months when something changed we only need the\n // latest version of the props and we don't want the useCallback to change\n\n const startDateRef = useLatest(startDate);\n const endDateRef = useLatest(endDate);\n const onChangeRef = useLatest(onChange);\n const datesRef = useLatest(dates);\n const onPressDate = useCallback(d => {\n if (mode === 'single') {\n ;\n onChangeRef.current({\n date: dateMode === 'start' ? d : getEndOfDay(d)\n });\n } else if (mode === 'range') {\n const sd = startDateRef.current;\n const ed = endDateRef.current;\n let isStart = true;\n\n if (sd && !ed && dateToUnix(d) >= dateToUnix(sd)) {\n isStart = false;\n }\n\n ;\n onChangeRef.current({\n startDate: isStart ? d : sd,\n endDate: !isStart ? getEndOfDay(d) : undefined\n });\n } else if (mode === 'multiple') {\n datesRef.current = datesRef.current || [];\n const exists = datesRef.current.some(ed => areDatesOnSameDay(ed, d));\n const newDates = exists ? datesRef.current.filter(ed => !areDatesOnSameDay(ed, d)) : [...datesRef.current, d];\n newDates.sort((a, b) => a.getTime() - b.getTime());\n onChangeRef.current({\n dates: newDates,\n datePressed: d,\n change: exists ? 'removed' : 'added'\n });\n }\n }, [mode, dateMode, onChangeRef, startDateRef, endDateRef, datesRef]);\n const firstDate = startDate || date || (dates === null || dates === void 0 ? void 0 : dates[0]);\n return /*#__PURE__*/React.createElement(View, {\n style: styles.root\n }, /*#__PURE__*/React.createElement(Swiper, {\n initialIndex: getInitialIndex(firstDate),\n selectedYear: selectedYear,\n scrollMode: scrollMode,\n renderItem: _ref => {\n let {\n index\n } = _ref;\n return /*#__PURE__*/React.createElement(Month, {\n locale: locale,\n mode: mode,\n key: index,\n validRange: validRange,\n index: index,\n startDate: startDate,\n endDate: endDate,\n date: date,\n dates: dates,\n onPressYear: onPressYear,\n selectingYear: selectingYear,\n onPressDate: onPressDate,\n scrollMode: scrollMode,\n primaryColor: theme.colors.primary,\n selectColor: selectColor,\n roundness: theme.roundness,\n disableWeekDays: disableWeekDays\n });\n },\n renderHeader: _ref2 => {\n let {\n onPrev,\n onNext\n } = _ref2;\n return /*#__PURE__*/React.createElement(CalendarHeader, {\n locale: locale,\n onPrev: onPrev,\n onNext: onNext,\n scrollMode: scrollMode,\n disableWeekDays: disableWeekDays\n });\n }\n }), scrollMode === 'horizontal' ? /*#__PURE__*/React.createElement(YearPicker, {\n selectedYear: selectedYear,\n selectingYear: selectingYear,\n onPressYear: onPressYear,\n startYear: startYear || 1800,\n endYear: endYear || 2200\n }) : null);\n}\n\nconst styles = StyleSheet.create({\n root: {\n flex: 1\n },\n viewPager: {\n flex: 1\n }\n});\nexport default /*#__PURE__*/React.memo(Calendar);\n//# sourceMappingURL=Calendar.js.map","import * as React from 'react';\nimport { Animated, StyleSheet, View } from 'react-native';\nimport { useTheme } from 'react-native-paper';\nexport default function AnimatedCrossView(_ref) {\n let {\n collapsed,\n calendar,\n calendarEdit\n } = _ref;\n const theme = useTheme();\n const calendarOpacity = React.useRef(new Animated.Value(collapsed ? 1 : 0));\n React.useEffect(() => {\n Animated.timing(calendarOpacity.current, {\n toValue: collapsed ? 1 : 0,\n duration: 250,\n useNativeDriver: true\n }).start();\n }, [collapsed]);\n return /*#__PURE__*/React.createElement(View, {\n style: styles.root\n }, /*#__PURE__*/React.createElement(Animated.View, {\n pointerEvents: collapsed ? 'auto' : 'none',\n style: [styles.calendar, {\n opacity: calendarOpacity.current,\n transform: [{\n scaleY: calendarOpacity.current.interpolate({\n inputRange: [0, 1],\n outputRange: [0.85, 1]\n })\n }, {\n scaleX: calendarOpacity.current.interpolate({\n inputRange: [0, 1],\n outputRange: [0.95, 1]\n })\n }]\n }]\n }, calendar), /*#__PURE__*/React.createElement(Animated.View, {\n pointerEvents: collapsed ? 'none' : 'auto',\n style: [styles.calendarEdit, {\n backgroundColor: theme.colors.surface,\n opacity: calendarOpacity.current.interpolate({\n inputRange: [0, 1],\n outputRange: [1, 0]\n }),\n transform: [{\n scale: calendarOpacity.current.interpolate({\n inputRange: [0, 1],\n outputRange: [1, 0.95]\n })\n }]\n }]\n }, calendarEdit));\n}\nconst styles = StyleSheet.create({\n root: {\n flex: 1\n },\n calendarEdit: {\n position: 'absolute',\n left: 0,\n right: 0\n },\n calendar: {\n flex: 1\n }\n});\n//# sourceMappingURL=AnimatedCrossView.js.map","import * as React from 'react';\nimport { Animated, StyleSheet } from 'react-native';\nimport { Appbar, Button, useTheme } from 'react-native-paper';\nimport { useHeaderTextColor } from '../utils';\nimport { getTranslation } from '../translations/utils';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\nexport default function DatePickerModalHeader(props) {\n const theme = useTheme();\n const {\n disableSafeTop,\n locale,\n closeIcon = 'close'\n } = props;\n const saveLabel = props.saveLabel || getTranslation(locale, 'save');\n const color = useHeaderTextColor();\n const insets = useSafeAreaInsets();\n return /*#__PURE__*/React.createElement(Animated.View, {\n style: [styles.animated, // eslint-disable-next-line react-native/no-inline-styles\n {\n paddingTop: disableSafeTop ? 0 : insets.top,\n paddingLeft: insets.left,\n paddingRight: insets.right\n }]\n }, /*#__PURE__*/React.createElement(Appbar, {\n style: styles.appbarHeader\n }, /*#__PURE__*/React.createElement(Appbar.Action, {\n icon: closeIcon,\n accessibilityLabel: getTranslation(locale, 'close'),\n onPress: props.onDismiss,\n color: color,\n testID: \"react-native-paper-dates-close\"\n }), /*#__PURE__*/React.createElement(Appbar.Content, {\n title: ''\n }), /*#__PURE__*/React.createElement(Button, {\n color: color,\n textColor: theme.isV3 ? theme.colors.primary : color,\n onPress: props.onSave,\n disabled: props.saveLabelDisabled ?? false,\n uppercase: props.uppercase ?? true,\n testID: \"react-native-paper-dates-save\"\n }, saveLabel)));\n}\nconst styles = StyleSheet.create({\n fill: {\n flex: 1\n },\n animated: {\n elevation: 4\n },\n header: {\n height: 75,\n alignItems: 'center',\n flexDirection: 'row',\n paddingLeft: 24,\n paddingRight: 12\n },\n headerContentContainer: {\n marginTop: 5,\n flexDirection: 'row'\n },\n label: {\n color: '#fff',\n letterSpacing: 1,\n fontSize: 13\n },\n singleHeaderText: {\n color: '#fff',\n fontSize: 25\n },\n rangeHeaderText: {\n color: '#fff',\n fontSize: 25\n },\n headerTextFilled: {\n color: 'rgba(255,255,255,1)'\n },\n headerTextEmpty: {\n color: 'rgba(255,255,255,0.5)'\n },\n headerSeparator: {\n color: 'rgba(255,255,255,1)',\n fontSize: 25,\n paddingLeft: 6,\n paddingRight: 6\n },\n appbarHeader: {\n elevation: 0,\n backgroundColor: 'transparent'\n }\n});\n//# sourceMappingURL=DatePickerModalHeader.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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\nimport * as React from 'react';\nimport { View, StyleSheet } from 'react-native';\nimport { IconButton, Text, useTheme } from 'react-native-paper';\nimport { useHeaderTextColor } from '../utils';\nimport Color from 'color';\nimport { getTranslation } from '../translations/utils';\n\nfunction getLabel(locale, mode, configuredLabel) {\n if (configuredLabel) {\n return configuredLabel;\n }\n\n if (mode === 'range') {\n return getTranslation(locale, 'selectRange');\n }\n\n if (mode === 'multiple') {\n return getTranslation(locale, 'selectMultiple');\n }\n\n if (mode === 'single') {\n return getTranslation(locale, 'selectSingle');\n }\n\n return '...?';\n}\n\nexport default function DatePickerModalContentHeader(props) {\n const {\n onToggle,\n collapsed,\n mode,\n moreLabel,\n uppercase,\n editIcon,\n calendarIcon,\n allowEditing\n } = props;\n const theme = useTheme();\n const label = getLabel(props.locale, props.mode, props.label);\n const color = useHeaderTextColor();\n const isEditingEnabled = allowEditing && mode !== 'multiple';\n const supportingTextColor = theme.isV3 ? theme.colors.onSurfaceVariant : color;\n const textFont = theme !== null && theme !== void 0 && theme.isV3 ? theme.fonts.labelMedium : theme.fonts.medium;\n return /*#__PURE__*/React.createElement(View, {\n style: styles.header\n }, /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(Text, {\n style: [styles.label, {\n color: supportingTextColor,\n ...textFont\n }]\n }, uppercase ? label.toUpperCase() : label), /*#__PURE__*/React.createElement(View, {\n style: styles.headerContentContainer\n }, mode === 'range' ? /*#__PURE__*/React.createElement(HeaderContentRange, _extends({}, props, {\n color: color\n })) : null, mode === 'single' ? /*#__PURE__*/React.createElement(HeaderContentSingle, _extends({}, props, {\n color: color\n })) : null, mode === 'multiple' ? /*#__PURE__*/React.createElement(HeaderContentMulti, _extends({}, props, {\n color: color,\n moreLabel: moreLabel\n })) : null)), /*#__PURE__*/React.createElement(View, {\n style: styles.fill\n }), isEditingEnabled ? /*#__PURE__*/React.createElement(IconButton, {\n icon: collapsed ? editIcon ?? theme.isV3 ? 'pencil-outline' : 'pencil' : calendarIcon ?? theme.isV3 ? 'calendar-blank' : 'calendar',\n accessibilityLabel: collapsed ? getTranslation(props.locale, 'typeInDate') : getTranslation(props.locale, 'pickDateFromCalendar'),\n iconColor: theme.isV3 ? theme.colors.onSurface : color,\n onPress: onToggle\n }) : null);\n}\nexport function HeaderContentSingle(_ref) {\n let {\n state,\n emptyLabel = ' ',\n color,\n locale\n } = _ref;\n const theme = useTheme();\n const lighterColor = Color(color).fade(0.5).rgb().toString();\n const dateColor = state.date ? theme.isV3 ? theme.colors.onSurface : color : lighterColor;\n const formatter = React.useMemo(() => {\n return new Intl.DateTimeFormat(locale, {\n month: 'short',\n day: 'numeric'\n });\n }, [locale]);\n return /*#__PURE__*/React.createElement(Text, {\n style: [styles.singleHeaderText, {\n color: dateColor\n }]\n }, state.date ? formatter.format(state.date) : emptyLabel);\n}\nexport function HeaderContentMulti(_ref2) {\n var _state$dates;\n\n let {\n state,\n emptyLabel = ' ',\n moreLabel = 'more',\n color,\n locale\n } = _ref2;\n const theme = useTheme();\n const dateCount = ((_state$dates = state.dates) === null || _state$dates === void 0 ? void 0 : _state$dates.length) || 0;\n const lighterColor = Color(color).fade(0.5).rgb().toString();\n const dateColor = dateCount ? theme.isV3 ? theme.colors.onSurface : color : lighterColor;\n const formatter = React.useMemo(() => {\n return new Intl.DateTimeFormat(locale, {\n month: 'short',\n day: 'numeric'\n });\n }, [locale]);\n let label = emptyLabel;\n\n if (dateCount) {\n if (dateCount <= 2) {\n label = state.dates.map(date => formatter.format(date)).join(', ');\n } else {\n label = formatter.format(state.dates[0]) + ` (+ ${dateCount - 1} ${moreLabel})`;\n }\n }\n\n return /*#__PURE__*/React.createElement(Text, {\n style: [styles.singleHeaderText, {\n color: dateColor\n }]\n }, label);\n}\nexport function HeaderContentRange(_ref3) {\n let {\n locale,\n state,\n headerSeparator = '-',\n startLabel = 'Start',\n endLabel = 'End',\n color\n } = _ref3;\n const theme = useTheme();\n const formatter = React.useMemo(() => {\n return new Intl.DateTimeFormat(locale, {\n month: 'short',\n day: 'numeric'\n });\n }, [locale]);\n const lighterColor = Color(color).fade(0.5).rgb().toString();\n const startColor = state.startDate ? theme.isV3 ? theme.colors.onSurface : color : lighterColor;\n const endColor = state.endDate ? theme.isV3 ? theme.colors.onSurface : color : lighterColor;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Text, {\n style: [styles.rangeHeaderText, {\n color: startColor\n }]\n }, state.startDate ? formatter.format(state.startDate) : startLabel), /*#__PURE__*/React.createElement(Text, {\n style: [styles.headerSeparator, {\n color\n }]\n }, headerSeparator), /*#__PURE__*/React.createElement(Text, {\n style: [styles.rangeHeaderText, {\n color: endColor\n }]\n }, state.endDate ? formatter.format(state.endDate) : endLabel));\n}\nconst styles = StyleSheet.create({\n fill: {\n flex: 1\n },\n animated: {\n paddingBottom: 0,\n elevation: 4\n },\n safeContent: {\n paddingBottom: 0\n },\n header: {\n height: 75,\n alignItems: 'center',\n flexDirection: 'row',\n paddingLeft: 24,\n paddingRight: 12\n },\n headerContentContainer: {\n marginTop: 5,\n flexDirection: 'row'\n },\n label: {\n color: '#fff',\n letterSpacing: 1,\n fontSize: 13\n },\n singleHeaderText: {\n color: '#fff',\n fontSize: 25\n },\n rangeHeaderText: {\n color: '#fff',\n fontSize: 25\n },\n excludeInRangeHeaderText: {\n fontSize: 25\n },\n excludeInRangeHeaderTextSmall: {\n fontSize: 14,\n marginTop: -3,\n marginLeft: 3\n },\n headerSeparator: {\n color: 'rgba(255,255,255,1)',\n fontSize: 25,\n paddingLeft: 6,\n paddingRight: 6\n },\n appbarHeader: {\n elevation: 0\n },\n column: {\n flexDirection: 'column'\n },\n row: {\n flexDirection: 'row'\n }\n});\n//# sourceMappingURL=DatePickerModalContentHeader.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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\nimport * as React from 'react';\nimport { TextInput } from 'react-native-paper';\nconst splitCharacters = ['-', '/', '.', '年', ' '];\n\nfunction detectCharacter(mask) {\n const c = splitCharacters.find(ch => mask.includes(ch));\n return c || '';\n}\n\nfunction enhanceTextWithMask(text, mask, previousValue) {\n const isBackSpace = previousValue.length > text.length;\n const splitCharacter = detectCharacter(mask);\n const maskParts = mask.split(splitCharacter);\n const textParts = text.split(splitCharacter);\n let finalString = [];\n\n for (let maskPartIndex = 0; maskPartIndex < mask.length; maskPartIndex++) {\n let partString = [];\n const maskPart = maskParts[maskPartIndex];\n const textPart = textParts[maskPartIndex];\n\n if (!textPart) {\n continue;\n }\n\n for (let maskDigitIndex = 0; maskDigitIndex < maskPart.length; maskDigitIndex++) {\n const currentCharacter = textPart[maskDigitIndex];\n\n if (isBackSpace && currentCharacter === undefined) {\n continue;\n }\n\n const character = textPart[maskDigitIndex];\n\n if (character !== undefined) {\n partString.push(character);\n }\n }\n\n finalString.push(partString.join(''));\n }\n\n const lastPart = finalString[finalString.length - 1];\n const lastMaskPart = maskParts[finalString.length - 1];\n\n if ( // if mask is completed\n finalString.length !== maskParts.length && // or ...\n lastPart && lastMaskPart && lastPart.length === lastMaskPart.length) {\n return finalString.join(splitCharacter) + (isBackSpace ? '' : splitCharacter);\n }\n\n return finalString.join(splitCharacter);\n}\n\nfunction TextInputWithMask(_ref, ref) {\n let {\n onChangeText,\n onChange,\n value,\n mask,\n disabled,\n ...rest\n } = _ref;\n const [controlledValue, setControlledValue] = React.useState(value || '');\n\n const onInnerChange = text => {\n if (text.length === mask.length) {\n onChangeText && onChangeText(text);\n }\n\n setControlledValue(text);\n };\n\n const onInnerBlur = () => {\n const enhancedText = enhanceTextWithMask(value, mask, controlledValue);\n setControlledValue(enhancedText);\n };\n\n React.useEffect(() => {\n setControlledValue(value || '');\n }, [value]);\n return /*#__PURE__*/React.createElement(TextInput, _extends({\n ref: ref\n }, rest, {\n disabled: disabled,\n value: controlledValue,\n onChangeText: onInnerChange,\n onChange: e => {\n onChange && onChange(e);\n },\n onBlur: onInnerBlur\n }));\n}\n\nexport default /*#__PURE__*/React.forwardRef(TextInputWithMask);\n//# sourceMappingURL=TextInputMask.js.map","import { useInputFormat, useInputFormatter, useRangeChecker } from './dateUtils';\nimport * as React from 'react';\nimport { getTranslation } from '../translations/utils';\nexport default function useDateInput(_ref) {\n let {\n locale,\n value,\n validRange,\n inputMode,\n onChange,\n onValidationError\n } = _ref;\n const {\n isDisabled,\n isWithinValidRange,\n validStart,\n validEnd\n } = useRangeChecker(validRange);\n const [error, setError] = React.useState(null);\n const formatter = useInputFormatter({\n locale\n });\n const inputFormat = useInputFormat({\n formatter,\n locale\n });\n const formattedValue = value ? formatter.format(value) : '';\n\n const onChangeText = date => {\n const dayIndex = inputFormat.indexOf('DD');\n const monthIndex = inputFormat.indexOf('MM');\n const yearIndex = locale === 'pt' ? inputFormat.indexOf('AAAA') : inputFormat.indexOf('YYYY');\n const day = Number(date.slice(dayIndex, dayIndex + 2));\n const year = Number(date.slice(yearIndex, yearIndex + 4));\n const month = Number(date.slice(monthIndex, monthIndex + 2));\n\n if (Number.isNaN(day) || Number.isNaN(year) || Number.isNaN(month)) {\n const inputError = getTranslation(locale, 'notAccordingToDateFormat', () => 'notAccordingToDateFormat')(inputFormat);\n setError(inputError);\n onValidationError && onValidationError(inputError);\n return;\n }\n\n const finalDate = inputMode === 'end' ? new Date(year, month - 1, day, 23, 59, 59) : new Date(year, month - 1, day);\n\n if (isDisabled(finalDate)) {\n const inputError = getTranslation(locale, 'dateIsDisabled');\n setError(inputError);\n onValidationError && onValidationError(inputError);\n return;\n }\n\n if (!isWithinValidRange(finalDate)) {\n let errors = validStart && validEnd ? [`${getTranslation(locale, 'mustBeBetween', () => 'mustBeBetween')(formatter.format(validStart), formatter.format(validEnd))}`] : [validStart ? getTranslation(locale, 'mustBeHigherThan', () => 'mustBeHigherThan')(formatter.format(validStart)) : '', validEnd ? getTranslation(locale, 'mustBeLowerThan', () => 'mustBeLowerThan')(formatter.format(validEnd)) : ''];\n const inputError = errors.filter(n => n).join(' ');\n setError(errors.filter(n => n).join(' '));\n onValidationError && onValidationError(inputError);\n return;\n }\n\n setError(null);\n onValidationError && onValidationError(null);\n\n if (inputMode === 'end') {\n onChange(finalDate);\n } else {\n onChange(finalDate);\n }\n };\n\n return {\n onChange,\n error,\n formattedValue,\n onChangeText,\n inputFormat\n };\n}\n//# sourceMappingURL=inputUtils.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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\nimport * as React from 'react';\nimport TextInputWithMask from '../TextInputMask';\nimport { HelperText, useTheme } from 'react-native-paper';\nimport { View, StyleSheet } from 'react-native';\nimport useDateInput from './inputUtils';\n\nfunction DatePickerInputWithoutModal(_ref, ref) {\n let {\n label,\n value,\n onChange,\n style,\n locale,\n validRange,\n inputMode,\n withDateFormatInLabel = true,\n hasError,\n hideValidationErrors,\n onValidationError,\n modal,\n inputButtons,\n saveLabel,\n saveLabelDisabled,\n uppercase,\n startYear,\n endYear,\n onChangeText,\n inputEnabled,\n ...rest\n } = _ref;\n const theme = useTheme();\n const {\n formattedValue,\n inputFormat,\n onChangeText: onDateInputChangeText,\n error\n } = useDateInput({\n locale,\n value,\n validRange,\n inputMode,\n onChange,\n onValidationError\n });\n let disabled;\n\n if (inputEnabled !== undefined) {\n disabled = !inputEnabled;\n }\n\n if (rest.disabled) {\n disabled = rest.disabled;\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(View, {\n style: styles.root\n }, /*#__PURE__*/React.createElement(View, {\n style: styles.inputContainer\n }, /*#__PURE__*/React.createElement(TextInputWithMask, _extends({}, rest, {\n ref: ref,\n label: getLabel({\n // TODO: support label components?\n label: label,\n inputFormat,\n withDateFormatInLabel\n }),\n value: formattedValue,\n keyboardType: rest.keyboardType ?? 'number-pad',\n mask: inputFormat,\n disabled: disabled,\n onChangeText: onDateInputChangeText,\n onChange: e => onChangeText && onChangeText(e.nativeEvent.text),\n keyboardAppearance: theme.dark ? 'dark' : 'default',\n error: !!error && !hideValidationErrors || !!hasError,\n style: [styles.input, style]\n })), inputButtons), error && !hideValidationErrors ? /*#__PURE__*/React.createElement(HelperText, {\n type: \"error\",\n visible: !!error\n }, error) : null), modal === null || modal === void 0 ? void 0 : modal({\n value,\n locale,\n inputMode,\n validRange,\n saveLabel,\n saveLabelDisabled,\n uppercase,\n startYear,\n endYear,\n inputEnabled\n }));\n}\n\nfunction getLabel(_ref2) {\n let {\n withDateFormatInLabel,\n inputFormat,\n label\n } = _ref2;\n\n if (withDateFormatInLabel) {\n return label ? `${label} (${inputFormat})` : inputFormat;\n }\n\n return label || '';\n}\n\nconst styles = StyleSheet.create({\n root: {\n flexGrow: 1\n },\n inputContainer: {\n flexGrow: 1,\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'flex-start'\n },\n input: {\n flexGrow: 1\n }\n});\nexport default /*#__PURE__*/React.forwardRef(DatePickerInputWithoutModal);\n//# sourceMappingURL=DatePickerInputWithoutModal.js.map","import * as React from 'react';\nimport { View, StyleSheet, Keyboard } from 'react-native';\nimport DatePickerInputWithoutModal from './DatePickerInputWithoutModal';\n\nfunction CalendarEdit(_ref) {\n let {\n mode,\n state,\n label = '',\n startLabel = 'Start',\n endLabel = 'End',\n collapsed,\n onChange,\n validRange,\n locale,\n inputEnabled\n } = _ref;\n const dateInput = React.useRef(null);\n const startInput = React.useRef(null);\n const endInput = React.useRef(null); // when switching views focus, or un-focus text input\n\n React.useEffect(() => {\n // hide open keyboard\n if (collapsed) {\n Keyboard.dismiss();\n }\n\n const inputsToFocus = [dateInput.current, startInput.current].filter(n => n);\n const inputsToBlur = [dateInput.current, startInput.current, endInput.current].filter(n => n);\n\n if (collapsed) {\n inputsToBlur.forEach(ip => ip.blur());\n } else {\n inputsToFocus.forEach(ip => ip.focus());\n }\n }, [mode, startInput, endInput, dateInput, collapsed]);\n const onSubmitStartInput = React.useCallback(() => {\n if (endInput.current) {\n endInput.current.focus();\n }\n }, [endInput]);\n const onSubmitEndInput = React.useCallback(() => {// TODO: close modal and persist range\n }, []);\n const onSubmitInput = React.useCallback(() => {// TODO: close modal and persist range\n }, []);\n return /*#__PURE__*/React.createElement(View, {\n style: styles.root\n }, mode === 'single' ? /*#__PURE__*/React.createElement(DatePickerInputWithoutModal, {\n inputMode: \"start\",\n ref: dateInput,\n label: label,\n value: state.date,\n onChange: date => onChange({ ...state,\n date\n }),\n onSubmitEditing: onSubmitInput,\n validRange: validRange,\n locale: locale,\n withModal: false,\n autoComplete: 'off',\n inputEnabled: inputEnabled\n }) : null, mode === 'range' ? /*#__PURE__*/React.createElement(View, {\n style: styles.inner\n }, /*#__PURE__*/React.createElement(DatePickerInputWithoutModal, {\n inputMode: \"start\",\n ref: startInput,\n label: startLabel,\n value: state.startDate,\n onChange: startDate => onChange({ ...state,\n startDate\n }),\n returnKeyType: 'next',\n onSubmitEditing: onSubmitStartInput,\n validRange: validRange,\n locale: locale,\n withModal: false,\n autoComplete: 'off',\n inputEnabled: inputEnabled\n }), /*#__PURE__*/React.createElement(View, {\n style: styles.separator\n }), /*#__PURE__*/React.createElement(DatePickerInputWithoutModal, {\n inputMode: \"end\",\n ref: endInput,\n label: endLabel,\n value: state.endDate,\n onChange: endDate => onChange({ ...state,\n endDate\n }),\n onSubmitEditing: onSubmitEndInput,\n validRange: validRange,\n locale: locale,\n withModal: false,\n autoComplete: \"off\",\n inputEnabled: inputEnabled\n })) : null);\n}\n\nconst styles = StyleSheet.create({\n root: {\n padding: 12\n },\n inner: {\n flexDirection: 'row'\n },\n inputContainer: {\n flex: 1\n },\n input: {\n flex: 1\n },\n separator: {\n width: 12\n }\n});\nexport default /*#__PURE__*/React.memo(CalendarEdit);\n//# sourceMappingURL=CalendarEdit.js.map","import { Animated, StyleSheet } from 'react-native';\nimport * as React from 'react';\nimport { useHeaderBackgroundColor } from '../utils';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\nexport default function DatePickerModalHeaderBackground(_ref) {\n let {\n children\n } = _ref;\n const backgroundColor = useHeaderBackgroundColor();\n const insets = useSafeAreaInsets();\n return /*#__PURE__*/React.createElement(Animated.View, {\n style: [styles.animated, {\n backgroundColor,\n paddingLeft: insets.left,\n paddingRight: insets.right\n }]\n }, children);\n}\nconst styles = StyleSheet.create({\n animated: {\n elevation: 4\n }\n});\n//# sourceMappingURL=DatePickerModalHeaderBackground.js.map","import * as React from 'react';\nimport Calendar from './Calendar';\nimport AnimatedCrossView from './AnimatedCrossView';\nimport DatePickerModalHeader from './DatePickerModalHeader';\nimport DatePickerModalContentHeader from './DatePickerModalContentHeader';\nimport CalendarEdit from './CalendarEdit';\nimport DatePickerModalHeaderBackground from './DatePickerModalHeaderBackground';\nexport function DatePickerModalContent(props) {\n const {\n mode,\n onChange,\n onConfirm,\n onDismiss,\n disableSafeTop,\n disableWeekDays,\n locale,\n validRange,\n dateMode,\n startYear,\n endYear\n } = props;\n const anyProps = props; // use local state to add only onConfirm state changes\n\n const [state, setState] = React.useState({\n date: anyProps.date,\n startDate: anyProps.startDate,\n endDate: anyProps.endDate,\n dates: anyProps.dates\n }); // update local state if changed from outside or if modal is opened\n\n React.useEffect(() => {\n setState({\n date: anyProps.date,\n startDate: anyProps.startDate,\n endDate: anyProps.endDate,\n dates: anyProps.dates\n });\n }, [anyProps.date, anyProps.startDate, anyProps.endDate, anyProps.dates]);\n const [collapsed, setCollapsed] = React.useState(true);\n const onInnerChange = React.useCallback(params => {\n onChange && onChange(params);\n setState(prev => ({ ...prev,\n ...params\n }));\n }, [onChange, setState]);\n const onInnerConfirm = React.useCallback(() => {\n if (mode === 'single') {\n ;\n onConfirm({\n date: state.date\n });\n } else if (mode === 'range') {\n ;\n onConfirm({\n startDate: state.startDate,\n endDate: state.endDate\n });\n } else if (mode === 'multiple') {\n ;\n onConfirm({\n dates: state.dates || []\n });\n }\n }, [state, mode, onConfirm]);\n const onToggleCollapse = React.useCallback(() => {\n setCollapsed(prev => !prev);\n }, [setCollapsed]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(DatePickerModalHeaderBackground, null, /*#__PURE__*/React.createElement(DatePickerModalHeader, {\n locale: locale,\n onSave: onInnerConfirm,\n onDismiss: onDismiss,\n saveLabel: props.saveLabel,\n saveLabelDisabled: props.saveLabelDisabled ?? false,\n uppercase: props.uppercase ?? true,\n disableSafeTop: disableSafeTop,\n closeIcon: props.closeIcon\n }), /*#__PURE__*/React.createElement(DatePickerModalContentHeader, {\n state: state,\n mode: mode,\n collapsed: collapsed,\n onToggle: onToggleCollapse,\n headerSeparator: props.headerSeparator,\n emptyLabel: props.emptyLabel,\n label: props.label,\n moreLabel: props.moreLabel,\n startLabel: props.startLabel,\n endLabel: props.endLabel,\n uppercase: props.uppercase ?? true,\n locale: locale,\n editIcon: props === null || props === void 0 ? void 0 : props.editIcon,\n calendarIcon: props.calendarIcon,\n allowEditing: props.allowEditing ?? true\n })), /*#__PURE__*/React.createElement(AnimatedCrossView, {\n collapsed: collapsed,\n calendar: /*#__PURE__*/React.createElement(Calendar, {\n locale: locale,\n mode: mode,\n startDate: state.startDate,\n endDate: state.endDate,\n date: state.date,\n onChange: onInnerChange,\n disableWeekDays: disableWeekDays,\n dates: state.dates,\n validRange: validRange,\n dateMode: dateMode,\n startYear: startYear,\n endYear: endYear\n }),\n calendarEdit: /*#__PURE__*/React.createElement(CalendarEdit, {\n mode: mode,\n state: state,\n label: props.label,\n startLabel: props.startLabel,\n endLabel: props.endLabel,\n collapsed: collapsed,\n onChange: onInnerChange,\n validRange: validRange,\n locale: locale,\n inputEnabled: props.inputEnabled\n })\n }));\n}\nexport default /*#__PURE__*/React.memo(DatePickerModalContent);\n//# sourceMappingURL=DatePickerModalContent.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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\nimport * as React from 'react';\nimport { Modal, StyleSheet, TouchableWithoutFeedback, useWindowDimensions, View, Platform, StatusBar } from 'react-native';\nimport { useTheme } from 'react-native-paper';\nimport DatePickerModalContent from './DatePickerModalContent';\nimport { useHeaderBackgroundColor, useHeaderColorIsLight } from '../utils';\nexport function DatePickerModal(props) {\n const theme = useTheme();\n const dimensions = useWindowDimensions();\n const {\n visible,\n animationType,\n disableStatusBar,\n disableStatusBarPadding,\n inputEnabled,\n ...rest\n } = props;\n const animationTypeCalculated = animationType || Platform.select({\n web: 'none',\n default: 'slide'\n });\n const isLight = useHeaderColorIsLight();\n const headerBackgroundColor = useHeaderBackgroundColor();\n return /*#__PURE__*/React.createElement(View, {\n style: [StyleSheet.absoluteFill],\n pointerEvents: \"box-none\"\n }, /*#__PURE__*/React.createElement(Modal, {\n animationType: animationTypeCalculated,\n transparent: true,\n visible: visible,\n onRequestClose: rest.onDismiss,\n presentationStyle: \"overFullScreen\",\n supportedOrientations: supportedOrientations //@ts-ignore\n ,\n statusBarTranslucent: true\n }, /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(TouchableWithoutFeedback, {\n onPress: rest.onDismiss\n }, /*#__PURE__*/React.createElement(View, {\n style: [StyleSheet.absoluteFill, styles.modalBackground, {\n backgroundColor: theme.colors.backdrop\n }]\n })), /*#__PURE__*/React.createElement(View, {\n style: [StyleSheet.absoluteFill, styles.modalRoot],\n pointerEvents: \"box-none\"\n }, /*#__PURE__*/React.createElement(View, {\n style: [styles.modalContent, {\n backgroundColor: theme.colors.surface\n }, dimensions.width > 650 ? styles.modalContentBig : null]\n }, disableStatusBar ? null : /*#__PURE__*/React.createElement(StatusBar, {\n translucent: true,\n barStyle: isLight ? 'dark-content' : 'light-content'\n }), disableStatusBarPadding ? null : /*#__PURE__*/React.createElement(View, {\n style: [{\n height: StatusBar.currentHeight,\n backgroundColor: headerBackgroundColor\n }]\n }), /*#__PURE__*/React.createElement(DatePickerModalContent, _extends({}, rest, {\n inputEnabled: inputEnabled,\n disableSafeTop: disableStatusBar\n })))))));\n}\nconst supportedOrientations = ['portrait', 'portrait-upside-down', 'landscape', 'landscape-left', 'landscape-right'];\nconst styles = StyleSheet.create({\n modalRoot: {\n justifyContent: 'center',\n alignItems: 'center',\n flex: 1\n },\n modalBackground: {\n flex: 1\n },\n modalContent: {\n flex: 1,\n width: '100%'\n },\n modalContentBig: {\n maxWidth: 600,\n maxHeight: 800,\n borderRadius: 10,\n width: '100%',\n overflow: 'hidden'\n }\n});\nexport default /*#__PURE__*/React.memo(DatePickerModal);\n//# sourceMappingURL=DatePickerModal.js.map","import * as React from 'react';\nimport Color from 'color';\nimport { useTheme } from 'react-native-paper';\nexport const circleSize = 256;\nexport const hourTypes = {\n am: 'am',\n pm: 'pm'\n};\nexport function getHourType(hours) {\n if (hours >= 0 && hours <= 12) {\n return hourTypes.am;\n }\n\n if (hours > 12 && hours <= 24) {\n return hourTypes.pm;\n }\n\n return undefined;\n}\nexport const inputTypes = {\n keyboard: 'keyboard',\n picker: 'picker'\n};\nexport const reverseInputTypes = {\n keyboard: 'picker',\n picker: 'keyboard'\n};\nexport const inputTypeIcons = {\n keyboard: 'keyboard-outline',\n picker: 'clock-outline'\n};\nexport const getTimeInputTypeIcon = (inputType, inputIconMap) => {\n return (inputIconMap === null || inputIconMap === void 0 ? void 0 : inputIconMap[reverseInputTypes[inputType]]) || (inputTypeIcons === null || inputTypeIcons === void 0 ? void 0 : inputTypeIcons[reverseInputTypes[inputType]]);\n};\nexport const clockTypes = {\n minutes: 'minutes',\n hours: 'hours'\n}; // Code inspiration and copied from: https://github.com/ShaneGH/analogue-time-picker/blob/master/src/utils/angle.ts\n\nconst outerHeight = 34;\n\nconst _30 = Math.PI / 6;\n\nconst _12 = Math.PI / 30;\n\nconst _360 = Math.PI * 2;\n\nconst _90 = Math.PI / 2;\n/** Snap an angle to a given step. E.g. if angle = 22° and step = 10°, round down to 20° */\n\n\nexport function snap(angle, step) {\n let a = angle;\n\n while (a < 0) a += _360;\n\n let diff = a % step;\n\n if (diff <= step / 2) {\n return angle - diff;\n }\n\n return angle - diff + step;\n} // detect am / pm based on offset\n\nexport function getHourTypeFromOffset(left, top, size) {\n const w = size / 2;\n const x = w - left;\n const y = size / 2 - top;\n const distance = Math.sqrt(x * x + y * y);\n const maxPm = w - outerHeight;\n return distance > maxPm ? hourTypes.am : hourTypes.pm;\n} // Calculate the minute from the hand angle\n\nexport function getMinutes(handAngle) {\n handAngle = snap(handAngle, _12);\n let minute = parseInt(((handAngle - _90) % _360 / _12).toFixed(), 10);\n\n while (minute < 0) minute += 60;\n\n while (minute >= 60) minute -= 60;\n\n return minute;\n} // Calculate the hour from the hand angle\n\nexport function getHours(handAngle, hourType) {\n handAngle = snap(handAngle, _30);\n let hour = parseInt(((handAngle - _90) % _360 / _30).toFixed(), 10);\n if (hour < 0) hour += 12;\n if (hour >= 12) hour -= 12;\n\n if (hourType === hourTypes.am) {\n if (hour <= 0) {\n hour += 12;\n } else if (hour >= 12) {\n hour -= 12;\n }\n }\n\n if (hourType === hourTypes.pm) {\n if (hour <= 0) {\n hour += 12;\n } else if (hour > 12) {\n hour -= 12;\n }\n }\n\n return hour;\n}\n/** Get the angle of the left/top co-ordinate from the center of the width.height box */\n\nexport function getAngle(left, top, size) {\n const x = size / 2 - left;\n const y = size / 2 - top; // tan O = y / x\n\n let angle = x ? Math.atan(y / x) : y < 0 ? -_90 : _90;\n\n if (x < 0) {\n // reflect along vertical axis\n angle = -angle + 2 * (_90 + angle);\n }\n\n return angle;\n}\nexport function useSwitchColors(highlighted) {\n const theme = useTheme();\n const backgroundColor = React.useMemo(() => {\n if (theme.dark) {\n if (highlighted) {\n return theme.isV3 ? theme.colors.tertiaryContainer : Color(theme.colors.primary).hex();\n }\n\n return theme.colors.backdrop;\n }\n\n if (highlighted) {\n if (theme.isV3) {\n return theme.colors.primaryContainer;\n }\n\n return Color(theme.colors.primary).lighten(1).hex();\n }\n\n return theme.colors.surface;\n }, [highlighted, theme]);\n const color = React.useMemo(() => {\n if (highlighted && !theme.dark) {\n return theme.isV3 ? theme.colors.onSurfaceVariant : theme.colors.primary;\n }\n\n if (highlighted && theme.dark) {\n return theme.isV3 ? theme.colors.onTertiaryContainer : theme.colors.background;\n }\n\n if (theme.isV3) {\n return theme.colors.onSurfaceVariant;\n } else {\n return theme.colors.placeholder;\n }\n }, [highlighted, theme]);\n return {\n backgroundColor,\n color\n };\n}\nexport function useInputColors(highlighted) {\n const theme = useTheme();\n const backgroundColor = React.useMemo(() => {\n if (theme.dark) {\n if (highlighted) {\n return theme.isV3 ? theme.colors.primaryContainer : Color(theme.colors.primary).hex();\n }\n\n return theme.isV3 ? theme.colors.surfaceVariant : Color(theme.colors.surface).lighten(1.4).hex();\n }\n\n if (highlighted) {\n if (theme.isV3) {\n return theme.colors.secondaryContainer;\n }\n\n return Color(theme.colors.primary).lighten(1).hex();\n }\n\n if (theme.isV3) {\n return theme.colors.surfaceVariant;\n }\n\n return Color(theme.colors.surface).darken(0.1).hex();\n }, [highlighted, theme]);\n const color = React.useMemo(() => {\n if (theme.isV3) {\n if (!highlighted) {\n return theme.isV3 ? theme.colors.onSurface : theme.colors.onBackground;\n }\n\n return theme.isV3 ? theme.colors.onPrimaryContainer : theme.colors.onBackground;\n } else {\n if (highlighted && !theme.dark) {\n return theme.colors.primary;\n }\n\n return theme.colors.text;\n }\n }, [highlighted, theme]);\n return {\n backgroundColor,\n color\n };\n}\nexport function toHourInputFormat(hours, is24Hour) {\n if (is24Hour) {\n if (hours === 24) {\n return 0;\n }\n\n return hours;\n }\n\n if (hours > 12) {\n return hours - 12;\n }\n\n if (hours === 0) {\n return hours + 12;\n }\n\n return hours;\n}\nexport function toHourOutputFormat(newHours, previousHours, is24Hour) {\n if (is24Hour) {\n return newHours;\n }\n\n if (previousHours === 0 && newHours !== 0) {\n return newHours - 12 < 0 ? newHours : newHours - 12;\n }\n\n if (previousHours >= 12 && newHours < 12) {\n return newHours + 12;\n }\n\n return newHours;\n}\n//# sourceMappingURL=timeUtils.js.map","import * as React from 'react';\nimport { View, StyleSheet } from 'react-native';\nimport { Text } from 'react-native-paper';\nimport { circleSize } from './timeUtils';\nimport { useTextColorOnPrimary } from '../utils';\n\nfunction AnalogClockHours(_ref) {\n let {\n is24Hour,\n hours\n } = _ref;\n const outerRange = getHourNumbers(false, circleSize, 12, 12);\n const innerRange = getHourNumbers(true, circleSize, 12, 12);\n const color = useTextColorOnPrimary();\n return /*#__PURE__*/React.createElement(React.Fragment, null, outerRange.map((a, i) => /*#__PURE__*/React.createElement(View, {\n key: i,\n pointerEvents: \"none\",\n style: [styles.outerHourRoot, {\n top: a[1] || 0,\n left: a[0] || 0\n }]\n }, /*#__PURE__*/React.createElement(View, {\n style: styles.outerHourInner\n }, /*#__PURE__*/React.createElement(Text, {\n style: !is24Hour && i + 1 === hours || hours === i + 1 && hours !== 12 || i + 1 === 12 && hours === 0 ? {\n color\n } : null,\n variant: \"bodyLarge\",\n selectable: false\n }, is24Hour && i + 1 === 12 ? '00' : i + 1)))), is24Hour ? innerRange.map((a, i) => /*#__PURE__*/React.createElement(View, {\n key: i,\n pointerEvents: \"none\",\n style: [styles.innerHourRoot, {\n top: a[1] || 0,\n left: a[0] || 0\n }]\n }, /*#__PURE__*/React.createElement(View, {\n style: styles.innerHourInner\n }, /*#__PURE__*/React.createElement(Text, {\n selectable: false,\n style: [i + 13 === hours || i + 13 === 24 && hours === 12 ? {\n color\n } : null],\n variant: \"bodyLarge\"\n }, i + 13 === 24 ? '12' : i + 13)))) : null);\n}\n\nconst styles = StyleSheet.create({\n outerHourRoot: {\n position: 'absolute',\n justifyContent: 'center',\n alignItems: 'center',\n zIndex: 20,\n width: 48,\n height: 48,\n marginLeft: -24,\n marginTop: -24,\n borderRadius: 24\n },\n outerHourInner: {\n borderRadius: 24\n },\n innerHourRoot: {\n position: 'absolute',\n zIndex: 20,\n justifyContent: 'center',\n alignItems: 'center',\n width: 48,\n height: 48,\n marginLeft: -24,\n marginTop: -24,\n borderRadius: 24\n },\n innerHourInner: {\n borderRadius: 24\n }\n});\n\nfunction getHourNumbers(is24Hour, size, count, arrayLength) {\n let angle = 0;\n let step = 2 * Math.PI / count;\n let radius = size / (is24Hour ? 4 : 2.5);\n angle = -90 * Math.PI / 180 + Math.PI / 6;\n return Array(arrayLength).fill(true).map(() => {\n let x = Math.round(size / 2 + radius * Math.cos(angle));\n let y = Math.round(size / 2 + radius * Math.sin(angle));\n angle += step;\n return [x, y];\n });\n}\n\nexport default /*#__PURE__*/React.memo(AnalogClockHours);\n//# sourceMappingURL=AnalogClockHours.js.map","import * as React from 'react';\nimport { Animated, StyleSheet, View } from 'react-native';\nimport { clockTypes } from './timeUtils';\nexport default function AnimatedClockSwitcher(_ref) {\n let {\n focused,\n hours,\n minutes\n } = _ref;\n const collapsed = focused === clockTypes.hours;\n const animatedCollapsed = React.useRef(new Animated.Value(collapsed ? 1 : 0));\n React.useEffect(() => {\n Animated.timing(animatedCollapsed.current, {\n toValue: collapsed ? 1 : 0,\n duration: 250,\n useNativeDriver: true\n }).start();\n }, [collapsed]);\n return /*#__PURE__*/React.createElement(View, {\n style: StyleSheet.absoluteFill\n }, /*#__PURE__*/React.createElement(Animated.View, {\n pointerEvents: collapsed ? 'auto' : 'none',\n style: [StyleSheet.absoluteFill, {\n opacity: animatedCollapsed.current,\n transform: [{\n scale: animatedCollapsed.current.interpolate({\n inputRange: [0, 1],\n outputRange: [0.95, 1]\n })\n }]\n }]\n }, hours), /*#__PURE__*/React.createElement(Animated.View, {\n pointerEvents: collapsed ? 'none' : 'auto',\n style: [StyleSheet.absoluteFill, {\n opacity: animatedCollapsed.current.interpolate({\n inputRange: [0, 1],\n outputRange: [1, 0]\n }),\n transform: [{\n scale: animatedCollapsed.current.interpolate({\n inputRange: [0, 1],\n outputRange: [1, 0.95]\n })\n }]\n }]\n }, minutes));\n}\n//# sourceMappingURL=AnimatedClockSwitcher.js.map","import * as React from 'react';\nimport { View, StyleSheet } from 'react-native';\nimport { Text } from 'react-native-paper';\nimport { circleSize } from './timeUtils';\nimport { useTextColorOnPrimary } from '../utils';\n\nfunction AnalogClockMinutes(_ref) {\n let {\n minutes\n } = _ref;\n const range = getMinuteNumbers(circleSize, 12);\n const color = useTextColorOnPrimary();\n return /*#__PURE__*/React.createElement(React.Fragment, null, range.map((a, i) => {\n const currentMinutes = i * 5;\n const isZero = currentMinutes === 0;\n let isCurrent = currentMinutes - 1 <= minutes && currentMinutes + 1 >= minutes;\n\n if (isZero) {\n isCurrent = minutes >= 59 || currentMinutes + 1 >= minutes;\n }\n\n return /*#__PURE__*/React.createElement(View, {\n key: i,\n pointerEvents: \"none\",\n style: [styles.outerHourRoot, {\n top: a[1] || 0,\n left: a[0] || 0\n }]\n }, /*#__PURE__*/React.createElement(View, {\n style: styles.outerHourInner\n }, /*#__PURE__*/React.createElement(Text, {\n style: isCurrent ? {\n color\n } : undefined,\n selectable: false,\n variant: \"bodyLarge\"\n }, isZero ? '00' : currentMinutes)));\n }));\n}\n\nconst styles = StyleSheet.create({\n outerHourRoot: {\n position: 'absolute',\n justifyContent: 'center',\n alignItems: 'center',\n zIndex: 20,\n width: 48,\n height: 48,\n marginLeft: -24,\n marginTop: -24,\n borderRadius: 24\n },\n outerHourInner: {\n borderRadius: 24\n },\n innerHourRoot: {\n position: 'absolute',\n zIndex: 20,\n justifyContent: 'center',\n alignItems: 'center',\n width: 40,\n height: 40,\n marginLeft: -20,\n marginTop: -20,\n borderRadius: 20\n },\n innerHourInner: {\n borderRadius: 20\n },\n innerHourText: {\n fontSize: 13\n },\n textWhite: {\n color: '#fff'\n }\n});\n\nfunction getMinuteNumbers(size, count) {\n let angle = 0;\n let step = 2 * Math.PI / count;\n let radius = size / 2.5;\n angle = angle = -90 * Math.PI / 180;\n return Array(12).fill(true).map(() => {\n let x = Math.round(size / 2 + radius * Math.cos(angle));\n let y = Math.round(size / 2 + radius * Math.sin(angle));\n angle += step;\n return [x, y];\n });\n}\n\nexport default /*#__PURE__*/React.memo(AnalogClockMinutes);\n//# sourceMappingURL=AnalogClockMinutes.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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\nimport Color from 'color';\nimport { PanResponder, StyleSheet, View } from 'react-native';\nimport { useTheme } from 'react-native-paper';\nimport { circleSize, clockTypes, getAngle, getHours, getHourType, getHourTypeFromOffset, getMinutes, hourTypes } from './timeUtils';\nimport * as React from 'react';\nimport { useLatest } from '../utils';\nimport AnalogClockHours from './AnalogClockHours';\nimport AnimatedClockSwitcher from './AnimatedClockSwitcher';\nimport AnalogClockMinutes from './AnalogClockMinutes';\nimport { DisplayModeContext } from './TimePicker';\n\nfunction AnalogClock(_ref) {\n let {\n hours,\n minutes,\n focused,\n is24Hour,\n onChange\n } = _ref;\n const theme = useTheme();\n const {\n mode\n } = React.useContext(DisplayModeContext); // used to make pointer shorter if hours are selected and above 12\n\n const shortPointer = hours >= 12 && is24Hour;\n const clockRef = React.useRef(null); // Hooks are nice, sometimes... :-)..\n // We need the latest values, since the onPointerMove uses a closure to the function\n\n const hoursRef = useLatest(hours);\n const onChangeRef = useLatest(onChange);\n const minutesRef = useLatest(minutes);\n const focusedRef = useLatest(focused);\n const is24HourRef = useLatest(is24Hour);\n const modeRef = useLatest(mode);\n const onPointerMove = React.useCallback((e, final) => {\n let x = e.nativeEvent.locationX;\n let y = e.nativeEvent.locationY;\n let angle = getAngle(x, y, circleSize);\n\n if (focusedRef.current === clockTypes.hours) {\n let hours24 = is24HourRef.current;\n let previousHourType = getHourType(hoursRef.current);\n let pickedHours = getHours(angle, previousHourType);\n let hours12AndPm = !hours24 && modeRef.current === 'PM';\n let hourTypeFromOffset = getHourTypeFromOffset(x, y, circleSize);\n let hours24AndPM = hours24 && hourTypeFromOffset === hourTypes.pm; // Avoiding the \"24h\"\n // Should be 12h for 12 hours and PM mode\n\n if (hours12AndPm || hours24AndPM) {\n pickedHours += 12;\n }\n\n if ((modeRef.current === 'AM' || hours24) && pickedHours === 12) {\n pickedHours = 0;\n }\n\n if (!hours24 && modeRef.current === 'AM' && pickedHours === 12) {\n pickedHours = 0;\n }\n\n if (pickedHours === 24) {\n pickedHours = 12;\n }\n\n if (hoursRef.current !== pickedHours || final) {\n onChangeRef.current({\n hours: pickedHours,\n minutes: minutesRef.current,\n focused: final ? clockTypes.minutes : undefined\n });\n }\n } else if (focusedRef.current === clockTypes.minutes) {\n let pickedMinutes = getMinutes(angle);\n\n if (minutesRef.current !== pickedMinutes) {\n onChangeRef.current({\n hours: hoursRef.current,\n minutes: pickedMinutes\n });\n }\n }\n }, [focusedRef, is24HourRef, hoursRef, onChangeRef, minutesRef, modeRef]);\n const panResponder = React.useRef(PanResponder.create({\n onPanResponderGrant: e => onPointerMove(e, false),\n onPanResponderMove: e => onPointerMove(e, false),\n onPanResponderRelease: e => onPointerMove(e, true),\n onStartShouldSetPanResponder: returnTrue,\n onStartShouldSetPanResponderCapture: () => false,\n onMoveShouldSetPanResponder: returnTrue,\n onMoveShouldSetPanResponderCapture: returnTrue,\n onPanResponderTerminationRequest: returnTrue,\n onShouldBlockNativeResponder: returnTrue\n })).current;\n const dynamicSize = focused === clockTypes.hours && shortPointer ? 33 : 0;\n const pointerNumber = focused === clockTypes.hours ? hours : minutes;\n const degreesPerNumber = focused === clockTypes.hours ? 30 : 6;\n return /*#__PURE__*/React.createElement(View, _extends({\n ref: clockRef\n }, panResponder.panHandlers, {\n style: [styles.clock, {\n backgroundColor: theme.isV3 ? theme.colors.surfaceVariant : theme.dark ? Color(theme.colors.surface).lighten(1.4).hex() : Color(theme.colors.surface).darken(0.1).hex()\n }] // @ts-ignore -> https://github.com/necolas/react-native-web/issues/506\n ,\n cursor: 'pointer'\n }), /*#__PURE__*/React.createElement(View, {\n style: [styles.line, {\n backgroundColor: theme.colors.primary,\n transform: [{\n rotate: -90 + pointerNumber * degreesPerNumber + 'deg'\n }, {\n translateX: circleSize / 4 - (focused === clockTypes.hours && pointerNumber >= 0 && pointerNumber < 13 ? 0 : 4) + (focused === clockTypes.minutes ? 4 : 0) - dynamicSize / 2\n }],\n width: circleSize / 2 - 4 - dynamicSize\n }],\n pointerEvents: \"none\"\n }, /*#__PURE__*/React.createElement(View, {\n style: [styles.endPoint, {\n backgroundColor: theme.colors.primary\n }]\n })), /*#__PURE__*/React.createElement(View, {\n style: [StyleSheet.absoluteFill, styles.center],\n pointerEvents: \"none\"\n }, /*#__PURE__*/React.createElement(View, {\n style: [styles.middlePoint, {\n backgroundColor: theme.colors.primary\n }]\n })), /*#__PURE__*/React.createElement(AnimatedClockSwitcher, {\n focused: focused,\n hours: /*#__PURE__*/React.createElement(AnalogClockHours, {\n is24Hour: is24Hour,\n hours: hours\n }),\n minutes: /*#__PURE__*/React.createElement(AnalogClockMinutes, {\n minutes: minutes\n })\n }));\n}\n\nconst styles = StyleSheet.create({\n clock: {\n height: circleSize,\n width: circleSize,\n position: 'relative',\n justifyContent: 'center',\n alignItems: 'center',\n borderRadius: circleSize / 2\n },\n middlePoint: {\n borderRadius: 4,\n height: 8,\n width: 8\n },\n center: {\n justifyContent: 'center',\n alignItems: 'center'\n },\n endPoint: {\n borderRadius: 24,\n height: 48,\n width: 48,\n position: 'absolute',\n right: 0,\n bottom: -23\n },\n line: {\n position: 'absolute',\n height: 2,\n borderRadius: 4\n }\n});\n\nfunction returnTrue() {\n return true;\n}\n\nexport default /*#__PURE__*/React.memo(AnalogClock);\n//# sourceMappingURL=AnalogClock.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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\nimport * as React from 'react';\nimport { View, TextInput, StyleSheet, Platform } from 'react-native';\nimport { useTheme, TouchableRipple } from 'react-native-paper';\nimport Color from 'color';\nimport { inputTypes, useInputColors } from './timeUtils';\n\nfunction TimeInput(_ref, ref) {\n let {\n value,\n clockType,\n pressed,\n onPress,\n onChanged,\n inputType,\n inputFontSize = 57,\n ...rest\n } = _ref;\n const [controlledValue, setControlledValue] = React.useState(`${value}`);\n\n const onInnerChange = text => {\n setControlledValue(text);\n\n if (text !== '' && text !== '0') {\n onChanged(Number(text));\n }\n };\n\n React.useEffect(() => {\n setControlledValue(`${value}`);\n }, [value]);\n const theme = useTheme();\n const [inputFocused, setInputFocused] = React.useState(false);\n const highlighted = inputType === inputTypes.picker ? pressed : inputFocused;\n const {\n color,\n backgroundColor\n } = useInputColors(highlighted);\n let formattedValue = controlledValue;\n\n if (!inputFocused) {\n formattedValue = controlledValue.length === 1 ? `0${controlledValue}` : `${controlledValue}`;\n }\n\n return /*#__PURE__*/React.createElement(View, {\n style: styles.root\n }, /*#__PURE__*/React.createElement(TextInput, _extends({\n ref: ref,\n style: [styles.input, // eslint-disable-next-line react-native/no-inline-styles\n {\n color,\n fontSize: inputFontSize,\n backgroundColor,\n borderRadius: theme.roundness * 2,\n borderColor: theme.isV3 && highlighted ? theme.colors.onPrimaryContainer : undefined,\n borderWidth: theme.isV3 && highlighted ? 2 : 0,\n height: inputType === inputTypes.keyboard ? 72 : 80\n }],\n value: formattedValue,\n maxLength: 2,\n onFocus: () => setInputFocused(true),\n onBlur: () => setInputFocused(false),\n keyboardAppearance: theme.dark ? 'dark' : 'default',\n keyboardType: \"number-pad\",\n onChangeText: onInnerChange\n }, rest)), onPress && inputType === inputTypes.picker ? /*#__PURE__*/React.createElement(TouchableRipple, {\n style: [StyleSheet.absoluteFill, styles.buttonOverlay, {\n borderRadius: theme.roundness\n }],\n rippleColor: Platform.OS !== 'ios' ? Color(theme.colors.onSurface).fade(0.7).hex() : undefined,\n onPress: () => onPress(clockType),\n borderless: true\n }, /*#__PURE__*/React.createElement(View, null)) : null);\n}\n\nconst styles = StyleSheet.create({\n root: {\n position: 'relative',\n height: 80,\n width: 96\n },\n input: {\n textAlign: 'center',\n textAlignVertical: 'center',\n width: 96\n },\n buttonOverlay: {\n overflow: 'hidden'\n }\n});\nexport default /*#__PURE__*/React.forwardRef(TimeInput);\n//# sourceMappingURL=TimeInput.js.map","import * as React from 'react';\nimport { View, StyleSheet } from 'react-native';\nimport { Text, TouchableRipple, useTheme } from 'react-native-paper';\nimport { useMemo } from 'react';\nimport Color from 'color';\nimport { inputTypes, useSwitchColors } from './timeUtils';\nimport { DisplayModeContext } from './TimePicker';\nexport default function AmPmSwitcher(_ref) {\n let {\n onChange,\n hours,\n inputType\n } = _ref;\n const {\n setMode,\n mode\n } = React.useContext(DisplayModeContext);\n const theme = useTheme();\n const backgroundColor = useMemo(() => {\n if (theme.isV3) {\n return theme.colors.outline;\n }\n\n return Color(theme.dark ? Color(theme.colors.surface).lighten(1.2).hex() : theme.colors.surface).darken(0.1).hex();\n }, [theme]);\n const isAM = mode === 'AM';\n return /*#__PURE__*/React.createElement(View, {\n style: [styles.root, // eslint-disable-next-line react-native/no-inline-styles\n {\n borderColor: backgroundColor,\n borderRadius: theme.roundness * 2,\n height: inputType === inputTypes.keyboard ? 72 : 80,\n marginBottom: inputType === 'keyboard' ? 24 : 0\n }]\n }, /*#__PURE__*/React.createElement(SwitchButton, {\n label: \"AM\",\n onPress: () => {\n setMode('AM');\n\n if (hours - 12 >= 0) {\n onChange(hours - 12);\n }\n },\n selected: isAM,\n disabled: isAM\n }), /*#__PURE__*/React.createElement(View, {\n style: [styles.switchSeparator, {\n backgroundColor\n }]\n }), /*#__PURE__*/React.createElement(SwitchButton, {\n label: \"PM\",\n onPress: () => {\n setMode('PM');\n\n if (hours + 12 <= 24) {\n onChange(hours + 12);\n }\n },\n selected: !isAM,\n disabled: !isAM\n }));\n}\n\nfunction SwitchButton(_ref2) {\n let {\n label,\n onPress,\n selected,\n disabled\n } = _ref2;\n const theme = useTheme();\n const {\n backgroundColor,\n color\n } = useSwitchColors(selected);\n let textFont = theme !== null && theme !== void 0 && theme.isV3 ? theme.fonts.titleMedium : theme.fonts.medium;\n return /*#__PURE__*/React.createElement(TouchableRipple, {\n onPress: onPress,\n style: styles.switchButton,\n accessibilityLabel: label // @ts-ignore old React Native versions\n ,\n accessibilityTraits: disabled ? ['button', 'disabled'] : 'button' // @ts-ignore old React Native versions\n ,\n accessibilityComponentType: \"button\",\n accessibilityRole: \"button\",\n accessibilityState: {\n disabled\n },\n disabled: disabled\n }, /*#__PURE__*/React.createElement(View, {\n style: [styles.switchButtonInner, {\n backgroundColor\n }]\n }, /*#__PURE__*/React.createElement(Text, {\n selectable: false,\n style: [{ ...textFont,\n color: color\n }]\n }, label)));\n}\n\nconst styles = StyleSheet.create({\n root: {\n width: 52,\n borderWidth: 1,\n overflow: 'hidden'\n },\n switchSeparator: {\n height: 1,\n width: 52\n },\n switchButton: {\n flex: 1\n },\n switchButtonInner: {\n flex: 1,\n alignItems: 'center',\n justifyContent: 'center'\n }\n});\n//# sourceMappingURL=AmPmSwitcher.js.map","import * as React from 'react';\nimport { View, StyleSheet, useWindowDimensions } from 'react-native';\nimport { Text, useTheme } from 'react-native-paper';\nimport { clockTypes, toHourInputFormat, toHourOutputFormat } from './timeUtils';\nimport TimeInput from './TimeInput';\nimport AmPmSwitcher from './AmPmSwitcher';\nimport { useLatest } from '../utils';\nimport Color from 'color';\n\nfunction TimeInputs(_ref) {\n let {\n hours,\n minutes,\n onFocusInput,\n focused,\n inputType,\n onChange,\n is24Hour,\n inputFontSize\n } = _ref;\n const startInput = React.useRef(null);\n const endInput = React.useRef(null);\n const dimensions = useWindowDimensions();\n const isLandscape = dimensions.width > dimensions.height;\n const theme = useTheme();\n const onSubmitStartInput = React.useCallback(() => {\n if (endInput.current) {\n endInput.current.focus();\n }\n }, [endInput]);\n const onSubmitEndInput = React.useCallback(() => {// TODO: close modal and persist time\n }, []);\n const minutesRef = useLatest(minutes);\n const onChangeHours = React.useCallback(newHours => {\n onChange({\n hours: newHours,\n minutes: minutesRef.current,\n focused: clockTypes.hours\n });\n }, [onChange, minutesRef]);\n return /*#__PURE__*/React.createElement(View, {\n style: [styles.inputContainer, isLandscape && styles.inputContainerLandscape]\n }, /*#__PURE__*/React.createElement(View, {\n style: styles.column\n }, /*#__PURE__*/React.createElement(TimeInput, {\n ref: startInput,\n inputFontSize: inputFontSize,\n placeholder: '00',\n value: toHourInputFormat(hours, is24Hour),\n clockType: clockTypes.hours,\n pressed: focused === clockTypes.hours,\n onPress: onFocusInput,\n inputType: inputType,\n selectionColor: theme.dark ? Color(theme.colors.primary).darken(0.2).hex() : theme.colors.primary,\n returnKeyType: 'next',\n onSubmitEditing: onSubmitStartInput,\n blurOnSubmit: false,\n onChanged: newHoursFromInput => {\n let newHours = toHourOutputFormat(newHoursFromInput, hours, is24Hour);\n\n if (newHoursFromInput > 24) {\n newHours = 24;\n }\n\n onChange({\n hours: newHours,\n minutes\n });\n }\n }), inputType === 'keyboard' ? /*#__PURE__*/React.createElement(Text, {\n variant: \"bodySmall\"\n }, \"Hour\") : null), /*#__PURE__*/React.createElement(View, {\n style: [styles.hoursAndMinutesSeparator, // eslint-disable-next-line react-native/no-inline-styles\n {\n marginBottom: inputType === 'keyboard' ? 24 : 0\n }]\n }, /*#__PURE__*/React.createElement(View, {\n style: styles.spaceDot\n }), /*#__PURE__*/React.createElement(View, {\n style: [styles.dot, {\n backgroundColor: theme !== null && theme !== void 0 && theme.isV3 ? theme.colors.onSurface : theme.colors.text\n }]\n }), /*#__PURE__*/React.createElement(View, {\n style: styles.betweenDot\n }), /*#__PURE__*/React.createElement(View, {\n style: [styles.dot, {\n backgroundColor: theme !== null && theme !== void 0 && theme.isV3 ? theme.colors.onSurface : theme.colors.text\n }]\n }), /*#__PURE__*/React.createElement(View, {\n style: styles.spaceDot\n })), /*#__PURE__*/React.createElement(View, {\n style: styles.column\n }, /*#__PURE__*/React.createElement(TimeInput, {\n ref: endInput,\n inputFontSize: inputFontSize,\n placeholder: '00',\n value: minutes,\n clockType: clockTypes.minutes,\n pressed: focused === clockTypes.minutes,\n onPress: onFocusInput,\n inputType: inputType,\n selectionColor: theme.dark ? Color(theme.colors.primary).darken(0.2).hex() : theme.colors.primary,\n onSubmitEditing: onSubmitEndInput,\n onChanged: newMinutesFromInput => {\n let newMinutes = newMinutesFromInput;\n\n if (newMinutesFromInput > 59) {\n newMinutes = 59;\n }\n\n onChange({\n hours,\n minutes: newMinutes\n });\n }\n }), inputType === 'keyboard' ? /*#__PURE__*/React.createElement(Text, {\n variant: \"bodySmall\"\n }, \"Minute\") : null), !is24Hour && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(View, {\n style: styles.spaceBetweenInputsAndSwitcher\n }), /*#__PURE__*/React.createElement(AmPmSwitcher, {\n hours: hours,\n onChange: onChangeHours,\n inputType: inputType\n })));\n}\n\nconst styles = StyleSheet.create({\n column: {\n flexDirection: 'column'\n },\n spaceBetweenInputsAndSwitcher: {\n width: 12\n },\n inputContainer: {\n flexDirection: 'row',\n alignItems: 'center'\n },\n inputContainerLandscape: {\n flex: 1\n },\n hoursAndMinutesSeparator: {\n fontSize: 65,\n width: 24,\n alignItems: 'center'\n },\n spaceDot: {\n flex: 1\n },\n dot: {\n width: 7,\n height: 7,\n borderRadius: 7 / 2\n },\n betweenDot: {\n height: 12\n }\n});\nexport default /*#__PURE__*/React.memo(TimeInputs);\n//# sourceMappingURL=TimeInputs.js.map","import * as React from 'react';\nimport { View, StyleSheet, useWindowDimensions } from 'react-native';\nimport { inputTypes, toHourInputFormat, toHourOutputFormat } from './timeUtils';\nimport AnalogClock from './AnalogClock';\nimport { circleSize } from './timeUtils';\nimport TimeInputs from './TimeInputs';\nexport const DisplayModeContext = /*#__PURE__*/React.createContext({\n mode: 'AM',\n setMode: () => {}\n});\n\nfunction TimePicker(_ref) {\n let {\n hours,\n minutes,\n onFocusInput,\n focused,\n inputType,\n onChange,\n locale,\n use24HourClock,\n inputFontSize\n } = _ref;\n const [displayMode, setDisplayMode] = React.useState(undefined);\n const dimensions = useWindowDimensions();\n const isLandscape = dimensions.width > dimensions.height; // method to check whether we have 24 hours in clock or 12\n\n const is24Hour = React.useMemo(() => {\n if (use24HourClock !== undefined) {\n return use24HourClock;\n }\n\n const formatter = new Intl.DateTimeFormat(locale, {\n hour: '2-digit',\n minute: '2-digit',\n timeZone: 'UTC'\n });\n const formatted = formatter.format(new Date(Date.UTC(2020, 1, 1, 23)));\n return formatted.includes('23');\n }, [locale, use24HourClock]); // Initialize display Mode according the hours value\n\n React.useEffect(() => {\n if (hours >= 12) {\n setDisplayMode('PM');\n } else {\n setDisplayMode('AM');\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, []);\n const onInnerChange = React.useCallback(params => {\n params.hours = toHourOutputFormat(params.hours, hours, is24Hour);\n onChange(params);\n }, [onChange, hours, is24Hour]);\n return /*#__PURE__*/React.createElement(DisplayModeContext.Provider, {\n value: {\n mode: displayMode,\n setMode: setDisplayMode\n }\n }, /*#__PURE__*/React.createElement(View, {\n style: isLandscape ? [styles.rootLandscape, {\n width: 24 * 3 + 96 * 2 + 52 + (inputType === inputTypes.picker ? circleSize : -circleSize)\n }] : styles.rootPortrait\n }, /*#__PURE__*/React.createElement(TimeInputs, {\n inputType: inputType,\n inputFontSize: inputFontSize,\n hours: hours,\n minutes: minutes,\n is24Hour: is24Hour,\n onChange: onChange,\n onFocusInput: onFocusInput,\n focused: focused\n }), inputType === inputTypes.picker ? /*#__PURE__*/React.createElement(View, {\n style: styles.clockContainer\n }, /*#__PURE__*/React.createElement(AnalogClock, {\n hours: toHourInputFormat(hours, is24Hour),\n minutes: minutes,\n focused: focused,\n is24Hour: is24Hour,\n onChange: onInnerChange\n })) : null));\n}\n\nconst styles = StyleSheet.create({\n rootLandscape: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center'\n },\n rootPortrait: {\n alignItems: 'center',\n justifyContent: 'center'\n },\n clockContainer: {\n paddingTop: 36,\n paddingLeft: 12,\n paddingRight: 12\n }\n});\nexport default /*#__PURE__*/React.memo(TimePicker);\n//# sourceMappingURL=TimePicker.js.map","import * as React from 'react';\nimport { Modal, StyleSheet, View, Text, Animated, TouchableWithoutFeedback, KeyboardAvoidingView } from 'react-native';\nimport { Button, IconButton, overlay, useTheme } from 'react-native-paper';\nimport TimePicker from './TimePicker';\nimport { clockTypes, getTimeInputTypeIcon, inputTypes, reverseInputTypes } from './timeUtils';\nconst supportedOrientations = ['portrait', 'portrait-upside-down', 'landscape', 'landscape-left', 'landscape-right'];\nexport function TimePickerModal(_ref) {\n var _theme$colors;\n\n let {\n visible,\n onDismiss,\n onConfirm,\n hours,\n minutes,\n label = 'Select time',\n uppercase = true,\n cancelLabel = 'Cancel',\n confirmLabel = 'Ok',\n animationType = 'none',\n locale,\n keyboardIcon = 'keyboard-outline',\n clockIcon = 'clock-outline',\n use24HourClock,\n inputFontSize\n } = _ref;\n const theme = useTheme();\n let textFont;\n let labelText = label;\n\n if (theme.isV3) {\n textFont = theme.fonts.labelMedium;\n } else {\n textFont = theme === null || theme === void 0 ? void 0 : theme.fonts.medium;\n }\n\n const [inputType, setInputType] = React.useState(inputTypes.picker);\n const [focused, setFocused] = React.useState(clockTypes.hours);\n const [localHours, setLocalHours] = React.useState(getHours(hours));\n const [localMinutes, setLocalMinutes] = React.useState(getMinutes(minutes));\n\n if (inputType === inputTypes.keyboard && !label) {\n labelText = 'Enter time';\n }\n\n React.useEffect(() => {\n setLocalHours(getHours(hours));\n }, [setLocalHours, hours]);\n React.useEffect(() => {\n setLocalMinutes(getMinutes(minutes));\n }, [setLocalMinutes, minutes]);\n const onFocusInput = React.useCallback(type => setFocused(type), []);\n const onChange = React.useCallback(params => {\n if (params.focused) {\n setFocused(params.focused);\n }\n\n setLocalHours(params.hours);\n setLocalMinutes(params.minutes);\n }, [setFocused, setLocalHours, setLocalMinutes]);\n return /*#__PURE__*/React.createElement(Modal, {\n animationType: animationType,\n transparent: true,\n visible: visible,\n onRequestClose: onDismiss,\n presentationStyle: \"overFullScreen\",\n supportedOrientations: supportedOrientations,\n statusBarTranslucent: true\n }, /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(TouchableWithoutFeedback, {\n onPress: onDismiss\n }, /*#__PURE__*/React.createElement(View, {\n style: [StyleSheet.absoluteFill, styles.modalBackground, {\n backgroundColor: (_theme$colors = theme.colors) === null || _theme$colors === void 0 ? void 0 : _theme$colors.backdrop\n }]\n })), /*#__PURE__*/React.createElement(View, {\n style: [StyleSheet.absoluteFill, styles.modalRoot],\n pointerEvents: \"box-none\"\n }, /*#__PURE__*/React.createElement(KeyboardAvoidingView, {\n style: styles.keyboardView,\n behavior: 'padding'\n }, /*#__PURE__*/React.createElement(Animated.View, {\n style: [styles.modalContent, {\n backgroundColor: theme.dark && theme.isV3 ? theme.colors.elevation.level3 : theme.isV3 ? theme.colors.surface : theme.dark ? overlay(10, theme.colors.surface) : theme.colors.surface,\n borderRadius: theme.isV3 ? theme.roundness * 6 : theme.roundness\n }]\n }, /*#__PURE__*/React.createElement(View, {\n style: styles.labelContainer\n }, /*#__PURE__*/React.createElement(Text, {\n style: [styles.label, { ...textFont,\n color: theme !== null && theme !== void 0 && theme.isV3 ? theme.colors.onSurfaceVariant : theme.colors.text\n }]\n }, uppercase ? labelText.toUpperCase() : labelText)), /*#__PURE__*/React.createElement(View, {\n style: styles.timePickerContainer\n }, /*#__PURE__*/React.createElement(TimePicker, {\n locale: locale,\n inputType: inputType,\n use24HourClock: use24HourClock,\n inputFontSize: inputFontSize,\n focused: focused,\n hours: localHours,\n minutes: localMinutes,\n onChange: onChange,\n onFocusInput: onFocusInput\n })), /*#__PURE__*/React.createElement(View, {\n style: styles.bottom\n }, /*#__PURE__*/React.createElement(IconButton, {\n icon: getTimeInputTypeIcon(inputType, {\n keyboard: keyboardIcon,\n picker: clockIcon\n }),\n onPress: () => setInputType(reverseInputTypes[inputType]),\n size: 24,\n style: styles.inputTypeToggle,\n accessibilityLabel: \"toggle keyboard\"\n }), /*#__PURE__*/React.createElement(View, {\n style: styles.fill\n }), /*#__PURE__*/React.createElement(Button, {\n onPress: onDismiss,\n uppercase: uppercase\n }, cancelLabel), /*#__PURE__*/React.createElement(Button, {\n onPress: () => onConfirm({\n hours: localHours,\n minutes: localMinutes\n }),\n uppercase: uppercase\n }, confirmLabel)))))));\n}\n\nfunction getMinutes(minutes) {\n return minutes === undefined || minutes === null ? new Date().getMinutes() : minutes;\n}\n\nfunction getHours(hours) {\n return hours === undefined || hours === null ? new Date().getHours() : hours;\n}\n\nconst styles = StyleSheet.create({\n modalRoot: {\n justifyContent: 'center',\n alignItems: 'center',\n flex: 1\n },\n keyboardView: {\n justifyContent: 'center',\n alignItems: 'center',\n flex: 1\n },\n modalBackground: {\n flex: 1\n },\n modalContent: {\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 5\n },\n shadowOpacity: 0.34,\n shadowRadius: 6.27,\n elevation: 3,\n minWidth: 287,\n paddingVertical: 8\n },\n labelContainer: {\n justifyContent: 'flex-end',\n paddingLeft: 24,\n paddingRight: 24,\n paddingTop: 16\n },\n label: {\n letterSpacing: 1,\n fontSize: 13\n },\n timePickerContainer: {\n paddingLeft: 24,\n paddingTop: 20,\n paddingBottom: 16,\n paddingRight: 24\n },\n bottom: {\n flexDirection: 'row',\n alignItems: 'center',\n padding: 8\n },\n inputTypeToggle: {\n margin: 4\n },\n fill: {\n flex: 1\n }\n});\nexport default /*#__PURE__*/React.memo(TimePickerModal);\n//# sourceMappingURL=TimePickerModal.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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\nimport * as React from 'react';\nimport { IconButton } from 'react-native-paper';\nimport { StyleSheet } from 'react-native';\nimport DatePickerModal from './DatePickerModal';\nimport { useLatest } from '../utils';\nimport DatePickerInputWithoutModal from './DatePickerInputWithoutModal';\n\nfunction DatePickerInput(_ref, ref) {\n let {\n withModal = true,\n calendarIcon = 'calendar',\n ...rest\n } = _ref;\n const [visible, setVisible] = React.useState(false);\n const onDismiss = React.useCallback(() => {\n setVisible(false);\n }, [setVisible]);\n const onChangeRef = useLatest(rest.onChange);\n const onInnerConfirm = React.useCallback(_ref2 => {\n let {\n date\n } = _ref2;\n setVisible(false);\n onChangeRef.current(date);\n }, [setVisible, onChangeRef]);\n return /*#__PURE__*/React.createElement(DatePickerInputWithoutModal, _extends({\n ref: ref\n }, rest, {\n inputButtons: withModal ? /*#__PURE__*/React.createElement(IconButton, {\n size: 24,\n style: styles.calendarButton,\n icon: calendarIcon,\n disabled: rest.disabled,\n onPress: () => setVisible(true)\n }) : null // eslint-disable-next-line react/no-unstable-nested-components\n ,\n modal: _ref3 => {\n let {\n value,\n locale,\n inputMode,\n validRange,\n saveLabel,\n saveLabelDisabled,\n uppercase,\n startYear,\n endYear,\n inputEnabled\n } = _ref3;\n return withModal ? /*#__PURE__*/React.createElement(DatePickerModal, {\n date: value,\n mode: \"single\",\n visible: visible,\n onDismiss: onDismiss,\n onConfirm: onInnerConfirm,\n locale: locale,\n dateMode: inputMode,\n validRange: validRange,\n saveLabel: saveLabel,\n saveLabelDisabled: saveLabelDisabled ?? false,\n uppercase: uppercase ?? true,\n startYear: startYear ?? 1800,\n endYear: endYear ?? 2200,\n inputEnabled: inputEnabled\n }) : null;\n }\n }));\n}\n\nconst styles = StyleSheet.create({\n calendarButton: {\n position: 'absolute',\n right: 0,\n zIndex: 10\n }\n});\nexport default /*#__PURE__*/React.forwardRef(DatePickerInput);\n//# sourceMappingURL=DatePickerInput.js.map","const ar = {\n save: 'حفظ',\n selectSingle: 'حدد تاريخ',\n selectMultiple: 'حدد التواريخ',\n selectRange: 'حدد الفترة',\n notAccordingToDateFormat: inputFormat => `يجب أن يكون تنسيق التاريخ ${inputFormat}`,\n mustBeHigherThan: date => `يجب أن يكون بعد ${date}`,\n mustBeLowerThan: date => `يجب أن يكون قبل ${date}`,\n mustBeBetween: (startDate, endDate) => `يجب أن يكون بين ${startDate} - ${endDate}`,\n dateIsDisabled: 'اليوم غير مسموح به',\n previous: 'السابق',\n next: 'التالي',\n typeInDate: 'اكتب التاريخ',\n pickDateFromCalendar: 'اختر التاريخ من التقويم',\n close: 'أغلق'\n};\nexport default ar;\n//# sourceMappingURL=ar.js.map","const de = {\n save: 'Speichern',\n selectSingle: 'Wähle Datum',\n selectMultiple: 'Wähle Daten',\n selectRange: 'Wähle Zeitspanne',\n notAccordingToDateFormat: inputFormat => `Das Format sollte ${inputFormat} sein`,\n mustBeHigherThan: date => `Muss nach dem ${date} sein`,\n mustBeLowerThan: date => `Muss vor dem ${date} sein`,\n mustBeBetween: (startDate, endDate) => `Muss in dieser Zeitspanne liegen ${startDate} - ${endDate}`,\n dateIsDisabled: 'Datum nicht wählbar',\n previous: 'Vorheriges',\n next: 'Nächstes',\n typeInDate: 'Datum eingeben',\n pickDateFromCalendar: 'Datum vom Kalender auswählen',\n close: 'Schliessen'\n};\nexport default de;\n//# sourceMappingURL=de.js.map","const en = {\n save: 'Save',\n selectSingle: 'Select date',\n selectMultiple: 'Select dates',\n selectRange: 'Select period',\n notAccordingToDateFormat: inputFormat => `Date format must be ${inputFormat}`,\n mustBeHigherThan: date => `Must be later then ${date}`,\n mustBeLowerThan: date => `Must be earlier then ${date}`,\n mustBeBetween: (startDate, endDate) => `Must be between ${startDate} - ${endDate}`,\n dateIsDisabled: 'Day is not allowed',\n previous: 'Previous',\n next: 'Next',\n typeInDate: 'Type in date',\n pickDateFromCalendar: 'Pick date from calendar',\n close: 'Close'\n};\nexport default en;\n//# sourceMappingURL=en.js.map","const enGB = {\n save: 'Save',\n selectSingle: 'Select date',\n selectMultiple: 'Select dates',\n selectRange: 'Select period',\n notAccordingToDateFormat: inputFormat => `Date format must be ${inputFormat}`,\n mustBeHigherThan: date => `Must be later then ${date}`,\n mustBeLowerThan: date => `Must be earlier then ${date}`,\n mustBeBetween: (startDate, endDate) => `Must be between ${startDate} - ${endDate}`,\n dateIsDisabled: 'Day is not allowed',\n previous: 'Previous',\n next: 'Next',\n typeInDate: 'Type in date',\n pickDateFromCalendar: 'Pick date from calendar',\n close: 'Close'\n};\nexport default enGB;\n//# sourceMappingURL=enGB.js.map","const es = {\n save: 'Guardar',\n selectSingle: 'Seleccionar fecha',\n selectMultiple: 'Seleccionar fechas',\n selectRange: 'Seleccionar periodo',\n notAccordingToDateFormat: inputFormat => `Formato de fecha debe ser ${inputFormat}`,\n mustBeHigherThan: date => `Debe ser posterior a ${date}`,\n mustBeLowerThan: date => `Debe ser anterior a ${date}`,\n mustBeBetween: (startDate, endDate) => `Debe estar entre ${startDate} - ${endDate}`,\n dateIsDisabled: 'Día no permitido',\n previous: 'Anterior',\n next: 'Siguiente',\n typeInDate: 'Escribir fecha',\n pickDateFromCalendar: 'Seleccionar fecha del calendario',\n close: 'Cerrar'\n};\nexport default es;\n//# sourceMappingURL=es.js.map","const fr = {\n save: 'Enregistrer',\n selectSingle: 'Sélectionner une date',\n selectMultiple: 'Sélectionner plusieurs dates',\n selectRange: 'Sélectionner une période',\n notAccordingToDateFormat: inputFormat => `La date doit être au format ${inputFormat}`,\n mustBeHigherThan: date => `La date doit être après le ${date}`,\n mustBeLowerThan: date => `La date doit être avant le ${date}`,\n mustBeBetween: (startDate, endDate) => `La date doit être en le ${startDate} et le ${endDate}`,\n dateIsDisabled: \"Le jour n'est pas autorisé\",\n previous: 'Précédent',\n next: 'Suivant',\n typeInDate: 'Entrer la date',\n pickDateFromCalendar: 'Sélectionner une date dans le calendrier',\n close: 'Fermer'\n};\nexport default fr;\n//# sourceMappingURL=fr.js.map","const he = {\n save: 'שמור',\n selectSingle: 'בחר תאריך',\n selectMultiple: 'בחר תאריכים',\n selectRange: 'בחר טווח',\n notAccordingToDateFormat: inputFormat => `פורמט של תאריך צריך להיות ${inputFormat}`,\n mustBeHigherThan: date => `חייב להיות אחרי ${date}`,\n mustBeLowerThan: date => `חייב להיות לפני ${date}`,\n mustBeBetween: (startDate, endDate) => `חייב להיות בין ${startDate} - ${endDate}`,\n dateIsDisabled: 'יום לא מורשה',\n previous: 'הקודם',\n next: 'הבא',\n typeInDate: 'הקש תאריך',\n pickDateFromCalendar: 'בחר תאריך מהלוח שנה',\n close: 'סגור'\n};\nexport default he;\n//# sourceMappingURL=he.js.map","const it = {\n save: 'Salva',\n selectSingle: 'Seleziona la data',\n selectMultiple: 'Seleziona le date',\n selectRange: 'Seleziona il periodo',\n notAccordingToDateFormat: inputFormat => `Il formato della data deve essere ${inputFormat}`,\n mustBeHigherThan: date => `Deve essere successivo a ${date}`,\n mustBeLowerThan: date => `Deve essere precedente a ${date}`,\n mustBeBetween: (startDate, endDate) => `Deve essere compreso tra ${startDate} - ${endDate}`,\n dateIsDisabled: 'Il giorno non è consentito',\n previous: 'Precedente',\n next: 'Successivo',\n typeInDate: 'Digita la data',\n pickDateFromCalendar: 'Scegli data dal calendario',\n close: 'Chiudi'\n};\nexport default it;\n//# sourceMappingURL=it.js.map","const ko = {\n save: '저장',\n selectSingle: '날짜 선택',\n selectMultiple: '여러 날짜 선택',\n selectRange: '기간 선택',\n notAccordingToDateFormat: inputFormat => `날짜 형식은 ${inputFormat}가 되어야 합니다`,\n mustBeHigherThan: date => `${date} 보다 커야 합니다`,\n mustBeLowerThan: date => `${date} 보다 작아야 합니다`,\n mustBeBetween: (startDate, endDate) => `${startDate} - ${endDate} 사이여야 합니다`,\n dateIsDisabled: '날짜는 허용되지 않습니다',\n previous: '이전',\n next: '다음',\n typeInDate: '날짜 입력',\n pickDateFromCalendar: '달력에서 날짜 선택',\n close: '닫기'\n};\nexport default ko;\n//# sourceMappingURL=ko.js.map","const nl = {\n save: 'Opslaan',\n selectSingle: 'Selecteer datum',\n selectMultiple: 'Selecteer datums',\n selectRange: 'Selecteer periode',\n notAccordingToDateFormat: inputFormat => `Datumformaat moet ${inputFormat} zijn`,\n mustBeHigherThan: date => `Moet later dan ${date}`,\n mustBeLowerThan: date => `Moet eerder dan ${date}`,\n mustBeBetween: (startDate, endDate) => `Moet tussen ${startDate} - ${endDate}`,\n dateIsDisabled: 'Deze dag mag niet',\n previous: 'Vorige',\n next: 'Volgende',\n typeInDate: 'Typ datum',\n pickDateFromCalendar: 'Kies datum van kalender',\n close: 'Sluit'\n};\nexport default nl;\n//# sourceMappingURL=nl.js.map","const pl = {\n save: 'Zapisz',\n selectSingle: 'Wybierz datę',\n selectMultiple: 'Wybierz daty',\n selectRange: 'Wybierz zakres',\n notAccordingToDateFormat: inputFormat => `Data musi mieć format ${inputFormat}`,\n mustBeHigherThan: date => `Nie wcześniej niżn ${date}`,\n mustBeLowerThan: date => `Nie później niż ${date}`,\n mustBeBetween: (startDate, endDate) => `Pomiędzy ${startDate} - ${endDate}`,\n dateIsDisabled: 'Niedozwolona data',\n previous: 'Poprzedni',\n next: 'Dalej',\n typeInDate: 'Wpisz datę',\n pickDateFromCalendar: 'Wybierz datę z kalendarza',\n close: 'Zamknij'\n};\nexport default pl;\n//# sourceMappingURL=pl.js.map","const pt = {\n save: 'Salvar',\n selectSingle: 'Selecione a data',\n selectMultiple: 'Selecione as datas',\n selectRange: 'Selecione o período',\n notAccordingToDateFormat: inputFormat => `O formato da data deve ser ${inputFormat}`,\n mustBeHigherThan: date => `Deve ser depois de ${date}`,\n mustBeLowerThan: date => `Deve ser antes de ${date}`,\n mustBeBetween: (startDate, endDate) => `Deve estar entre ${startDate} - ${endDate}`,\n dateIsDisabled: 'Data não é permitida',\n previous: 'Anterior',\n next: 'Próximo',\n typeInDate: 'Digite a data',\n pickDateFromCalendar: 'Escolha a data do calendário',\n close: 'Fechar'\n};\nexport default pt;\n//# sourceMappingURL=pt.js.map","const tr = {\n save: 'Kaydet',\n selectSingle: 'Tarih seç',\n selectMultiple: 'Tarihleri seç',\n selectRange: 'Periyot seç',\n notAccordingToDateFormat: inputFormat => `Tarih formatı ${inputFormat} olmalı`,\n mustBeHigherThan: date => `${date} tarihinden sonra olmalı`,\n mustBeLowerThan: date => `${date} tarihinden önce olmalı`,\n mustBeBetween: (startDate, endDate) => `${startDate} - ${endDate} tarihleri arasında olmalı`,\n dateIsDisabled: 'Gün seçilemez',\n previous: 'Önceki',\n next: 'Sonraki',\n typeInDate: 'Tarihi yazın',\n pickDateFromCalendar: 'Takvimden tarih seçin',\n close: 'Kapat'\n};\nexport default tr;\n//# sourceMappingURL=tr.js.map","const DEV = process.env.NODE_ENV !== \"production\";\n\nconst warnings = new Set();\n\nfunction warnOnce(condition, ...rest) {\n if (DEV && condition) {\n const key = rest.join(\" \");\n\n if (warnings.has(key)) {\n return;\n }\n\n warnings.add(key);\n console.warn(...rest);\n }\n}\n\nmodule.exports = warnOnce;\n","import * as React from 'react';\nimport ThemeContext from './ThemeContext';\nexport default function useTheme() {\n const theme = React.useContext(ThemeContext);\n return theme;\n}\n//# sourceMappingURL=useTheme.js.map","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","import MaterialIcons from './build/MaterialIcons';\nexport default MaterialIcons;\n","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"colors\", \"enabled\", \"onRefresh\", \"progressBackgroundColor\", \"progressViewOffset\", \"refreshing\", \"size\", \"tintColor\", \"title\", \"titleColor\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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, _excluded);\n\n return /*#__PURE__*/React.createElement(View, rest);\n}\n\nexport default RefreshControl;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 { 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","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"behavior\", \"contentContainerStyle\", \"keyboardVerticalOffset\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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\nclass KeyboardAvoidingView extends React.Component {\n constructor() {\n super(...arguments);\n this.frame = null;\n\n this.onLayout = event => {\n this.frame = event.nativeEvent.layout;\n };\n }\n\n 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 onKeyboardChange(event) {}\n\n 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, _excluded);\n\n return /*#__PURE__*/React.createElement(View, _extends({\n onLayout: this.onLayout\n }, rest));\n }\n\n}\n\nexport default KeyboardAvoidingView;","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","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport color from 'color';\nimport { useInternalTheme } from '../core/theming';\nimport { black, white } from '../styles/themes/v2/colors';\n/**\n * A divider is a thin, lightweight separator that groups content in lists and page layouts.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { View } from 'react-native';\n * import { Divider, Text } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * \n * Lemon\n * \n * Mango\n * \n * \n * );\n *\n * export default MyComponent;\n * ```\n */\nconst Divider = _ref => {\n let {\n leftInset,\n horizontalInset = false,\n style,\n theme: themeOverrides,\n bold = false,\n ...rest\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const {\n dark: isDarkTheme,\n isV3\n } = theme;\n const dividerColor = isV3 ? theme.colors.outlineVariant : color(isDarkTheme ? white : black).alpha(0.12).rgb().string();\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, {\n style: [{\n height: StyleSheet.hairlineWidth,\n backgroundColor: dividerColor\n }, leftInset && (isV3 ? styles.v3LeftInset : styles.leftInset), isV3 && horizontalInset && styles.horizontalInset, isV3 && bold && styles.bold, style]\n }));\n};\nconst styles = StyleSheet.create({\n leftInset: {\n marginLeft: 72\n },\n v3LeftInset: {\n marginLeft: 16\n },\n horizontalInset: {\n marginLeft: 16,\n marginRight: 16\n },\n bold: {\n height: 1\n }\n});\nexport default Divider;\n//# sourceMappingURL=Divider.js.map","import * as React from 'react';\nexport default class PortalConsumer extends React.Component {\n componentDidMount() {\n this.checkManager();\n this.key = this.props.manager.mount(this.props.children);\n }\n componentDidUpdate() {\n this.checkManager();\n this.props.manager.update(this.key, this.props.children);\n }\n componentWillUnmount() {\n this.checkManager();\n this.props.manager.unmount(this.key);\n }\n checkManager() {\n if (!this.props.manager) {\n throw new Error('Looks like you forgot to wrap your root component with `Provider` component from `react-native-paper`.\\n\\n' + \"Please read our getting-started guide and make sure you've followed all the required steps.\\n\\n\" + 'https://callstack.github.io/react-native-paper/docs/guides/getting-started');\n }\n }\n render() {\n return null;\n }\n}\n//# sourceMappingURL=PortalConsumer.js.map","import * as React from 'react';\nimport PortalConsumer from './PortalConsumer';\nimport PortalHost, { PortalContext } from './PortalHost';\nimport { Consumer as SettingsConsumer, Provider as SettingsProvider } from '../../core/settings';\nimport { ThemeProvider, withInternalTheme } from '../../core/theming';\n/**\n * Portal allows rendering a component at a different place in the parent tree.\n * You can use it to render content which should appear above other elements, similar to `Modal`.\n * It requires a [`Portal.Host`](PortalHost) component to be rendered somewhere in the parent tree.\n * Note that if you're using the `Provider` component, this already includes a `Portal.Host`.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Portal, Text } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * \n * This is rendered at a different place\n * \n * );\n *\n * export default MyComponent;\n * ```\n */\nclass Portal extends React.Component {\n // @component ./PortalHost.tsx\n static Host = PortalHost;\n render() {\n const {\n children,\n theme\n } = this.props;\n return /*#__PURE__*/React.createElement(SettingsConsumer, null, settings => /*#__PURE__*/React.createElement(PortalContext.Consumer, null, manager => /*#__PURE__*/React.createElement(PortalConsumer, {\n manager: manager\n }, /*#__PURE__*/React.createElement(SettingsProvider, {\n value: settings\n }, /*#__PURE__*/React.createElement(ThemeProvider, {\n theme: theme\n }, children)))));\n }\n}\nexport default withInternalTheme(Portal);\n//# sourceMappingURL=Portal.js.map","import color from 'color';\nimport { black, pinkA400, white } from './colors';\nimport configureFonts from '../../fonts';\nexport const MD2LightTheme = {\n dark: false,\n roundness: 4,\n version: 2,\n isV3: false,\n colors: {\n primary: '#6200ee',\n accent: '#03dac4',\n background: '#f6f6f6',\n surface: white,\n error: '#B00020',\n text: black,\n onSurface: '#000000',\n disabled: color(black).alpha(0.26).rgb().string(),\n placeholder: color(black).alpha(0.54).rgb().string(),\n backdrop: color(black).alpha(0.5).rgb().string(),\n notification: pinkA400,\n tooltip: 'rgba(28, 27, 31, 1)'\n },\n fonts: configureFonts({\n isV3: false\n }),\n animation: {\n scale: 1.0\n }\n};\n//# sourceMappingURL=LightTheme.js.map","/*\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) Meta Platforms, Inc. and affiliates.\n *\n * This source 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\nclass Animation {\n start(fromValue, onUpdate, onEnd, previousAnimation, animatedValue) {}\n\n stop() {\n if (this.__nativeId) {\n NativeAnimatedHelper.API.stopAnimation(this.__nativeId);\n }\n }\n\n __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 __debouncedOnEnd(result) {\n var onEnd = this.__onEnd;\n this.__onEnd = null;\n onEnd && onEnd(result);\n }\n\n __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}\n\nexport default Animation;","/**\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 useLayoutEffect from '../useLayoutEffect';\nimport UIManager from '../../exports/UIManager';\nimport canUseDOM from '../canUseDom';\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(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, (x, y, width, height, left, top) => {\n var event = {\n // $FlowFixMe\n nativeEvent: {\n layout: {\n x,\n y,\n width,\n height,\n left,\n top\n }\n },\n timeStamp: Date.now()\n };\n Object.defineProperty(event.nativeEvent, 'target', {\n enumerable: true,\n get: () => entry.target\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(() => {\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(() => {\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 () => {\n if (node != null && observer != null) {\n observer.unobserve(node);\n }\n };\n }, [ref, observer]);\n}","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","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 * 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 * as React from 'react';\nimport { Animated } from 'react-native';\nexport function useAnimatedValue(initialValue) {\n const lazyRef = React.useRef();\n if (lazyRef.current === undefined) {\n lazyRef.current = new Animated.Value(initialValue);\n }\n return lazyRef.current;\n}\n//# sourceMappingURL=useAnimatedValue.js.map","/**\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';\n\nvar 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, responderTouchHistoryStore) {\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(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\n };\n });\n }\n\n if (domEventChangedTouches != null) {\n changedTouches = normalizeTouches(domEventChangedTouches);\n touches = normalizeTouches(domEvent.touches);\n } else {\n var emulatedTouches = [{\n force,\n identifier,\n\n get locationX() {\n return locationX(clientX);\n },\n\n get locationY() {\n return locationY(clientY);\n },\n\n pageX,\n pageY,\n target: domEvent.target,\n 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\n isDefaultPrevented() {\n return domEvent.defaultPrevented;\n },\n\n isPropagationStopped() {\n return propagationWasStopped;\n },\n\n isTrusted: domEvent.isTrusted,\n nativeEvent: {\n altKey: false,\n ctrlKey: false,\n metaKey,\n shiftKey,\n changedTouches,\n force,\n identifier,\n\n get locationX() {\n return locationX(clientX);\n },\n\n get locationY() {\n return locationY(clientY);\n },\n\n pageX,\n pageY,\n target: domEvent.target,\n timestamp,\n touches,\n type: domEventType\n },\n persist: emptyFunction,\n preventDefault,\n\n stopPropagation() {\n propagationWasStopped = true;\n },\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 */\nexport var BLUR = 'blur';\nexport var CONTEXT_MENU = 'contextmenu';\nexport var FOCUS_OUT = 'focusout';\nexport var MOUSE_DOWN = 'mousedown';\nexport var MOUSE_MOVE = 'mousemove';\nexport var MOUSE_UP = 'mouseup';\nexport var MOUSE_CANCEL = 'dragstart';\nexport var TOUCH_START = 'touchstart';\nexport var TOUCH_MOVE = 'touchmove';\nexport var TOUCH_END = 'touchend';\nexport var TOUCH_CANCEL = 'touchcancel';\nexport var SCROLL = 'scroll';\nexport var SELECT = 'select';\nexport var SELECTION_CHANGE = 'selectionchange';\nexport function isStartish(eventType) {\n return eventType === TOUCH_START || eventType === MOUSE_DOWN;\n}\nexport function isMoveish(eventType) {\n return eventType === TOUCH_MOVE || eventType === MOUSE_MOVE;\n}\nexport function isEndish(eventType) {\n return eventType === TOUCH_END || eventType === MOUSE_UP || isCancelish(eventType);\n}\nexport function isCancelish(eventType) {\n return eventType === TOUCH_CANCEL || eventType === MOUSE_CANCEL;\n}\nexport function isScroll(eventType) {\n return eventType === SCROLL;\n}\nexport function isSelectionChange(eventType) {\n return eventType === SELECT || eventType === SELECTION_CHANGE;\n}","/**\n * Copyright (c) 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,\n 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) Meta Platforms, Inc. and affiliates.\n *\n * This source 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;\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, touchHistory) {\n var identifier = getTouchIdentifier(touch);\n var touchRecord = touchHistory.touchBank[identifier];\n\n if (touchRecord) {\n resetTouchRecord(touchRecord, touch);\n } else {\n touchHistory.touchBank[identifier] = createTouchRecord(touch);\n }\n\n touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n}\n\nfunction recordTouchMove(touch, touchHistory) {\n var touchRecord = touchHistory.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(touchHistory));\n }\n}\n\nfunction recordTouchEnd(touch, touchHistory) {\n var touchRecord = touchHistory.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(touchHistory));\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(touchHistory) {\n var touchBank = touchHistory.touchBank;\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\nexport class ResponderTouchHistoryStore {\n constructor() {\n this._touchHistory = {\n touchBank: [],\n //Array\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 }\n\n recordTouchTrack(topLevelType, nativeEvent) {\n var touchHistory = this._touchHistory;\n\n if (isMoveish(topLevelType)) {\n nativeEvent.changedTouches.forEach(touch => recordTouchMove(touch, touchHistory));\n } else if (isStartish(topLevelType)) {\n nativeEvent.changedTouches.forEach(touch => recordTouchStart(touch, touchHistory));\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(touch => recordTouchEnd(touch, touchHistory));\n touchHistory.numberActiveTouches = nativeEvent.touches.length;\n\n if (touchHistory.numberActiveTouches === 1) {\n var touchBank = touchHistory.touchBank;\n\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\n get touchHistory() {\n return this._touchHistory;\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 */\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 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';\nimport canUseDOM from '../canUseDom';\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};\nvar responderTouchHistoryStore = new ResponderTouchHistoryStore();\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, responderTouchHistoryStore);\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,\n 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(eventType => {\n document.addEventListener(eventType, eventListener);\n });\n documentEventsCapturePhase.forEach(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({}, responderTouchHistoryStore);\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(() => idCounter++);\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(() => {\n ResponderSystem.attachListeners();\n return () => {\n ResponderSystem.removeNode(id);\n };\n }, [id]); // Register and unregister with the Responder System as necessary\n\n React.useEffect(() => {\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) Meta Platforms, Inc. and affiliates.\n *\n * This 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\nclass Batchinator {\n constructor(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 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 schedule() {\n if (this._taskHandle) {\n return;\n }\n\n var timeoutHandle = setTimeout(() => {\n this._taskHandle = InteractionManager.runAfterInteractions(() => {\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: () => clearTimeout(timeoutHandle)\n };\n }\n\n}\n\nexport default Batchinator;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _createForOfIteratorHelperLoose from \"@babel/runtime/helpers/createForOfIteratorHelperLoose\";\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 */\nclass ViewabilityHelper {\n constructor(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 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 computeViewableItems(itemCount, scrollOffset, viewportHeight, getFrameMetrics, renderRange // Optional optimization to reduce the scan size\n ) {\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,\n 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 onUpdate(itemCount, scrollOffset, viewportHeight, getFrameMetrics, createViewToken, onViewableItemsChanged, renderRange // Optional optimization to reduce the scan size\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((v, ii) => v === viewableIndices[ii])) {\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(() => {\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 resetViewableIndices() {\n this._viewableIndices = [];\n }\n /**\n * Records that an interaction has happened even if there has been no scroll.\n */\n\n\n recordInteraction() {\n this._hasInteracted = true;\n }\n\n _onUpdateSync( // $FlowFixMe\n viewableIndicesToCheck, // $FlowFixMe\n onViewableItemsChanged, // $FlowFixMe\n createViewToken) {\n // Filter out indices that have gone out of view since this call was scheduled.\n viewableIndicesToCheck = viewableIndicesToCheck.filter(ii => this._viewableIndices.includes(ii));\n var prevItems = this._viewableItems;\n var nextItems = new Map(viewableIndicesToCheck.map(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,\n viewabilityConfig: this._config\n });\n }\n }\n\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) Meta Platforms, Inc. and affiliates.\n *\n * This 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 return console.log(...arguments);\n}\n\nexport default infoLog;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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(() => ({\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 }), [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\n })\n }, children);\n}","import _createForOfIteratorHelperLoose from \"@babel/runtime/helpers/createForOfIteratorHelperLoose\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 findNodeHandle from '../../../exports/findNodeHandle';\nimport RefreshControl from '../../../exports/RefreshControl';\nimport ScrollView from '../../../exports/ScrollView';\nimport StyleSheet from '../../../exports/StyleSheet';\nimport View from '../../../exports/View';\nimport ViewabilityHelper from '../ViewabilityHelper';\nvar flattenStyle = StyleSheet.flatten;\nimport infoLog from '../infoLog';\nimport invariant from 'fbjs/lib/invariant';\nimport { keyExtractor as defaultKeyExtractor, computeWindowedRenderLimits } from '../VirtualizeUtils';\nimport * as React from 'react';\nimport { VirtualizedListCellContextProvider, VirtualizedListContext, VirtualizedListContextProvider } from './VirtualizedListContext.js';\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar _usedIndexForKey = false;\nvar _keylessItemComponentName = '';\n\n/**\n * Default Props Helper Functions\n * Use the following helper functions for default values\n */\n// horizontalOrDefault(this.props.horizontal)\nfunction horizontalOrDefault(horizontal) {\n return horizontal !== null && horizontal !== void 0 ? horizontal : false;\n} // initialNumToRenderOrDefault(this.props.initialNumToRenderOrDefault)\n\n\nfunction initialNumToRenderOrDefault(initialNumToRender) {\n return initialNumToRender !== null && initialNumToRender !== void 0 ? initialNumToRender : 10;\n} // maxToRenderPerBatchOrDefault(this.props.maxToRenderPerBatch)\n\n\nfunction maxToRenderPerBatchOrDefault(maxToRenderPerBatch) {\n return maxToRenderPerBatch !== null && maxToRenderPerBatch !== void 0 ? maxToRenderPerBatch : 10;\n} // onEndReachedThresholdOrDefault(this.props.onEndReachedThreshold)\n\n\nfunction onEndReachedThresholdOrDefault(onEndReachedThreshold) {\n return onEndReachedThreshold !== null && onEndReachedThreshold !== void 0 ? onEndReachedThreshold : 2;\n} // scrollEventThrottleOrDefault(this.props.scrollEventThrottle)\n\n\nfunction scrollEventThrottleOrDefault(scrollEventThrottle) {\n return scrollEventThrottle !== null && scrollEventThrottle !== void 0 ? scrollEventThrottle : 50;\n} // windowSizeOrDefault(this.props.windowSize)\n\n\nfunction windowSizeOrDefault(windowSize) {\n return windowSize !== null && windowSize !== void 0 ? windowSize : 21;\n}\n/**\n * Base implementation for the more convenient [``](https://reactnative.dev/docs/flatlist)\n * and [``](https://reactnative.dev/docs/sectionlist) 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 * - As an effort to remove defaultProps, use helper functions when referencing certain props\n *\n */\n\n\nclass VirtualizedList extends React.PureComponent {\n // scrollToEnd may be janky without getItemLayout prop\n 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(horizontalOrDefault(this.props.horizontal) ? {\n x: offset,\n animated\n } : {\n y: offset,\n animated\n });\n } // scrollToIndex may be janky without getItemLayout prop\n\n\n 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\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\n } : {\n y: offset,\n animated\n });\n } // scrollToItem may be janky without getItemLayout prop. Required linear scan through items -\n // use scrollToIndex instead if possible.\n\n\n 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 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(horizontalOrDefault(this.props.horizontal) ? {\n x: offset,\n animated\n } : {\n y: offset,\n animated\n });\n }\n\n recordInteraction() {\n this._nestedChildLists.forEach(childList => {\n childList.ref && childList.ref.recordInteraction();\n });\n\n this._viewabilityTuples.forEach(t => {\n t.viewabilityHelper.recordInteraction();\n });\n\n this._updateViewableItems(this.props.data);\n }\n\n 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 getScrollResponder() {\n if (this._scrollRef && this._scrollRef.getScrollResponder) {\n return this._scrollRef.getScrollResponder();\n }\n }\n\n getScrollableNode() {\n if (this._scrollRef && this._scrollRef.getScrollableNode) {\n return this._scrollRef.getScrollableNode();\n } else {\n return findNodeHandle(this._scrollRef);\n }\n }\n\n getScrollRef() {\n if (this._scrollRef && this._scrollRef.getScrollRef) {\n return this._scrollRef.getScrollRef();\n } else {\n return this._scrollRef;\n }\n }\n\n setNativeProps(props) {\n if (this._scrollRef) {\n this._scrollRef.setNativeProps(props);\n }\n }\n\n _getCellKey() {\n var _this$context;\n\n return ((_this$context = this.context) == null ? void 0 : _this$context.cellKey) || 'rootList';\n }\n\n _getListKey() {\n return this.props.listKey || this._getCellKey();\n }\n\n _getDebugInfo() {\n var _this$context2;\n\n return {\n listKey: this._getListKey(),\n cellKey: this._getCellKey(),\n horizontal: horizontalOrDefault(this.props.horizontal),\n parent: (_this$context2 = this.context) == null ? void 0 : _this$context2.debugInfo\n };\n }\n\n hasMore() {\n return this._hasMore;\n }\n\n constructor(_props) {\n var _this$props$updateCel;\n\n super(_props);\n\n this._getScrollMetrics = () => {\n return this._scrollMetrics;\n };\n\n this._getOutermostParentListRef = () => {\n if (this._isNestedWithSameOrientation()) {\n return this.context.getOutermostParentListRef();\n } else {\n return this;\n }\n };\n\n this._getNestedChildState = key => {\n var existingChildData = this._nestedChildLists.get(key);\n\n return existingChildData && existingChildData.state;\n };\n\n this._registerAsNestedChild = 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 = childList => {\n this._nestedChildLists.set(childList.key, {\n ref: null,\n state: childList.state\n });\n };\n\n this._onUpdateSeparators = (keys, newProps) => {\n keys.forEach(key => {\n var ref = key != null && this._cellRefs[key];\n ref && ref.updateSeparatorProps(newProps);\n });\n };\n\n this._getSpacerKey = isVertical => isVertical ? 'height' : 'width';\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 = ref => {\n this._scrollRef = ref;\n };\n\n this._defaultRenderScrollComponent = props => {\n var onRefresh = props.onRefresh;\n\n if (this._isNestedWithSameOrientation()) {\n // $FlowFixMe[prop-missing] - Typing ReactNativeComponent revealed errors\n return /*#__PURE__*/React.createElement(View, props);\n } else if (onRefresh) {\n var _props$refreshing;\n\n invariant(typeof props.refreshing === 'boolean', '`refreshing` prop must be set as a boolean in order to use `onRefresh`, but got `' + JSON.stringify((_props$refreshing = props.refreshing) !== null && _props$refreshing !== void 0 ? _props$refreshing : 'undefined') + '`');\n return (\n /*#__PURE__*/\n // $FlowFixMe[prop-missing] 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[prop-missing] Invalid prop usage\n return /*#__PURE__*/React.createElement(ScrollView, props);\n }\n };\n\n this._onCellUnmount = 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 = 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 = e => {\n this.props.onLayout && this.props.onLayout(e);\n };\n\n this._onLayoutFooter = e => {\n this._triggerRemeasureForChildListsInCell(this._getFooterCellKey());\n\n this._footerLength = this._selectLength(e.nativeEvent.layout);\n };\n\n this._onLayoutHeader = e => {\n this._headerLength = this._selectLength(e.nativeEvent.layout);\n };\n\n this._onContentSizeChange = (width, height) => {\n if (width > 0 && height > 0 && this.props.initialScrollIndex != null && this.props.initialScrollIndex > 0 && !this._hasDoneInitialScroll) {\n if (this.props.contentOffset == null) {\n this.scrollToIndex({\n animated: false,\n index: this.props.initialScrollIndex\n });\n }\n\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,\n width\n });\n\n this._scheduleCellsToRenderUpdate();\n\n this._maybeCallOnEndReached();\n };\n\n this._convertParentScrollMetrics = 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,\n contentLength,\n offset,\n dOffset\n };\n };\n\n this._onScroll = e => {\n this._nestedChildLists.forEach(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,\n 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,\n prevDt: this._scrollMetrics.dt,\n contentLength\n });\n this._hasWarned.perf = true;\n }\n\n this._scrollMetrics = {\n contentLength,\n dt,\n dOffset,\n offset,\n timestamp,\n velocity,\n 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 = e => {\n this._nestedChildLists.forEach(childList => {\n childList.ref && childList.ref._onScrollBeginDrag(e);\n });\n\n this._viewabilityTuples.forEach(tuple => {\n tuple.viewabilityHelper.recordInteraction();\n });\n\n this._hasInteracted = true;\n this.props.onScrollBeginDrag && this.props.onScrollBeginDrag(e);\n };\n\n this._onScrollEndDrag = e => {\n this._nestedChildLists.forEach(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 = e => {\n this._nestedChildLists.forEach(childList => {\n childList.ref && childList.ref._onMomentumScrollBegin(e);\n });\n\n this.props.onMomentumScrollBegin && this.props.onMomentumScrollBegin(e);\n };\n\n this._onMomentumScrollEnd = e => {\n this._nestedChildLists.forEach(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 = () => {\n var _this$props3 = this.props,\n data = _this$props3.data,\n getItemCount = _this$props3.getItemCount,\n _onEndReachedThreshold = _this$props3.onEndReachedThreshold;\n var onEndReachedThreshold = onEndReachedThresholdOrDefault(_onEndReachedThreshold);\n\n var isVirtualizationDisabled = this._isVirtualizationDisabled();\n\n this._updateViewableItems(data);\n\n if (!data) {\n return;\n }\n\n this.setState(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.data, this.props.getItemCount, maxToRenderPerBatchOrDefault(this.props.maxToRenderPerBatch), windowSizeOrDefault(this.props.windowSize), state, this._getFrameMetricsApprox, this._scrollMetrics);\n }\n }\n } else {\n var distanceFromEnd = contentLength - visibleLength - offset;\n var renderAhead = distanceFromEnd < onEndReachedThreshold * visibleLength ? maxToRenderPerBatchOrDefault(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) {\n // $FlowFixMe[incompatible-use] The newState definitely exists past \"if (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 = (index, isViewable) => {\n var _this$props4 = this.props,\n data = _this$props4.data,\n getItem = _this$props4.getItem;\n var item = getItem(data, index);\n return {\n index,\n item,\n key: this._keyExtractor(item, index),\n isViewable\n };\n };\n\n this._getFrameMetricsApprox = 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 = 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 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[this._keyExtractor(item, index)];\n\n if (!frame || frame.index !== index) {\n if (getItemLayout) {\n frame = getItemLayout(data, index);\n }\n }\n /* $FlowFixMe[prop-missing] (>=0.63.0 site=react_native_fb) This comment\n * suppresses an error found when Flow v0.63 was deployed. To see the error\n * delete this comment and run Flow. */\n\n\n return frame;\n };\n\n invariant( // $FlowFixMe[prop-missing]\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(windowSizeOrDefault(_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$updateCel = this.props.updateCellsBatchingPeriod) !== null && _this$props$updateCel !== void 0 ? _this$props$updateCel : 50);\n\n if (this.props.viewabilityConfigCallbackPairs) {\n this._viewabilityTuples = this.props.viewabilityConfigCallbackPairs.map(pair => ({\n viewabilityHelper: new ViewabilityHelper(pair.viewabilityConfig),\n onViewableItemsChanged: pair.onViewableItemsChanged\n }));\n } else if (this.props.onViewableItemsChanged) {\n this._viewabilityTuples.push({\n viewabilityHelper: new ViewabilityHelper(this.props.viewabilityConfig),\n // $FlowFixMe[incompatible-call]\n onViewableItemsChanged: this.props.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) + initialNumToRenderOrDefault(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 } // REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.\n // For issue https://github.com/necolas/react-native-web/issues/995\n\n\n this.invertedWheelEventHandler = 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 }\n\n 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 } // REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.\n\n\n this.setupWebWheelHandler();\n }\n\n 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(tuple => {\n tuple.viewabilityHelper.dispose();\n });\n\n this._fillRateHelper.deactivateAndFlush(); // REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.\n\n\n this.teardownWebWheelHandler();\n } // REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.\n\n\n setupWebWheelHandler() {\n if (this._scrollRef && this._scrollRef.getScrollableNode) {\n this._scrollRef.getScrollableNode().addEventListener('wheel', this.invertedWheelEventHandler);\n } else {\n setTimeout(() => this.setupWebWheelHandler(), 50);\n return;\n }\n } // REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.\n\n\n teardownWebWheelHandler() {\n if (this._scrollRef && this._scrollRef.getScrollableNode) {\n this._scrollRef.getScrollableNode().removeEventListener('wheel', this.invertedWheelEventHandler);\n }\n }\n\n static getDerivedStateFromProps(newProps, prevState) {\n var data = newProps.data,\n getItemCount = newProps.getItemCount;\n var maxToRenderPerBatch = maxToRenderPerBatchOrDefault(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 _pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, first, last, inversionStyle) {\n var _this = 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 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\n var key = _this._keyExtractor(item, ii);\n\n _this._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: _this._fillRateHelper,\n horizontal: horizontal,\n index: ii,\n inversionStyle: inversionStyle,\n item: item,\n key: key,\n prevCellKey: prevCellKey,\n onUpdateSeparators: _this._onUpdateSeparators,\n onLayout: e => _this._onCellLayout(e, key, ii),\n onUnmount: _this._onCellUnmount,\n parentProps: _this.props,\n ref: _ref => {\n _this._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 _isVirtualizationDisabled() {\n return this.props.disableVirtualization || false;\n }\n\n _isNestedWithSameOrientation() {\n var nestedContext = this.context;\n return !!(nestedContext && !!nestedContext.horizontal === horizontalOrDefault(this.props.horizontal));\n }\n\n _keyExtractor(item, index) {\n if (this.props.keyExtractor != null) {\n return this.props.keyExtractor(item, index);\n }\n\n var key = defaultKeyExtractor(item, index);\n\n if (key === String(index)) {\n _usedIndexForKey = true;\n\n if (item.type && item.type.displayName) {\n _keylessItemComponentName = item.type.displayName;\n }\n }\n\n return key;\n }\n\n render() {\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 ? horizontalOrDefault(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[not-a-component]\n // $FlowFixMe[incompatible-type-arg]\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[incompatible-type] - 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\n var spacerKey = this._getSpacerKey(!horizontal);\n\n var lastInitialIndex = this.props.initialScrollIndex ? -1 : initialNumToRenderOrDefault(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 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( /*#__PURE__*/React.createElement(View, {\n key: \"$sticky_lead\",\n style: {\n [spacerKey]: leadSpace\n }\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( /*#__PURE__*/React.createElement(View, {\n key: \"$sticky_trail\",\n style: {\n [spacerKey]: trailSpace\n }\n }));\n insertedStickySpacer = true;\n break;\n }\n }\n }\n\n if (!insertedStickySpacer) {\n var _initBlock = this._getFrameMetricsApprox(lastInitialIndex);\n\n var firstSpace = this._getFrameMetricsApprox(first).offset - (_initBlock.offset + _initBlock.length);\n\n cells.push( /*#__PURE__*/React.createElement(View, {\n key: \"$lead_spacer\",\n style: {\n [spacerKey]: firstSpace\n }\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 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( /*#__PURE__*/React.createElement(View, {\n key: \"$tail_spacer\",\n style: {\n [spacerKey]: tailSpacerLength\n }\n }));\n }\n } else if (ListEmptyComponent) {\n var _element = /*#__PURE__*/React.isValidElement(ListEmptyComponent) ? ListEmptyComponent :\n /*#__PURE__*/\n // $FlowFixMe[not-a-component]\n // $FlowFixMe[incompatible-type-arg]\n React.createElement(ListEmptyComponent, null);\n\n cells.push( /*#__PURE__*/React.cloneElement(_element, {\n key: '$empty',\n onLayout: event => {\n this._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[not-a-component]\n // $FlowFixMe[incompatible-type-arg]\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[incompatible-type] - 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: scrollEventThrottleOrDefault(this.props.scrollEventThrottle),\n // TODO: Android support\n invertStickyHeaders: this.props.invertStickyHeaders !== undefined ? this.props.invertStickyHeaders : this.props.inverted,\n 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: horizontalOrDefault(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 /* https://github.com/necolas/react-native-web/issues/2239: Re-enable when ScrollView.Context.Consumer is available.\n if (__DEV__) {\n ret = (\n \n {scrollContext => {\n if (\n scrollContext != null &&\n !scrollContext.horizontal ===\n !horizontalOrDefault(this.props.horizontal) &&\n !this._hasWarned.nesting &&\n this.context == null\n ) {\n // TODO (T46547044): use React.warn once 16.9 is sync'd: https://github.com/facebook/react/pull/15170\n console.error(\n 'VirtualizedLists should never be nested inside plain ScrollViews with the same ' +\n 'orientation because it can break windowing and other functionality - use another ' +\n 'VirtualizedList-backed container instead.',\n );\n this._hasWarned.nesting = true;\n }\n return innerRet;\n }}\n \n );\n }*/\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 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(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 _computeBlankness() {\n this._fillRateHelper.computeBlankness(this.props, this.state, this._scrollMetrics);\n }\n\n _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,\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 _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 measureLayoutRelativeToContainingList() {\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(), (x, y, width, height) => {\n this._offsetFromParentVirtualizedList = this._selectOffset({\n x,\n y\n });\n this._scrollMetrics.contentLength = this._selectLength({\n width,\n height\n });\n\n var scrollMetrics = this._convertParentScrollMetrics(this.context.getScrollMetrics());\n\n var metricsChanged = this._scrollMetrics.visibleLength !== scrollMetrics.visibleLength || this._scrollMetrics.offset !== scrollMetrics.offset;\n\n if (metricsChanged) {\n this._scrollMetrics.visibleLength = scrollMetrics.visibleLength;\n this._scrollMetrics.offset = scrollMetrics.offset; // If metrics of the scrollView changed, then we triggered remeasure for child list\n // to ensure VirtualizedList has the right information.\n\n this._cellKeysToChildListKeys.forEach(childListKeys => {\n if (childListKeys) {\n for (var _iterator3 = _createForOfIteratorHelperLoose(childListKeys), _step3; !(_step3 = _iterator3()).done;) {\n var childKey = _step3.value;\n\n var childList = this._nestedChildLists.get(childKey);\n\n childList && childList.ref && childList.ref.measureLayoutRelativeToContainingList();\n }\n }\n });\n }\n }, 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 _getFooterCellKey() {\n return this._getCellKey() + '-footer';\n }\n\n _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[prop-missing] (>=0.68.0 site=react_native_fb) This comment\n * suppresses an error found when Flow v0.68 was deployed. To see the\n * error delete this 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((f, ii) => /*#__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 })), /*#__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 _selectLength(metrics) {\n return !horizontalOrDefault(this.props.horizontal) ? metrics.height : metrics.width;\n }\n\n _selectOffset(metrics) {\n return !horizontalOrDefault(this.props.horizontal) ? metrics.y : metrics.x;\n }\n\n _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 != null ? 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\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 _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 onEndReachedThreshold = onEndReachedThresholdOrDefault(this.props.onEndReachedThreshold);\n var scrollingThreshold = 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 _updateViewableItems(data) {\n var getItemCount = this.props.getItemCount;\n\n this._viewabilityTuples.forEach(tuple => {\n tuple.viewabilityHelper.onUpdate(getItemCount(data), this._scrollMetrics.offset, this._scrollMetrics.visibleLength, this._getFrameMetrics, this._createViewToken, tuple.onViewableItemsChanged, this.state);\n });\n }\n\n}\n\nVirtualizedList.contextType = VirtualizedListContext;\n\nclass CellRenderer extends React.Component {\n constructor() {\n super(...arguments);\n this.state = {\n separatorProps: {\n highlighted: false,\n leadingItem: this.props.item\n }\n };\n this._separators = {\n highlight: () => {\n var _this$props11 = this.props,\n cellKey = _this$props11.cellKey,\n prevCellKey = _this$props11.prevCellKey;\n this.props.onUpdateSeparators([cellKey, prevCellKey], {\n highlighted: true\n });\n },\n unhighlight: () => {\n var _this$props12 = this.props,\n cellKey = _this$props12.cellKey,\n prevCellKey = _this$props12.prevCellKey;\n this.props.onUpdateSeparators([cellKey, prevCellKey], {\n highlighted: false\n });\n },\n updateProps: (select, newProps) => {\n var _this$props13 = this.props,\n cellKey = _this$props13.cellKey,\n prevCellKey = _this$props13.prevCellKey;\n this.props.onUpdateSeparators([select === 'leading' ? prevCellKey : cellKey], newProps);\n }\n };\n }\n\n static 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 updateSeparatorProps(newProps) {\n this.setState(state => ({\n separatorProps: _objectSpread(_objectSpread({}, state.separatorProps), newProps)\n }));\n }\n\n componentWillUnmount() {\n this.props.onUnmount(this.props.cellKey);\n }\n\n _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[not-a-component] (>=0.108.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.108 was deployed. To\n * see the error, delete this comment and run Flow. */\n\n /* $FlowFixMe[incompatible-type-arg] (>=0.108.0 site=react_native_fb)\n * This comment suppresses an error found when Flow v0.108 was deployed.\n * To see the error, delete this comment and run Flow. */\n return /*#__PURE__*/React.createElement(ListItemComponent, {\n item,\n index,\n separators: this._separators\n });\n }\n\n if (renderItem) {\n return renderItem({\n item,\n 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 render() {\n var _this$props14 = this.props,\n CellRendererComponent = _this$props14.CellRendererComponent,\n ItemSeparatorComponent = _this$props14.ItemSeparatorComponent,\n fillRateHelper = _this$props14.fillRateHelper,\n horizontal = _this$props14.horizontal,\n item = _this$props14.item,\n index = _this$props14.index,\n inversionStyle = _this$props14.inversionStyle,\n parentProps = _this$props14.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[prop-missing] (>=0.68.0 site=react_native_fb) This comment\n * suppresses an error found when Flow v0.68 was deployed. To see the\n * error delete this 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[incompatible-type-arg] (>=0.89.0 site=react_native_fb) *\n This comment suppresses an error found when Flow v0.89 was deployed. *\n To see the error, delete 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}\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;","/**\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 = props => props.disabled || Array.isArray(props.accessibilityStates) && props.accessibilityStates.indexOf('disabled') > -1;\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 = _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,\n propsToAccessibilityComponent,\n propsToAriaRole\n};\nexport default AccessibilityUtil;","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","/**\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 = node => {\n if (node != null) {\n var isElement = node.nodeType === 1;\n /* Node.ELEMENT_NODE */\n\n if (isElement && typeof node.getBoundingClientRect === 'function') {\n return node.getBoundingClientRect();\n }\n }\n};\n\nexport default getBoundingClientRect;","/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module exports.\n * @public\n */\n\nexports.parse = parse;\nexports.serialize = serialize;\n\n/**\n * Module variables.\n * @private\n */\n\nvar decode = decodeURIComponent;\nvar encode = encodeURIComponent;\n\n/**\n * RegExp to match field-content in RFC 7230 sec 3.2\n *\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n * obs-text = %x80-FF\n */\n\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n *\n * @param {string} str\n * @param {object} [options]\n * @return {object}\n * @public\n */\n\nfunction parse(str, options) {\n if (typeof str !== 'string') {\n throw new TypeError('argument str must be a string');\n }\n\n var obj = {}\n var opt = options || {};\n var pairs = str.split(';')\n var dec = opt.decode || decode;\n\n for (var i = 0; i < pairs.length; i++) {\n var pair = pairs[i];\n var index = pair.indexOf('=')\n\n // skip things that don't look like key=value\n if (index < 0) {\n continue;\n }\n\n var key = pair.substring(0, index).trim()\n\n // only assign once\n if (undefined == obj[key]) {\n var val = pair.substring(index + 1, pair.length).trim()\n\n // quoted values\n if (val[0] === '\"') {\n val = val.slice(1, -1)\n }\n\n obj[key] = tryDecode(val, dec);\n }\n }\n\n return obj;\n}\n\n/**\n * Serialize data into a cookie header.\n *\n * Serialize the a name value pair into a cookie string suitable for\n * http headers. An optional options object specified cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n *\n * @param {string} name\n * @param {string} val\n * @param {object} [options]\n * @return {string}\n * @public\n */\n\nfunction serialize(name, val, options) {\n var opt = options || {};\n var enc = opt.encode || encode;\n\n if (typeof enc !== 'function') {\n throw new TypeError('option encode is invalid');\n }\n\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError('argument name is invalid');\n }\n\n var value = enc(val);\n\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError('argument val is invalid');\n }\n\n var str = name + '=' + value;\n\n if (null != opt.maxAge) {\n var maxAge = opt.maxAge - 0;\n\n if (isNaN(maxAge) || !isFinite(maxAge)) {\n throw new TypeError('option maxAge is invalid')\n }\n\n str += '; Max-Age=' + Math.floor(maxAge);\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += '; Domain=' + opt.domain;\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += '; Path=' + opt.path;\n }\n\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n\n str += '; Expires=' + opt.expires.toUTCString();\n }\n\n if (opt.httpOnly) {\n str += '; HttpOnly';\n }\n\n if (opt.secure) {\n str += '; Secure';\n }\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string'\n ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n}\n\n/**\n * Try decoding a string using a decoding function.\n *\n * @param {string} str\n * @param {function} decode\n * @private\n */\n\nfunction tryDecode(str, decode) {\n try {\n return decode(str);\n } catch (e) {\n return str;\n }\n}\n","import ReanimatedModule from './ReanimatedModule';\nimport { NativeEventEmitter } from 'react-native';\nexport default new NativeEventEmitter(ReanimatedModule);\n","import { Animated } from 'react-native';\nimport useLazyRef from './useLazyRef';\nexport default function useAnimatedValue(initialValue) {\n const {\n current\n } = useLazyRef(() => new Animated.Value(initialValue));\n return current;\n}\n//# sourceMappingURL=useAnimatedValue.js.map","import * as React from 'react';\nexport default function useLazyRef(callback) {\n const lazyRef = React.useRef();\n if (lazyRef.current === undefined) {\n lazyRef.current = callback();\n }\n return lazyRef;\n}\n//# sourceMappingURL=useLazyRef.js.map","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","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","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\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 */\nclass Alert {\n static alert() {}\n\n}\n\nexport default Alert;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 EventEmitter from '../../vendor/react-native/emitter/_EventEmitter';\nimport canUseDOM from '../../modules/canUseDom'; // Android 4.4 browser\n\nvar isPrefixed = canUseDOM && !document.hasOwnProperty('hidden') && document.hasOwnProperty('webkitHidden');\nvar EVENT_TYPES = ['change', 'memoryWarning'];\nvar VISIBILITY_CHANGE_EVENT = isPrefixed ? 'webkitvisibilitychange' : 'visibilitychange';\nvar VISIBILITY_STATE_PROPERTY = isPrefixed ? 'webkitVisibilityState' : 'visibilityState';\nvar AppStates = {\n BACKGROUND: 'background',\n ACTIVE: 'active'\n};\nvar changeEmitter = null;\nexport default class AppState {\n static get currentState() {\n if (!AppState.isAvailable) {\n return AppStates.ACTIVE;\n }\n\n switch (document[VISIBILITY_STATE_PROPERTY]) {\n case 'hidden':\n case 'prerender':\n case 'unloaded':\n return AppStates.BACKGROUND;\n\n default:\n return AppStates.ACTIVE;\n }\n }\n\n static addEventListener(type, handler) {\n if (AppState.isAvailable) {\n invariant(EVENT_TYPES.indexOf(type) !== -1, 'Trying to subscribe to unknown event: \"%s\"', type);\n\n if (type === 'change') {\n if (!changeEmitter) {\n changeEmitter = new EventEmitter();\n document.addEventListener(VISIBILITY_CHANGE_EVENT, () => {\n if (changeEmitter) {\n changeEmitter.emit('change', AppState.currentState);\n }\n }, false);\n }\n\n return changeEmitter.addListener(type, handler);\n }\n }\n }\n\n static removeEventListener(type, handler) {\n if (AppState.isAvailable) {\n console.error(\"AppState.removeListener('\" + type + \"', ...): Method has been \" + 'deprecated. Please instead use `remove()` on the subscription ' + 'returned by `AppState.addEventListener`.');\n invariant(EVENT_TYPES.indexOf(type) !== -1, 'Trying to remove listener for unknown event: \"%s\"', type);\n\n if (type === 'change' && changeEmitter) {\n changeEmitter.removeListener(handler);\n }\n }\n }\n\n}\nAppState.isAvailable = canUseDOM && document[VISIBILITY_STATE_PROPERTY];","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar clipboardAvailable;\nexport default class Clipboard {\n static isAvailable() {\n if (clipboardAvailable === undefined) {\n clipboardAvailable = typeof document.queryCommandSupported === 'function' && document.queryCommandSupported('copy');\n }\n\n return clipboardAvailable;\n }\n\n static getString() {\n return Promise.resolve('');\n }\n\n static setString(text) {\n var success = false;\n var body = document.body;\n\n if (body) {\n // add the text to a hidden node\n var node = document.createElement('span');\n node.textContent = text;\n node.style.opacity = '0';\n node.style.position = 'absolute';\n node.style.whiteSpace = 'pre-wrap';\n node.style.userSelect = 'auto';\n body.appendChild(node); // select the text\n\n var selection = window.getSelection();\n selection.removeAllRanges();\n var range = document.createRange();\n range.selectNodeContents(node);\n selection.addRange(range); // attempt to copy\n\n try {\n document.execCommand('copy');\n success = true;\n } catch (e) {} // remove selection and node\n\n\n selection.removeAllRanges();\n body.removeChild(node);\n }\n\n return success;\n }\n\n}","/**\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 Dimensions from '../Dimensions';\nimport canUseDOM from '../../modules/canUseDom';\nvar DeviceInfo = {\n Dimensions: {\n get windowPhysicalPixels() {\n var _Dimensions$get = Dimensions.get('window'),\n width = _Dimensions$get.width,\n height = _Dimensions$get.height,\n fontScale = _Dimensions$get.fontScale,\n scale = _Dimensions$get.scale;\n\n return {\n width: width * scale,\n height: height * scale,\n scale,\n fontScale\n };\n },\n\n get screenPhysicalPixels() {\n var _Dimensions$get2 = Dimensions.get('screen'),\n width = _Dimensions$get2.width,\n height = _Dimensions$get2.height,\n fontScale = _Dimensions$get2.fontScale,\n scale = _Dimensions$get2.scale;\n\n return {\n width: width * scale,\n height: height * scale,\n scale,\n fontScale\n };\n }\n\n },\n\n get locale() {\n if (canUseDOM) {\n if (navigator.languages) {\n return navigator.languages[0];\n } else {\n return navigator.language;\n }\n }\n },\n\n get totalMemory() {\n // $FlowIssue deviceMemory not defined in navigator\n return canUseDOM ? navigator.deviceMemory : undefined;\n },\n\n get userAgent() {\n return canUseDOM ? navigator.userAgent : '';\n }\n\n};\nexport default DeviceInfo;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport Platform from '../../../exports/Platform';\nimport UIManager from '../../../exports/UIManager';\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nfunction configureNext(config, onAnimationDidEnd) {\n if (!Platform.isTesting) {\n UIManager.configureNextLayoutAnimation(config, onAnimationDidEnd !== null && onAnimationDidEnd !== void 0 ? onAnimationDidEnd : function () {}, function () {}\n /* unused onError */\n );\n }\n}\n\nfunction create(duration, type, property) {\n return {\n duration,\n create: {\n type,\n property\n },\n update: {\n type\n },\n delete: {\n type,\n property\n }\n };\n}\n\nvar Presets = {\n easeInEaseOut: create(300, 'easeInEaseOut', 'opacity'),\n linear: create(500, 'linear', 'opacity'),\n spring: {\n duration: 700,\n create: {\n type: 'linear',\n property: 'opacity'\n },\n update: {\n type: 'spring',\n springDamping: 0.4\n },\n delete: {\n type: 'linear',\n property: 'opacity'\n }\n }\n};\n/**\n * Automatically animates views to their new positions when the\n * next layout happens.\n *\n * A common way to use this API is to call it before calling `setState`.\n *\n * Note that in order to get this to work on **Android** you need to set the following flags via `UIManager`:\n *\n * UIManager.setLayoutAnimationEnabledExperimental && UIManager.setLayoutAnimationEnabledExperimental(true);\n */\n\nvar LayoutAnimation = {\n /**\n * Schedules an animation to happen on the next layout.\n *\n * @param config Specifies animation properties:\n *\n * - `duration` in milliseconds\n * - `create`, `AnimationConfig` for animating in new views\n * - `update`, `AnimationConfig` for animating views that have been updated\n *\n * @param onAnimationDidEnd Called when the animation finished.\n * Only supported on iOS.\n * @param onError Called on error. Only supported on iOS.\n */\n configureNext,\n\n /**\n * Helper for creating a config for `configureNext`.\n */\n create,\n Types: Object.freeze({\n spring: 'spring',\n linear: 'linear',\n easeInEaseOut: 'easeInEaseOut',\n easeIn: 'easeIn',\n easeOut: 'easeOut',\n keyboard: 'keyboard'\n }),\n Properties: Object.freeze({\n opacity: 'opacity',\n scaleX: 'scaleX',\n scaleY: 'scaleY',\n scaleXY: 'scaleXY'\n }),\n\n checkConfig() {\n console.error('LayoutAnimation.checkConfig(...) has been disabled.');\n },\n\n Presets,\n easeInEaseOut: configureNext.bind(null, Presets.easeInEaseOut),\n linear: configureNext.bind(null, Presets.linear),\n spring: configureNext.bind(null, Presets.spring)\n};\nexport default LayoutAnimation;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport LayoutAnimation from '../../vendor/react-native/LayoutAnimation';\nexport default LayoutAnimation;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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\nclass Share {\n static 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 static get sharedAction() {\n return 'sharedAction';\n }\n /**\n * The dialog has been dismissed.\n * @platform ios\n */\n\n\n static get dismissedAction() {\n return 'dismissedAction';\n }\n\n}\n\nexport default Share;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar vibrate = pattern => {\n if ('vibrate' in window.navigator) {\n window.navigator.vibrate(pattern);\n }\n};\n\nvar Vibration = {\n cancel() {\n vibrate(0);\n },\n\n vibrate(pattern) {\n if (pattern === void 0) {\n pattern = 400;\n }\n\n vibrate(pattern);\n }\n\n};\nexport default Vibration;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport TouchableOpacity from '../TouchableOpacity';\nimport Text from '../Text';\nvar Button = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var accessibilityLabel = props.accessibilityLabel,\n color = props.color,\n disabled = props.disabled,\n onPress = props.onPress,\n testID = props.testID,\n title = props.title;\n return /*#__PURE__*/React.createElement(TouchableOpacity, {\n accessibilityLabel: accessibilityLabel,\n accessibilityRole: \"button\",\n disabled: disabled,\n focusable: !disabled,\n onPress: onPress,\n ref: forwardedRef,\n style: [styles.button, color && {\n backgroundColor: color\n }, disabled && styles.buttonDisabled],\n testID: testID\n }, /*#__PURE__*/React.createElement(Text, {\n style: [styles.text, disabled && styles.textDisabled]\n }, title));\n});\nButton.displayName = 'Button';\nvar styles = StyleSheet.create({\n button: {\n backgroundColor: '#2196F3',\n borderRadius: 2\n },\n text: {\n color: '#fff',\n fontWeight: '500',\n padding: 8,\n textAlign: 'center',\n textTransform: 'uppercase'\n },\n buttonDisabled: {\n backgroundColor: '#dfdfdf'\n },\n textDisabled: {\n color: '#a1a1a1'\n }\n});\nexport default Button;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"accessibilityReadOnly\", \"color\", \"disabled\", \"onChange\", \"onValueChange\", \"style\", \"value\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar CheckBox = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var accessibilityReadOnly = props.accessibilityReadOnly,\n color = props.color,\n disabled = props.disabled,\n onChange = props.onChange,\n onValueChange = props.onValueChange,\n style = props.style,\n value = props.value,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n function handleChange(event) {\n var value = event.nativeEvent.target.checked;\n event.nativeEvent.value = value;\n onChange && onChange(event);\n onValueChange && onValueChange(value);\n }\n\n var fakeControl = /*#__PURE__*/React.createElement(View, {\n style: [styles.fakeControl, value && styles.fakeControlChecked, // custom color\n value && color && {\n backgroundColor: color,\n borderColor: color\n }, disabled && styles.fakeControlDisabled, value && disabled && styles.fakeControlCheckedAndDisabled]\n });\n var nativeControl = createElement('input', {\n checked: value,\n disabled: disabled,\n onChange: handleChange,\n readOnly: accessibilityReadOnly,\n ref: forwardedRef,\n style: [styles.nativeControl, styles.cursorInherit],\n type: 'checkbox'\n });\n return /*#__PURE__*/React.createElement(View, _extends({}, other, {\n accessibilityDisabled: disabled,\n accessibilityReadOnly: accessibilityReadOnly,\n style: [styles.root, style, disabled && styles.cursorDefault]\n }), fakeControl, nativeControl);\n});\nCheckBox.displayName = 'CheckBox';\nvar styles = StyleSheet.create({\n root: {\n cursor: 'pointer',\n height: 16,\n userSelect: 'none',\n width: 16\n },\n cursorDefault: {\n cursor: 'default'\n },\n cursorInherit: {\n cursor: 'inherit'\n },\n fakeControl: {\n alignItems: 'center',\n backgroundColor: '#fff',\n borderColor: '#657786',\n borderRadius: 2,\n borderStyle: 'solid',\n borderWidth: 2,\n height: '100%',\n justifyContent: 'center',\n width: '100%'\n },\n fakeControlChecked: {\n backgroundColor: '#009688',\n backgroundImage: 'url(\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8cGF0aAogICAgIGQ9Ik0gMC4wNDAzODA1OSwwLjYyNjc3NjcgMC4xNDY0NDY2MSwwLjUyMDcxMDY4IDAuNDI5Mjg5MzIsMC44MDM1NTMzOSAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IE0gMC4yMTcxNTcyOSwwLjgwMzU1MzM5IDAuODUzNTUzMzksMC4xNjcxNTcyOSAwLjk1OTYxOTQxLDAuMjczMjIzMyAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IgogICAgIGlkPSJyZWN0Mzc4MCIKICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIiAvPgo8L3N2Zz4K\")',\n backgroundRepeat: 'no-repeat',\n borderColor: '#009688'\n },\n fakeControlDisabled: {\n borderColor: '#CCD6DD'\n },\n fakeControlCheckedAndDisabled: {\n backgroundColor: '#AAB8C2',\n borderColor: '#AAB8C2'\n },\n nativeControl: _objectSpread(_objectSpread({}, StyleSheet.absoluteFillObject), {}, {\n height: '100%',\n margin: 0,\n appearance: 'none',\n padding: 0,\n width: '100%'\n })\n});\nexport default CheckBox;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"children\", \"enabled\", \"onValueChange\", \"selectedValue\", \"style\", \"testID\", \"itemStyle\", \"mode\", \"prompt\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePlatformMethods from '../../modules/usePlatformMethods';\nimport PickerItem from './PickerItem';\nimport StyleSheet from '../StyleSheet';\nvar Picker = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var children = props.children,\n enabled = props.enabled,\n onValueChange = props.onValueChange,\n selectedValue = props.selectedValue,\n style = props.style,\n testID = props.testID,\n itemStyle = props.itemStyle,\n mode = props.mode,\n prompt = props.prompt,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n var hostRef = React.useRef(null);\n\n function handleChange(e) {\n var _e$target = e.target,\n selectedIndex = _e$target.selectedIndex,\n value = _e$target.value;\n\n if (onValueChange) {\n onValueChange(value, selectedIndex);\n }\n } // $FlowFixMe\n\n\n var supportedProps = _objectSpread({\n children,\n disabled: enabled === false ? true : undefined,\n onChange: handleChange,\n style: [styles.initial, style],\n testID,\n value: selectedValue\n }, other);\n\n var platformMethodsRef = usePlatformMethods(supportedProps);\n var setRef = useMergeRefs(hostRef, platformMethodsRef, forwardedRef);\n supportedProps.ref = setRef;\n return createElement('select', supportedProps);\n}); // $FlowFixMe\n\nPicker.Item = PickerItem;\nvar styles = StyleSheet.create({\n initial: {\n fontFamily: 'System',\n fontSize: 'inherit',\n margin: 0\n }\n});\nexport default Picker;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport createElement from '../createElement';\nexport default function PickerItem(props) {\n var color = props.color,\n label = props.label,\n testID = props.testID,\n value = props.value;\n var style = {\n color\n };\n return createElement('option', {\n children: label,\n style,\n testID,\n value\n });\n}","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"color\", \"indeterminate\", \"progress\", \"trackColor\", \"style\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar ProgressBar = /*#__PURE__*/React.forwardRef((props, ref) => {\n var _props$color = props.color,\n color = _props$color === void 0 ? '#1976D2' : _props$color,\n _props$indeterminate = props.indeterminate,\n indeterminate = _props$indeterminate === void 0 ? false : _props$indeterminate,\n _props$progress = props.progress,\n progress = _props$progress === void 0 ? 0 : _props$progress,\n _props$trackColor = props.trackColor,\n trackColor = _props$trackColor === void 0 ? 'transparent' : _props$trackColor,\n style = props.style,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n var percentageProgress = progress * 100;\n var width = indeterminate ? '25%' : percentageProgress + \"%\";\n return /*#__PURE__*/React.createElement(View, _extends({}, other, {\n accessibilityRole: \"progressbar\",\n accessibilityValueMax: 100,\n accessibilityValueMin: 0,\n accessibilityValueNow: indeterminate ? null : percentageProgress,\n ref: ref,\n style: [styles.track, style, {\n backgroundColor: trackColor\n }]\n }), /*#__PURE__*/React.createElement(View, {\n style: [{\n backgroundColor: color,\n width\n }, styles.progress, indeterminate && styles.animation]\n }));\n});\nProgressBar.displayName = 'ProgressBar';\nvar styles = StyleSheet.create({\n track: {\n forcedColorAdjust: 'none',\n height: 5,\n overflow: 'hidden',\n userSelect: 'none',\n zIndex: 0\n },\n progress: {\n forcedColorAdjust: 'none',\n height: '100%',\n zIndex: -1\n },\n animation: {\n animationDuration: '1s',\n animationKeyframes: [{\n '0%': {\n transform: [{\n translateX: '-100%'\n }]\n },\n '100%': {\n transform: [{\n translateX: '400%'\n }]\n }\n }],\n animationTimingFunction: 'linear',\n animationIterationCount: 'infinite'\n }\n});\nexport default ProgressBar;","/* eslint-disable */\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * From React 16.0.0\n */\nimport invariant from 'fbjs/lib/invariant';\n\nvar twoArgumentPooler = function twoArgumentPooler(a1, a2) {\n var Klass = this;\n\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2);\n return instance;\n } else {\n return new Klass(a1, a2);\n }\n};\n\nvar standardReleaser = function standardReleaser(instance) {\n var Klass = this;\n instance.destructor();\n\n if (Klass.instancePool.length < Klass.poolSize) {\n Klass.instancePool.push(instance);\n }\n};\n\nvar DEFAULT_POOL_SIZE = 10;\nvar DEFAULT_POOLER = twoArgumentPooler;\n/**\n * Augments `CopyConstructor` to be a poolable class, augmenting only the class\n * itself (statically) not adding any prototypical fields. Any CopyConstructor\n * you give this may have a `poolSize` property, and will look for a\n * prototypical `destructor` on instances.\n *\n * @param {Function} CopyConstructor Constructor that can be used to reset.\n * @param {Function} pooler Customizable pooler.\n */\n\nvar addPoolingTo = function addPoolingTo(CopyConstructor, pooler) {\n // Casting as any so that flow ignores the actual implementation and trusts\n // it to match the type we declared\n var NewKlass = CopyConstructor;\n NewKlass.instancePool = [];\n NewKlass.getPooled = pooler || DEFAULT_POOLER;\n\n if (!NewKlass.poolSize) {\n NewKlass.poolSize = DEFAULT_POOL_SIZE;\n }\n\n NewKlass.release = standardReleaser;\n return NewKlass;\n};\n\nvar PooledClass = {\n addPoolingTo: addPoolingTo,\n twoArgumentPooler: twoArgumentPooler\n};\nexport default PooledClass;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport PooledClass from '../../vendor/react-native/PooledClass';\nvar twoArgumentPooler = PooledClass.twoArgumentPooler;\n/**\n * PooledClass representing the bounding rectangle of a region.\n */\n\nfunction BoundingDimensions(width, height) {\n this.width = width;\n this.height = height;\n}\n\nBoundingDimensions.prototype.destructor = function () {\n this.width = null;\n this.height = null;\n};\n\nBoundingDimensions.getPooledFromElement = function (element) {\n return BoundingDimensions.getPooled(element.offsetWidth, element.offsetHeight);\n};\n\nPooledClass.addPoolingTo(BoundingDimensions, twoArgumentPooler);\nexport default BoundingDimensions;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\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 = 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 this._touchableNode = findNodeHandle(this);\n\n if (this._touchableNode && this._touchableNode.addEventListener) {\n this._touchableBlurListener = 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,\n pageY,\n locationX,\n 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 if (this.touchableHandleActivePressOut) {\n if (this.touchableGetPressOutDelayMS && this.touchableGetPressOutDelayMS()) {\n this.pressOutDelayTimeout = setTimeout(() => {\n this.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: _ref => {\n var color = _ref.color,\n hitSlop = _ref.hitSlop;\n\n if (!Touchable.TOUCH_TARGET_DEBUG) {\n return null;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n throw Error('Touchable.TOUCH_TARGET_DEBUG should not be enabled in prod!');\n }\n\n var debugHitSlopStyle = {};\n hitSlop = hitSlop || {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0\n };\n\n for (var key in hitSlop) {\n debugHitSlopStyle[key] = -hitSlop[key];\n }\n\n var normalizedColor = normalizeColor(color);\n\n if (typeof normalizedColor !== 'number') {\n return null;\n }\n\n var hexColor = '#' + ('00000000' + normalizedColor.toString(16)).substr(-8);\n return /*#__PURE__*/React.createElement(View, {\n pointerEvents: \"none\",\n style: _objectSpread({\n position: 'absolute',\n borderColor: hexColor.slice(0, -2) + '55',\n // More opaque\n borderWidth: 1,\n borderStyle: 'dashed',\n backgroundColor: hexColor.slice(0, -2) + '0F'\n }, debugHitSlopStyle)\n });\n }\n};\nexport default Touchable;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport VirtualizedList from '../../vendor/react-native/VirtualizedList';\nexport default VirtualizedList;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport React from 'react';\nimport UnimplementedView from '../../modules/UnimplementedView';\n\nfunction YellowBox(props) {\n return /*#__PURE__*/React.createElement(UnimplementedView, props);\n}\n\nYellowBox.ignoreWarnings = () => {};\n\nexport default YellowBox;","/**\n * Copyright (c) 2016-present, Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar LogBox = {\n ignoreLogs() {},\n\n ignoreAllLogs() {},\n\n uninstall() {},\n\n install() {}\n\n};\nexport default LogBox;","import UnimplementedView from '../../modules/UnimplementedView';\nexport default UnimplementedView;","import UnimplementedView from '../../modules/UnimplementedView';\nexport default UnimplementedView;","var promiseMock = () => Promise.resolve(false);\n\nexport default {\n PERMISSIONS: {},\n RESULTS: {},\n checkPermission: promiseMock,\n check: promiseMock,\n requestPermission: promiseMock,\n request: promiseMock,\n requestMultiple: promiseMock\n};","export default {};","export default {};","export default {};","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source 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 { useLocaleContext } from '../../modules/useLocale';\nexport default useLocaleContext;","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 { 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 {\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","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","import color from 'color';\nimport { black, pinkA100, white } from './colors';\nimport { MD2LightTheme } from './LightTheme';\nimport configureFonts from '../../fonts';\nexport const MD2DarkTheme = {\n ...MD2LightTheme,\n dark: true,\n mode: 'adaptive',\n version: 2,\n isV3: false,\n colors: {\n ...MD2LightTheme.colors,\n primary: '#BB86FC',\n accent: '#03dac6',\n background: '#121212',\n surface: '#121212',\n error: '#CF6679',\n onSurface: '#FFFFFF',\n text: white,\n disabled: color(white).alpha(0.38).rgb().string(),\n placeholder: color(white).alpha(0.54).rgb().string(),\n backdrop: color(black).alpha(0.5).rgb().string(),\n notification: pinkA100,\n tooltip: 'rgba(230, 225, 229, 1)'\n },\n fonts: configureFonts({\n isV3: false\n })\n};\n//# sourceMappingURL=DarkTheme.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { Animated, Dimensions, Easing, findNodeHandle, I18nManager, Keyboard, Platform, ScrollView, StyleSheet, View, Pressable } from 'react-native';\nimport MenuItem from './MenuItem';\nimport { APPROX_STATUSBAR_HEIGHT } from '../../constants';\nimport { withInternalTheme } from '../../core/theming';\nimport { ElevationLevels } from '../../types';\nimport { addEventListener } from '../../utils/addEventListener';\nimport { BackHandler } from '../../utils/BackHandler/BackHandler';\nimport Portal from '../Portal/Portal';\nimport Surface from '../Surface';\n// Minimum padding between the edge of the screen and the menu\nconst SCREEN_INDENT = 8;\n// From https://material.io/design/motion/speed.html#duration\nconst ANIMATION_DURATION = 250;\n// From the 'Standard easing' section of https://material.io/design/motion/speed.html#easing\nconst EASING = Easing.bezier(0.4, 0, 0.2, 1);\nconst WINDOW_LAYOUT = Dimensions.get('window');\nconst DEFAULT_ELEVATION = 2;\nexport const ELEVATION_LEVELS_MAP = Object.values(ElevationLevels);\n\n/**\n * Menus display a list of choices on temporary elevated surfaces. Their placement varies based on the element that opens them.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { View } from 'react-native';\n * import { Button, Menu, Divider, PaperProvider } from 'react-native-paper';\n *\n * const MyComponent = () => {\n * const [visible, setVisible] = React.useState(false);\n *\n * const openMenu = () => setVisible(true);\n *\n * const closeMenu = () => setVisible(false);\n *\n * return (\n * \n * \n * Show menu}>\n * {}} title=\"Item 1\" />\n * {}} title=\"Item 2\" />\n * \n * {}} title=\"Item 3\" />\n * \n * \n * \n * );\n * };\n *\n * export default MyComponent;\n * ```\n *\n * ### Note\n * When using `Menu` within a React Native's `Modal` component, you need to wrap all\n * `Modal` contents within a `PaperProvider` in order for the menu to show. This\n * wrapping is not necessary if you use Paper's `Modal` instead.\n */\nclass Menu extends React.Component {\n // @component ./MenuItem.tsx\n static Item = MenuItem;\n static defaultProps = {\n statusBarHeight: APPROX_STATUSBAR_HEIGHT,\n overlayAccessibilityLabel: 'Close menu',\n testID: 'menu'\n };\n static getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.visible && !prevState.rendered) {\n return {\n rendered: true\n };\n }\n return null;\n }\n state = {\n rendered: this.props.visible,\n top: 0,\n left: 0,\n menuLayout: {\n width: 0,\n height: 0\n },\n anchorLayout: {\n width: 0,\n height: 0\n },\n opacityAnimation: new Animated.Value(0),\n scaleAnimation: new Animated.ValueXY({\n x: 0,\n y: 0\n }),\n windowLayout: {\n width: WINDOW_LAYOUT.width,\n height: WINDOW_LAYOUT.height\n }\n };\n componentDidMount() {\n this.keyboardDidShowListener = Keyboard.addListener('keyboardDidShow', this.keyboardDidShow);\n this.keyboardDidHideListener = Keyboard.addListener('keyboardDidHide', this.keyboardDidHide);\n }\n componentDidUpdate(prevProps) {\n if (prevProps.visible !== this.props.visible) {\n this.updateVisibility();\n }\n }\n componentWillUnmount() {\n var _this$keyboardDidShow, _this$keyboardDidHide;\n this.removeListeners();\n (_this$keyboardDidShow = this.keyboardDidShowListener) === null || _this$keyboardDidShow === void 0 ? void 0 : _this$keyboardDidShow.remove();\n (_this$keyboardDidHide = this.keyboardDidHideListener) === null || _this$keyboardDidHide === void 0 ? void 0 : _this$keyboardDidHide.remove();\n }\n anchor = null;\n menu = null;\n keyboardHeight = 0;\n isCoordinate = anchor => ! /*#__PURE__*/React.isValidElement(anchor) && typeof (anchor === null || anchor === void 0 ? void 0 : anchor.x) === 'number' && typeof (anchor === null || anchor === void 0 ? void 0 : anchor.y) === 'number';\n measureMenuLayout = () => new Promise(resolve => {\n if (this.menu) {\n this.menu.measureInWindow((x, y, width, height) => {\n resolve({\n x,\n y,\n width,\n height\n });\n });\n }\n });\n measureAnchorLayout = () => new Promise(resolve => {\n const {\n anchor\n } = this.props;\n if (this.isCoordinate(anchor)) {\n resolve({\n x: anchor.x,\n y: anchor.y,\n width: 0,\n height: 0\n });\n return;\n }\n if (this.anchor) {\n this.anchor.measureInWindow((x, y, width, height) => {\n resolve({\n x,\n y,\n width,\n height\n });\n });\n }\n });\n updateVisibility = async () => {\n // Menu is rendered in Portal, which updates items asynchronously\n // We need to do the same here so that the ref is up-to-date\n await Promise.resolve();\n if (this.props.visible) {\n this.show();\n } else {\n this.hide();\n }\n };\n isBrowser = () => Platform.OS === 'web' && 'document' in global;\n focusFirstDOMNode = el => {\n if (el && this.isBrowser()) {\n // When in the browser, we want to focus the first focusable item on toggle\n // For example, when menu is shown, focus the first item in the menu\n // And when menu is dismissed, send focus back to the button to resume tabbing\n const node = findNodeHandle(el);\n const focusableNode = node.querySelector(\n // This is a rough list of selectors that can be focused\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])');\n focusableNode === null || focusableNode === void 0 ? void 0 : focusableNode.focus();\n }\n };\n handleDismiss = () => {\n if (this.props.visible) {\n var _this$props$onDismiss, _this$props;\n (_this$props$onDismiss = (_this$props = this.props).onDismiss) === null || _this$props$onDismiss === void 0 ? void 0 : _this$props$onDismiss.call(_this$props);\n }\n return true;\n };\n handleKeypress = e => {\n if (e.key === 'Escape') {\n var _this$props$onDismiss2, _this$props2;\n (_this$props$onDismiss2 = (_this$props2 = this.props).onDismiss) === null || _this$props$onDismiss2 === void 0 ? void 0 : _this$props$onDismiss2.call(_this$props2);\n }\n };\n attachListeners = () => {\n this.backHandlerSubscription = addEventListener(BackHandler, 'hardwareBackPress', this.handleDismiss);\n this.dimensionsSubscription = addEventListener(Dimensions, 'change', this.handleDismiss);\n this.isBrowser() && document.addEventListener('keyup', this.handleKeypress);\n };\n removeListeners = () => {\n var _this$backHandlerSubs, _this$dimensionsSubsc;\n (_this$backHandlerSubs = this.backHandlerSubscription) === null || _this$backHandlerSubs === void 0 ? void 0 : _this$backHandlerSubs.remove();\n (_this$dimensionsSubsc = this.dimensionsSubscription) === null || _this$dimensionsSubsc === void 0 ? void 0 : _this$dimensionsSubsc.remove();\n this.isBrowser() && document.removeEventListener('keyup', this.handleKeypress);\n };\n show = async () => {\n const windowLayout = Dimensions.get('window');\n const [menuLayout, anchorLayout] = await Promise.all([this.measureMenuLayout(), this.measureAnchorLayout()]);\n\n // When visible is true for first render\n // native views can be still not rendered and\n // measureMenuLayout/measureAnchorLayout functions\n // return wrong values e.g { x:0, y: 0, width: 0, height: 0 }\n // so we have to wait until views are ready\n // and rerun this function to show menu\n if (!windowLayout.width || !windowLayout.height || !menuLayout.width || !menuLayout.height || !anchorLayout.width && !this.isCoordinate(this.props.anchor) || !anchorLayout.height && !this.isCoordinate(this.props.anchor)) {\n requestAnimationFrame(this.show);\n return;\n }\n this.setState(() => ({\n left: anchorLayout.x,\n top: anchorLayout.y,\n anchorLayout: {\n height: anchorLayout.height,\n width: anchorLayout.width\n },\n menuLayout: {\n width: menuLayout.width,\n height: menuLayout.height\n },\n windowLayout: {\n height: windowLayout.height - this.keyboardHeight,\n width: windowLayout.width\n }\n }), () => {\n this.attachListeners();\n const {\n animation\n } = this.props.theme;\n Animated.parallel([Animated.timing(this.state.scaleAnimation, {\n toValue: {\n x: menuLayout.width,\n y: menuLayout.height\n },\n duration: ANIMATION_DURATION * animation.scale,\n easing: EASING,\n useNativeDriver: true\n }), Animated.timing(this.state.opacityAnimation, {\n toValue: 1,\n duration: ANIMATION_DURATION * animation.scale,\n easing: EASING,\n useNativeDriver: true\n })]).start(_ref => {\n let {\n finished\n } = _ref;\n if (finished) {\n this.focusFirstDOMNode(this.menu);\n }\n });\n });\n };\n hide = () => {\n this.removeListeners();\n const {\n animation\n } = this.props.theme;\n Animated.timing(this.state.opacityAnimation, {\n toValue: 0,\n duration: ANIMATION_DURATION * animation.scale,\n easing: EASING,\n useNativeDriver: true\n }).start(_ref2 => {\n let {\n finished\n } = _ref2;\n if (finished) {\n this.setState({\n menuLayout: {\n width: 0,\n height: 0\n },\n rendered: false\n });\n this.state.scaleAnimation.setValue({\n x: 0,\n y: 0\n });\n this.focusFirstDOMNode(this.anchor);\n }\n });\n };\n keyboardDidShow = e => {\n const keyboardHeight = e.endCoordinates.height;\n this.keyboardHeight = keyboardHeight;\n };\n keyboardDidHide = () => {\n this.keyboardHeight = 0;\n };\n render() {\n const {\n visible,\n anchor,\n anchorPosition,\n contentStyle,\n style,\n elevation = DEFAULT_ELEVATION,\n children,\n theme,\n statusBarHeight,\n onDismiss,\n overlayAccessibilityLabel,\n keyboardShouldPersistTaps,\n testID\n } = this.props;\n const {\n rendered,\n menuLayout,\n anchorLayout,\n opacityAnimation,\n scaleAnimation,\n windowLayout\n } = this.state;\n let {\n left,\n top\n } = this.state;\n if (!this.isCoordinate(this.anchor) && anchorPosition === 'bottom') {\n top += anchorLayout.height;\n }\n\n // I don't know why but on Android measure function is wrong by 24\n const additionalVerticalValue = Platform.select({\n android: statusBarHeight,\n default: 0\n });\n const scaleTransforms = [{\n scaleX: scaleAnimation.x.interpolate({\n inputRange: [0, menuLayout.width],\n outputRange: [0, 1]\n })\n }, {\n scaleY: scaleAnimation.y.interpolate({\n inputRange: [0, menuLayout.height],\n outputRange: [0, 1]\n })\n }];\n\n // We need to translate menu while animating scale to imitate transform origin for scale animation\n const positionTransforms = [];\n\n // Check if menu fits horizontally and if not align it to right.\n if (left <= windowLayout.width - menuLayout.width - SCREEN_INDENT) {\n positionTransforms.push({\n translateX: scaleAnimation.x.interpolate({\n inputRange: [0, menuLayout.width],\n outputRange: [-(menuLayout.width / 2), 0]\n })\n });\n\n // Check if menu position has enough space from left side\n if (left < SCREEN_INDENT) {\n left = SCREEN_INDENT;\n }\n } else {\n positionTransforms.push({\n translateX: scaleAnimation.x.interpolate({\n inputRange: [0, menuLayout.width],\n outputRange: [menuLayout.width / 2, 0]\n })\n });\n left += anchorLayout.width - menuLayout.width;\n const right = left + menuLayout.width;\n // Check if menu position has enough space from right side\n if (right > windowLayout.width - SCREEN_INDENT) {\n left = windowLayout.width - SCREEN_INDENT - menuLayout.width;\n }\n }\n\n // If the menu is larger than available vertical space,\n // calculate the height of scrollable view\n let scrollableMenuHeight = 0;\n\n // Check if the menu should be scrollable\n if (\n // Check if the menu overflows from bottom side\n top >= windowLayout.height - menuLayout.height - SCREEN_INDENT - additionalVerticalValue &&\n // And bottom side of the screen has more space than top side\n top <= windowLayout.height - top) {\n // Scrollable menu should be below the anchor (expands downwards)\n scrollableMenuHeight = windowLayout.height - top - SCREEN_INDENT - additionalVerticalValue;\n } else if (\n // Check if the menu overflows from bottom side\n top >= windowLayout.height - menuLayout.height - SCREEN_INDENT - additionalVerticalValue &&\n // And top side of the screen has more space than bottom side\n top >= windowLayout.height - top &&\n // And menu overflows from top side\n top <= menuLayout.height - anchorLayout.height + SCREEN_INDENT - additionalVerticalValue) {\n // Scrollable menu should be above the anchor (expands upwards)\n scrollableMenuHeight = top + anchorLayout.height - SCREEN_INDENT + additionalVerticalValue;\n }\n\n // Scrollable menu max height\n scrollableMenuHeight = scrollableMenuHeight > windowLayout.height - 2 * SCREEN_INDENT ? windowLayout.height - 2 * SCREEN_INDENT : scrollableMenuHeight;\n\n // Menu is typically positioned below the element that generates it\n // So first check if it fits below the anchor (expands downwards)\n if (\n // Check if menu fits vertically\n top <= windowLayout.height - menuLayout.height - SCREEN_INDENT - additionalVerticalValue ||\n // Or if the menu overflows from bottom side\n top >= windowLayout.height - menuLayout.height - SCREEN_INDENT - additionalVerticalValue &&\n // And bottom side of the screen has more space than top side\n top <= windowLayout.height - top) {\n positionTransforms.push({\n translateY: scaleAnimation.y.interpolate({\n inputRange: [0, menuLayout.height],\n outputRange: [-((scrollableMenuHeight || menuLayout.height) / 2), 0]\n })\n });\n\n // Check if menu position has enough space from top side\n if (top < SCREEN_INDENT) {\n top = SCREEN_INDENT;\n }\n } else {\n positionTransforms.push({\n translateY: scaleAnimation.y.interpolate({\n inputRange: [0, menuLayout.height],\n outputRange: [(scrollableMenuHeight || menuLayout.height) / 2, 0]\n })\n });\n top += anchorLayout.height - (scrollableMenuHeight || menuLayout.height);\n const bottom = top + (scrollableMenuHeight || menuLayout.height) + additionalVerticalValue;\n\n // Check if menu position has enough space from bottom side\n if (bottom > windowLayout.height - SCREEN_INDENT) {\n top = scrollableMenuHeight === windowLayout.height - 2 * SCREEN_INDENT ? -SCREEN_INDENT * 2 : windowLayout.height - menuLayout.height - SCREEN_INDENT - additionalVerticalValue;\n }\n }\n const shadowMenuContainerStyle = {\n opacity: opacityAnimation,\n transform: scaleTransforms,\n borderRadius: theme.roundness,\n ...(!theme.isV3 && {\n elevation: 8\n }),\n ...(scrollableMenuHeight ? {\n height: scrollableMenuHeight\n } : {})\n };\n const positionStyle = {\n top: this.isCoordinate(anchor) ? top : top + additionalVerticalValue,\n ...(I18nManager.getConstants().isRTL ? {\n right: left\n } : {\n left\n })\n };\n const pointerEvents = visible ? 'box-none' : 'none';\n return /*#__PURE__*/React.createElement(View, {\n ref: ref => {\n this.anchor = ref;\n },\n collapsable: false\n }, this.isCoordinate(anchor) ? null : anchor, rendered ? /*#__PURE__*/React.createElement(Portal, null, /*#__PURE__*/React.createElement(Pressable, {\n accessibilityLabel: overlayAccessibilityLabel,\n accessibilityRole: \"button\",\n onPress: onDismiss,\n style: styles.pressableOverlay\n }), /*#__PURE__*/React.createElement(View, {\n ref: ref => {\n this.menu = ref;\n },\n collapsable: false,\n accessibilityViewIsModal: visible,\n style: [styles.wrapper, positionStyle, style],\n pointerEvents: pointerEvents,\n onAccessibilityEscape: onDismiss,\n testID: `${testID}-view`\n }, /*#__PURE__*/React.createElement(Animated.View, {\n pointerEvents: pointerEvents,\n style: {\n transform: positionTransforms\n }\n }, /*#__PURE__*/React.createElement(Surface, _extends({\n pointerEvents: pointerEvents,\n style: [styles.shadowMenuContainer, shadowMenuContainerStyle, theme.isV3 && {\n backgroundColor: theme.colors.elevation[ELEVATION_LEVELS_MAP[elevation]]\n }, contentStyle]\n }, theme.isV3 && {\n elevation\n }, {\n testID: `${testID}-surface`,\n theme: theme\n }), scrollableMenuHeight && /*#__PURE__*/React.createElement(ScrollView, {\n keyboardShouldPersistTaps: keyboardShouldPersistTaps\n }, children) || /*#__PURE__*/React.createElement(React.Fragment, null, children))))) : null);\n }\n}\nconst styles = StyleSheet.create({\n wrapper: {\n position: 'absolute'\n },\n shadowMenuContainer: {\n opacity: 0,\n paddingVertical: 8\n },\n pressableOverlay: {\n ...StyleSheet.absoluteFillObject,\n ...(Platform.OS === 'web' && {\n cursor: 'default'\n }),\n width: '100%'\n }\n});\nexport default withInternalTheme(Menu);\n//# sourceMappingURL=Menu.js.map","import UnimplementedView from '../../modules/UnimplementedView';\nexport default UnimplementedView;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { hydrate as domHydrate, render as domRender } from 'react-dom';\nimport { createSheet } from '../StyleSheet/dom';\nexport function hydrate(element, root, callback) {\n createSheet(root);\n return domHydrate(element, root, callback);\n}\nexport default function render(element, root, callback) {\n createSheet(root);\n return domRender(element, root, callback);\n}","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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});","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 = component => component();\n\nvar wrapperComponentProvider;\n/**\n * `AppRegistry` is the JS entry point to running all React Native apps.\n */\n\nexport default class AppRegistry {\n static getAppKeys() {\n return Object.keys(runnables);\n }\n\n static 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 static registerComponent(appKey, componentProvider) {\n runnables[appKey] = {\n getApplication: appParameters => _getApplication(componentProviderInstrumentationHook(componentProvider), appParameters ? appParameters.initialProps : emptyObject, wrapperComponentProvider && wrapperComponentProvider(appParameters)),\n run: appParameters => 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 return appKey;\n }\n\n static registerConfig(config) {\n config.forEach(_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 static registerRunnable(appKey, run) {\n runnables[appKey] = {\n run\n };\n return appKey;\n }\n\n static 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 static setComponentProviderInstrumentationHook(hook) {\n componentProviderInstrumentationHook = hook;\n }\n\n static setWrapperComponentProvider(provider) {\n wrapperComponentProvider = provider;\n }\n\n static unmountApplicationComponentAtRootTag(rootTag) {\n unmountComponentAtNode(rootTag);\n }\n\n}","import _extends from \"@babel/runtime/helpers/extends\";\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 StyleSheet from '../StyleSheet';\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 = props => {\n var sheet = StyleSheet.getSheet();\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,\n getStyleElement\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 './compiler/normalizeColor';\nimport normalizeValueWithProperty from './compiler/normalizeValueWithProperty';\nvar emptyObject = {};\n/**\n * Shadows\n */\n\nvar defaultOffset = {\n height: 0,\n width: 0\n};\nexport var createBoxShadowValue = 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};\nexport var createTextShadowValue = style => {\n var textShadowColor = style.textShadowColor,\n textShadowOffset = style.textShadowOffset,\n textShadowRadius = style.textShadowRadius;\n\n var _ref2 = textShadowOffset || defaultOffset,\n height = _ref2.height,\n width = _ref2.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 return offsetX + \" \" + offsetY + \" \" + blurRadius + \" \" + color;\n }\n};\n/**\n * Preprocess styles\n */\n\nexport var preprocess = originalStyle => {\n var style = originalStyle || emptyObject;\n var nextStyle = {};\n\n for (var originalProp in style) {\n var originalValue = style[originalProp];\n var prop = originalProp;\n var value = originalValue;\n\n if (!Object.prototype.hasOwnProperty.call(style, originalProp) || originalValue == null) {\n continue;\n } // Convert shadow styles\n\n\n if (prop === 'shadowColor' || prop === 'shadowOffset' || prop === 'shadowOpacity' || prop === 'shadowRadius') {\n var boxShadowValue = createBoxShadowValue(style);\n\n if (boxShadowValue != null && nextStyle.boxShadow == null) {\n var boxShadow = style.boxShadow;\n prop = 'boxShadow';\n value = boxShadow ? boxShadow + \", \" + boxShadowValue : boxShadowValue;\n } else {\n continue;\n }\n } // Convert text shadow styles\n\n\n if (prop === 'textShadowColor' || prop === 'textShadowOffset' || prop === 'textShadowRadius') {\n var textShadowValue = createTextShadowValue(style);\n\n if (textShadowValue != null && nextStyle.textShadow == null) {\n var textShadow = style.textShadow;\n prop = 'textShadow';\n value = textShadow ? textShadow + \", \" + textShadowValue : textShadowValue;\n } else {\n continue;\n }\n }\n\n nextStyle[prop] = value;\n } // $FlowIgnore\n\n\n return nextStyle;\n};\nexport default preprocess;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 { Platform, UnavailabilityError } from 'expo-modules-core';\nimport invariant from 'invariant';\nimport { Dimensions } from 'react-native';\n\ntype PackagerAsset = {\n __packager_asset: boolean;\n fileSystemLocation: string;\n httpServerLocation: string;\n width?: number;\n height?: number;\n scales: number[];\n hash: string;\n name: string;\n type: string;\n};\n\nfunction getBasePath({ httpServerLocation }: PackagerAsset): string {\n if (httpServerLocation[0] === '/') {\n return httpServerLocation.substr(1);\n }\n return httpServerLocation;\n}\n\nexport type ResolvedAssetSource = {\n __packager_asset: boolean;\n width?: number;\n height?: number;\n uri: string;\n scale: number;\n};\n\nfunction getScale(): number {\n return Dimensions.get('window').scale;\n}\n\nfunction getScaledAssetPath(asset): string {\n const scale = AssetSourceResolver.pickScale(asset.scales, getScale());\n const scaleSuffix = scale === 1 ? '' : '@' + scale + 'x';\n const assetDir = getBasePath(asset);\n return assetDir + '/' + asset.name + scaleSuffix + (asset.type ? `.${asset.type}` : '');\n}\n\nexport default class AssetSourceResolver {\n serverUrl?: string | null;\n // where the jsbundle is being run from\n jsbundleUrl?: string | null;\n // the asset to resolve\n asset: PackagerAsset;\n\n constructor(\n serverUrl: string | undefined | null,\n jsbundleUrl: string | undefined | null,\n asset: PackagerAsset\n ) {\n this.serverUrl = serverUrl;\n this.jsbundleUrl = jsbundleUrl;\n this.asset = asset;\n }\n isLoadedFromServer(): boolean {\n return !!this.serverUrl;\n }\n isLoadedFromFileSystem(): boolean {\n return !!(this.jsbundleUrl && this.jsbundleUrl.startsWith('file://'));\n }\n defaultAsset(): ResolvedAssetSource {\n if (this.isLoadedFromServer()) {\n return this.assetServerURL();\n }\n\n return this.scaledAssetURLNearBundle();\n }\n assetServerURL(): ResolvedAssetSource {\n invariant(!!this.serverUrl, 'need server to load from');\n return this.fromSource(\n this.serverUrl +\n getScaledAssetPath(this.asset) +\n '?platform=' +\n Platform.OS +\n '&hash=' +\n this.asset.hash\n );\n }\n scaledAssetPath(): ResolvedAssetSource {\n return this.fromSource(getScaledAssetPath(this.asset));\n }\n scaledAssetURLNearBundle(): ResolvedAssetSource {\n const path = this.jsbundleUrl || '';\n return this.fromSource(path + getScaledAssetPath(this.asset));\n }\n resourceIdentifierWithoutScale(): ResolvedAssetSource {\n throw new UnavailabilityError('react-native', 'resourceIdentifierWithoutScale()');\n }\n drawableFolderInBundle(): ResolvedAssetSource {\n throw new UnavailabilityError('react-native', 'drawableFolderInBundle()');\n }\n fromSource(source: string): ResolvedAssetSource {\n return {\n __packager_asset: true,\n width: this.asset.width,\n height: this.asset.height,\n uri: source,\n scale: AssetSourceResolver.pickScale(this.asset.scales, getScale()),\n };\n }\n\n static pickScale(scales: number[], deviceScale: number): number {\n for (let i = 0; i < scales.length; i++) {\n if (scales[i] >= deviceScale) {\n return scales[i];\n }\n }\n return scales[scales.length - 1] || 1;\n }\n}\n","import { DeviceEventEmitter, EmitterSubscription } from 'react-native';\nimport { State } from '../../State';\nimport { TouchEventType } from '../../TouchEventType';\nimport {\n GestureTouchEvent,\n GestureUpdateEvent,\n GestureStateChangeEvent,\n} from '../gestureHandlerCommon';\nimport { findHandler, findOldGestureHandler } from '../handlersRegistry';\nimport { BaseGesture } from './gesture';\nimport {\n GestureStateManager,\n GestureStateManagerType,\n} from './gestureStateManager';\n\nlet gestureHandlerEventSubscription: EmitterSubscription | null = null;\nlet gestureHandlerStateChangeEventSubscription: EmitterSubscription | null =\n null;\n\nconst gestureStateManagers: Map = new Map<\n number,\n GestureStateManagerType\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\nexport function 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 gestureStateManagers.delete(event.handlerTag);\n lastUpdateEvent[handler.handlers.handlerTag] = undefined;\n }\n } else if (isTouchEvent(event)) {\n if (!gestureStateManagers.has(event.handlerTag)) {\n gestureStateManagers.set(\n event.handlerTag,\n GestureStateManager.create(event.handlerTag)\n );\n }\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const manager = gestureStateManagers.get(event.handlerTag)!;\n\n switch (event.eventType) {\n case TouchEventType.TOUCHES_DOWN:\n handler.handlers?.onTouchesDown?.(event, manager);\n break;\n case TouchEventType.TOUCHES_MOVE:\n handler.handlers?.onTouchesMove?.(event, manager);\n break;\n case TouchEventType.TOUCHES_UP:\n handler.handlers?.onTouchesUp?.(event, manager);\n break;\n case TouchEventType.TOUCHES_CANCELLED:\n handler.handlers?.onTouchesCancelled?.(event, manager);\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 } else {\n const oldHandler = findOldGestureHandler(event.handlerTag);\n if (oldHandler) {\n const nativeEvent = { nativeEvent: event };\n if (isStateChangeEvent(event)) {\n oldHandler.onGestureStateChange(nativeEvent);\n } else {\n oldHandler.onGestureEvent(nativeEvent);\n }\n return;\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 gestureHandlerEventSubscription.remove();\n gestureHandlerEventSubscription = null;\n }\n\n if (gestureHandlerStateChangeEventSubscription) {\n gestureHandlerStateChangeEventSubscription.remove();\n gestureHandlerStateChangeEventSubscription = null;\n }\n}\n","import NodeManager from '../../web/tools/NodeManager';\nimport { GestureStateManagerType } from './gestureStateManager';\n\nexport const GestureStateManager = {\n create(handlerTag: number): GestureStateManagerType {\n return {\n begin: () => {\n NodeManager.getHandler(handlerTag).begin();\n },\n\n activate: () => {\n NodeManager.getHandler(handlerTag).activate();\n },\n\n fail: () => {\n NodeManager.getHandler(handlerTag).fail();\n },\n\n end: () => {\n NodeManager.getHandler(handlerTag).end();\n },\n };\n },\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';\nconst reanimatedJS = new JSReanimated();\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","import getNamedContext from '../getNamedContext';\nconst HeaderShownContext = getNamedContext('HeaderShownContext', false);\nexport default HeaderShownContext;\n//# sourceMappingURL=HeaderShownContext.js.map","/**\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 '../../../modules/canUseDom'; // $FlowFixMe: HTMLStyleElement is incorrectly typed - https://github.com/facebook/flow/issues/2696\n\nexport default function createCSSStyleSheet(id, rootNode, textContent) {\n if (canUseDOM) {\n var root = rootNode != null ? rootNode : document;\n var element = root.getElementById(id);\n\n if (element == null) {\n element = document.createElement('style');\n element.setAttribute('id', id);\n\n if (typeof textContent === 'string') {\n element.appendChild(document.createTextNode(textContent));\n }\n\n if (root instanceof ShadowRoot) {\n root.insertBefore(element, root.firstChild);\n } else {\n var head = root.head;\n\n if (head) {\n head.insertBefore(element, head.firstChild);\n }\n }\n } // $FlowFixMe: HTMLElement is incorrectly typed\n\n\n return element.sheet;\n } else {\n return null;\n }\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\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((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() {\n return getOrderedGroups(groups).map(group => {\n var rules = groups[group].rules; // Sorting provides deterministic order of styles in group for\n // build-time extraction of the style sheet.\n\n var marker = rules.shift();\n rules.sort();\n rules.unshift(marker);\n return rules.join('\\n');\n }).join('\\n');\n },\n\n /**\n * Insert a rule into the style sheet\n */\n 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 };\n return OrderedCSSStyleSheet;\n}\n/**\n * Helper functions\n */\n\nfunction encodeGroupRule(group) {\n return \"[stylesheet-group=\\\"\" + group + \"\\\"]{}\";\n}\n\nvar groupPattern = /[\"']/g;\n\nfunction decodeGroupRule(cssRule) {\n return Number(cssRule.selectorText.split(groupPattern)[1]);\n}\n\nfunction getOrderedGroups(obj) {\n return Object.keys(obj).map(Number).sort((a, b) => a > b ? 1 : -1);\n}\n\nvar selectorPattern = /\\s*([,])\\s*/g;\n\nfunction getSelectorText(cssText) {\n var selector = cssText.split('{')[0].trim();\n return selector !== '' ? selector.replace(selectorPattern, '$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 */\nimport canUseDOM from '../../../modules/canUseDom';\nimport createCSSStyleSheet from './createCSSStyleSheet';\nimport createOrderedCSSStyleSheet from './createOrderedCSSStyleSheet';\nvar defaultId = 'react-native-stylesheet';\nvar roots = new WeakMap();\nvar sheets = [];\nvar initialRules = [// 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 function createSheet(root, id) {\n if (id === void 0) {\n id = defaultId;\n }\n\n var sheet;\n\n if (canUseDOM) {\n var rootNode = root != null ? root.getRootNode() : document; // Create the initial style sheet\n\n if (sheets.length === 0) {\n sheet = createOrderedCSSStyleSheet(createCSSStyleSheet(id));\n initialRules.forEach(rule => {\n sheet.insert(rule, 0);\n });\n roots.set(rootNode, sheets.length);\n sheets.push(sheet);\n } else {\n var index = roots.get(rootNode);\n\n if (index == null) {\n var initialSheet = sheets[0]; // If we're creating a new sheet, populate it with existing styles\n\n var textContent = initialSheet != null ? initialSheet.getTextContent() : ''; // Cast rootNode to 'any' because Flow types for getRootNode are wrong\n\n sheet = createOrderedCSSStyleSheet(createCSSStyleSheet(id, rootNode, textContent));\n roots.set(rootNode, sheets.length);\n sheets.push(sheet);\n } else {\n sheet = sheets[index];\n }\n }\n } else {\n // Create the initial style sheet\n if (sheets.length === 0) {\n sheet = createOrderedCSSStyleSheet(createCSSStyleSheet(id));\n initialRules.forEach(rule => {\n sheet.insert(rule, 0);\n });\n sheets.push(sheet);\n } else {\n sheet = sheets[0];\n }\n }\n\n return {\n getTextContent() {\n return sheet.getTextContent();\n },\n\n id,\n\n insert(cssText, groupValue) {\n sheets.forEach(s => {\n s.insert(cssText, groupValue);\n });\n }\n\n };\n}","import * as React from 'react';\nimport { View, StyleSheet } from 'react-native';\n/**\n * Portal host is the component which actually renders all Portals.\n */\nexport default class PortalManager extends React.PureComponent {\n state = {\n portals: []\n };\n mount = (key, children) => {\n this.setState(state => ({\n portals: [...state.portals, {\n key,\n children\n }]\n }));\n };\n update = (key, children) => this.setState(state => ({\n portals: state.portals.map(item => {\n if (item.key === key) {\n return {\n ...item,\n children\n };\n }\n return item;\n })\n }));\n unmount = key => this.setState(state => ({\n portals: state.portals.filter(item => item.key !== key)\n }));\n render() {\n return this.state.portals.map(_ref => {\n let {\n key,\n children\n } = _ref;\n return /*#__PURE__*/React.createElement(View, {\n key: key,\n collapsable: false /* Need collapsable=false here to clip the elevations, otherwise they appear above sibling components */,\n\n pointerEvents: \"box-none\",\n style: StyleSheet.absoluteFill\n }, children);\n });\n }\n}\n//# sourceMappingURL=PortalManager.js.map","import * as React from 'react';\nimport { View, StyleSheet } from 'react-native';\nimport PortalManager from './PortalManager';\nexport const PortalContext = /*#__PURE__*/React.createContext(null);\n\n/**\n * Portal host renders all of its children `Portal` elements.\n * For example, you can wrap a screen in `Portal.Host` to render items above the screen.\n * If you're using the `Provider` component, it already includes `Portal.Host`.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Text } from 'react-native';\n * import { Portal } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * \n * Content of the app\n * \n * );\n *\n * export default MyComponent;\n * ```\n *\n * Here any `Portal` elements under `` are rendered alongside `` and will appear above `` like a `Modal`.\n */\nexport default class PortalHost extends React.Component {\n static displayName = 'Portal.Host';\n componentDidMount() {\n const manager = this.manager;\n const queue = this.queue;\n while (queue.length && manager) {\n const action = queue.pop();\n if (action) {\n // eslint-disable-next-line default-case\n switch (action.type) {\n case 'mount':\n manager.mount(action.key, action.children);\n break;\n case 'update':\n manager.update(action.key, action.children);\n break;\n case 'unmount':\n manager.unmount(action.key);\n break;\n }\n }\n }\n }\n setManager = manager => {\n this.manager = manager;\n };\n mount = children => {\n const key = this.nextKey++;\n if (this.manager) {\n this.manager.mount(key, children);\n } else {\n this.queue.push({\n type: 'mount',\n key,\n children\n });\n }\n return key;\n };\n update = (key, children) => {\n if (this.manager) {\n this.manager.update(key, children);\n } else {\n const op = {\n type: 'mount',\n key,\n children\n };\n const index = this.queue.findIndex(o => o.type === 'mount' || o.type === 'update' && o.key === key);\n if (index > -1) {\n this.queue[index] = op;\n } else {\n this.queue.push(op);\n }\n }\n };\n unmount = key => {\n if (this.manager) {\n this.manager.unmount(key);\n } else {\n this.queue.push({\n type: 'unmount',\n key\n });\n }\n };\n nextKey = 0;\n queue = [];\n render() {\n return /*#__PURE__*/React.createElement(PortalContext.Provider, {\n value: {\n mount: this.mount,\n update: this.update,\n unmount: this.unmount\n }\n }, /*#__PURE__*/React.createElement(View, {\n style: styles.container,\n collapsable: false,\n pointerEvents: \"box-none\"\n }, this.props.children), /*#__PURE__*/React.createElement(PortalManager, {\n ref: this.setManager\n }));\n }\n}\nconst styles = StyleSheet.create({\n container: {\n flex: 1\n }\n});\n//# sourceMappingURL=PortalHost.js.map","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","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 * Ported from @react-navigation https://github.com/react-navigation/react-navigation/blob/main/packages/elements/src/SafeAreaProviderCompat.tsx\n */\nimport * as React from 'react';\nimport { Dimensions, Platform, StyleSheet, View } from 'react-native';\nimport { initialWindowMetrics, SafeAreaInsetsContext, SafeAreaProvider } from 'react-native-safe-area-context';\nconst {\n width = 0,\n height = 0\n} = Dimensions.get('window');\n\n// To support SSR on web, we need to have empty insets for initial values\n// Otherwise there can be mismatch between SSR and client output\n// We also need to specify empty values to support tests environments\nconst initialMetrics = Platform.OS === 'web' || initialWindowMetrics == null ? {\n frame: {\n x: 0,\n y: 0,\n width,\n height\n },\n insets: {\n top: 0,\n left: 0,\n right: 0,\n bottom: 0\n }\n} : initialWindowMetrics;\nexport default function SafeAreaProviderCompat(_ref) {\n let {\n children,\n style\n } = _ref;\n return /*#__PURE__*/React.createElement(SafeAreaInsetsContext.Consumer, null, insets => {\n if (insets) {\n // If we already have insets, don't wrap the stack in another safe area provider\n // This avoids an issue with updates at the cost of potentially incorrect values\n // https://github.com/react-navigation/react-navigation/issues/174\n return /*#__PURE__*/React.createElement(View, {\n style: [styles.container, style]\n }, children);\n }\n return /*#__PURE__*/React.createElement(SafeAreaProvider, {\n initialMetrics: initialMetrics,\n style: style\n }, children);\n });\n}\nSafeAreaProviderCompat.initialMetrics = initialMetrics;\nconst styles = StyleSheet.create({\n container: {\n flex: 1\n }\n});\n//# sourceMappingURL=SafeAreaProviderCompat.js.map","import * as React from 'react';\nimport { AccessibilityInfo, Appearance } from 'react-native';\nimport SafeAreaProviderCompat from './SafeAreaProviderCompat';\nimport { Provider as SettingsProvider } from './settings';\nimport { defaultThemesByVersion, ThemeProvider } from './theming';\nimport MaterialCommunityIcon from '../components/MaterialCommunityIcon';\nimport PortalHost from '../components/Portal/PortalHost';\nimport { addEventListener } from '../utils/addEventListener';\nconst PaperProvider = props => {\n const isOnlyVersionInTheme = props.theme && Object.keys(props.theme).length === 1 && props.theme.version;\n const colorSchemeName = (!props.theme || isOnlyVersionInTheme) && (Appearance === null || Appearance === void 0 ? void 0 : Appearance.getColorScheme()) || 'light';\n const [reduceMotionEnabled, setReduceMotionEnabled] = React.useState(false);\n const [colorScheme, setColorScheme] = React.useState(colorSchemeName);\n const handleAppearanceChange = preferences => {\n const {\n colorScheme\n } = preferences;\n setColorScheme(colorScheme);\n };\n React.useEffect(() => {\n let subscription;\n if (!props.theme) {\n subscription = addEventListener(AccessibilityInfo, 'reduceMotionChanged', setReduceMotionEnabled);\n }\n return () => {\n if (!props.theme) {\n var _subscription;\n (_subscription = subscription) === null || _subscription === void 0 ? void 0 : _subscription.remove();\n }\n };\n }, [props.theme]);\n React.useEffect(() => {\n let appearanceSubscription;\n if (!props.theme || isOnlyVersionInTheme) {\n appearanceSubscription = Appearance === null || Appearance === void 0 ? void 0 : Appearance.addChangeListener(handleAppearanceChange);\n }\n return () => {\n if (!props.theme || isOnlyVersionInTheme) {\n if (appearanceSubscription) {\n appearanceSubscription.remove();\n } else {\n // @ts-expect-error: We keep deprecated listener remove method for backwards compat with old RN versions\n Appearance === null || Appearance === void 0 ? void 0 : Appearance.removeChangeListener(handleAppearanceChange);\n }\n }\n };\n }, [props.theme, isOnlyVersionInTheme]);\n const getTheme = () => {\n var _props$theme, _props$theme2;\n const themeVersion = ((_props$theme = props.theme) === null || _props$theme === void 0 ? void 0 : _props$theme.version) || 3;\n const scheme = colorScheme || 'light';\n const defaultThemeBase = defaultThemesByVersion[themeVersion][scheme];\n const extendedThemeBase = {\n ...defaultThemeBase,\n ...props.theme,\n version: themeVersion,\n animation: {\n ...((_props$theme2 = props.theme) === null || _props$theme2 === void 0 ? void 0 : _props$theme2.animation),\n scale: reduceMotionEnabled ? 0 : 1\n }\n };\n return {\n ...extendedThemeBase,\n isV3: extendedThemeBase.version === 3\n };\n };\n const {\n children,\n settings\n } = props;\n return /*#__PURE__*/React.createElement(SafeAreaProviderCompat, null, /*#__PURE__*/React.createElement(PortalHost, null, /*#__PURE__*/React.createElement(SettingsProvider, {\n value: {\n icon: MaterialCommunityIcon,\n rippleEffectEnabled: true,\n ...settings\n }\n }, /*#__PURE__*/React.createElement(ThemeProvider, {\n theme: getTheme()\n }, children))));\n};\nexport default PaperProvider;\n//# sourceMappingURL=PaperProvider.js.map","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"activeOpacity\", \"children\", \"delayPressIn\", \"delayPressOut\", \"delayLongPress\", \"disabled\", \"focusable\", \"onHideUnderlay\", \"onLongPress\", \"onPress\", \"onPressIn\", \"onPressOut\", \"onShowUnderlay\", \"rejectResponderTermination\", \"style\", \"testOnly_pressed\", \"underlayColor\"];\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, _excluded);\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(() => {\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(() => {\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(() => ({\n cancelable: !rejectResponderTermination,\n disabled,\n delayLongPress,\n delayPressStart: delayPressIn,\n delayPressEnd: delayPressOut,\n onLongPress,\n onPress,\n\n onPressStart(event) {\n showUnderlay();\n\n if (onPressIn != null) {\n onPressIn(event);\n }\n },\n\n 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 pointerEvents: disabled ? 'none' : undefined,\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;","/* 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) 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) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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(() => {\n function listener(appearance) {\n setColorScheme(appearance.colorScheme);\n }\n\n var _Appearance$addChange = Appearance.addChangeListener(listener),\n remove = _Appearance$addChange.remove;\n\n return remove;\n });\n return colorScheme;\n}","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"animating\", \"color\", \"hidesWhenStopped\", \"size\", \"style\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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';\n\nvar createSvgCircle = style => /*#__PURE__*/React.createElement(\"circle\", {\n cx: \"16\",\n cy: \"16\",\n fill: \"none\",\n r: \"14\",\n strokeWidth: \"4\",\n style: style\n});\n\nvar ActivityIndicator = /*#__PURE__*/React.forwardRef((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, _excluded);\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 accessibilityValueMax: 1,\n accessibilityValueMin: 0,\n ref: forwardedRef,\n style: [styles.container, style]\n }), /*#__PURE__*/React.createElement(View, {\n children: svg,\n style: [typeof size === 'number' ? {\n height: size,\n width: size\n } : indicatorSizes[size], styles.animation, !animating && styles.animationPause, !animating && hidesWhenStopped && styles.hidesWhenStopped]\n }));\n});\nActivityIndicator.displayName = 'ActivityIndicator';\nvar styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n justifyContent: 'center'\n },\n hidesWhenStopped: {\n visibility: 'hidden'\n },\n animation: {\n animationDuration: '0.75s',\n animationKeyframes: [{\n '0%': {\n transform: [{\n rotate: '0deg'\n }]\n },\n '100%': {\n transform: [{\n rotate: '360deg'\n }]\n }\n }],\n animationTimingFunction: 'linear',\n animationIterationCount: 'infinite'\n },\n animationPause: {\n animationPlayState: 'paused'\n }\n});\nvar indicatorSizes = StyleSheet.create({\n small: {\n width: 20,\n height: 20\n },\n large: {\n width: 36,\n height: 36\n }\n});\nexport default ActivityIndicator;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { unmountComponentAtNode } from 'react-dom';\nexport default unmountComponentAtNode;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 '../../modules/canUseDom';\n\nfunction isScreenReaderEnabled() {\n return new Promise((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((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,\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,\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 = event => {\n handler(event.matches);\n };\n\n addChangeListener(listener);\n handlers[handler] = listener;\n }\n\n return {\n remove: () => AccessibilityInfo.removeEventListener(eventName, handler)\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;","import * as React from 'react';\nimport { Animated, Easing, StyleSheet, Pressable, View } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\nimport useLatestCallback from 'use-latest-callback';\nimport Surface from './Surface';\nimport { useInternalTheme } from '../core/theming';\nimport { addEventListener } from '../utils/addEventListener';\nimport { BackHandler } from '../utils/BackHandler/BackHandler';\nimport useAnimatedValue from '../utils/useAnimatedValue';\nconst DEFAULT_DURATION = 220;\nconst AnimatedPressable = Animated.createAnimatedComponent(Pressable);\n\n/**\n * The Modal component is a simple way to present content above an enclosing view.\n * To render the `Modal` above other components, you'll need to wrap it with the [`Portal`](./Portal) component.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Modal, Portal, Text, Button, PaperProvider } from 'react-native-paper';\n *\n * const MyComponent = () => {\n * const [visible, setVisible] = React.useState(false);\n *\n * const showModal = () => setVisible(true);\n * const hideModal = () => setVisible(false);\n * const containerStyle = {backgroundColor: 'white', padding: 20};\n *\n * return (\n * \n * \n * \n * Example Modal. Click outside this area to dismiss.\n * \n * \n * \n * \n * );\n * };\n *\n * export default MyComponent;\n * ```\n */\nfunction Modal(_ref) {\n var _theme$colors;\n let {\n dismissable = true,\n dismissableBackButton = dismissable,\n visible = false,\n overlayAccessibilityLabel = 'Close modal',\n onDismiss = () => {},\n children,\n contentContainerStyle,\n style,\n theme: themeOverrides,\n testID = 'modal'\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const visibleRef = React.useRef(visible);\n React.useEffect(() => {\n visibleRef.current = visible;\n });\n const onDismissCallback = useLatestCallback(onDismiss);\n const {\n scale\n } = theme.animation;\n const {\n top,\n bottom\n } = useSafeAreaInsets();\n const opacity = useAnimatedValue(visible ? 1 : 0);\n const [rendered, setRendered] = React.useState(visible);\n if (visible && !rendered) {\n setRendered(true);\n }\n const showModal = React.useCallback(() => {\n Animated.timing(opacity, {\n toValue: 1,\n duration: scale * DEFAULT_DURATION,\n easing: Easing.out(Easing.cubic),\n useNativeDriver: true\n }).start();\n }, [opacity, scale]);\n const hideModal = React.useCallback(() => {\n Animated.timing(opacity, {\n toValue: 0,\n duration: scale * DEFAULT_DURATION,\n easing: Easing.out(Easing.cubic),\n useNativeDriver: true\n }).start(_ref2 => {\n let {\n finished\n } = _ref2;\n if (!finished) {\n return;\n }\n if (visible) {\n onDismissCallback();\n }\n if (visibleRef.current) {\n showModal();\n } else {\n setRendered(false);\n }\n });\n }, [onDismissCallback, opacity, scale, showModal, visible]);\n React.useEffect(() => {\n if (!visible) {\n return undefined;\n }\n const onHardwareBackPress = () => {\n if (dismissable || dismissableBackButton) {\n hideModal();\n }\n return true;\n };\n const subscription = addEventListener(BackHandler, 'hardwareBackPress', onHardwareBackPress);\n return () => subscription.remove();\n }, [dismissable, dismissableBackButton, hideModal, visible]);\n const prevVisible = React.useRef(null);\n React.useEffect(() => {\n if (prevVisible.current !== visible) {\n if (visible) {\n showModal();\n } else {\n hideModal();\n }\n }\n prevVisible.current = visible;\n });\n if (!rendered) return null;\n return /*#__PURE__*/React.createElement(Animated.View, {\n pointerEvents: visible ? 'auto' : 'none',\n accessibilityViewIsModal: true,\n accessibilityLiveRegion: \"polite\",\n style: StyleSheet.absoluteFill,\n onAccessibilityEscape: hideModal,\n testID: testID\n }, /*#__PURE__*/React.createElement(AnimatedPressable, {\n accessibilityLabel: overlayAccessibilityLabel,\n accessibilityRole: \"button\",\n disabled: !dismissable,\n onPress: dismissable ? hideModal : undefined,\n importantForAccessibility: \"no\",\n style: [styles.backdrop, {\n backgroundColor: (_theme$colors = theme.colors) === null || _theme$colors === void 0 ? void 0 : _theme$colors.backdrop,\n opacity\n }],\n testID: `${testID}-backdrop`\n }), /*#__PURE__*/React.createElement(View, {\n style: [styles.wrapper, {\n marginTop: top,\n marginBottom: bottom\n }, style],\n pointerEvents: \"box-none\",\n testID: `${testID}-wrapper`\n }, /*#__PURE__*/React.createElement(Surface, {\n testID: `${testID}-surface`,\n theme: theme,\n style: [{\n opacity\n }, styles.content, contentContainerStyle]\n }, children)));\n}\nexport default Modal;\nconst styles = StyleSheet.create({\n backdrop: {\n flex: 1\n },\n wrapper: {\n ...StyleSheet.absoluteFillObject,\n justifyContent: 'center'\n },\n // eslint-disable-next-line react-native/no-color-literals\n content: {\n backgroundColor: 'transparent',\n justifyContent: 'center'\n }\n});\n//# sourceMappingURL=Modal.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { useInternalTheme } from '../../core/theming';\n/**\n * A component to show a list of actions inside a Card.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Card, Button } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * \n * \n * \n * \n * \n * \n * );\n *\n * export default MyComponent;\n * ```\n */\nconst CardActions = props => {\n const {\n isV3\n } = useInternalTheme(props.theme);\n const justifyContent = isV3 ? 'flex-end' : 'flex-start';\n return /*#__PURE__*/React.createElement(View, _extends({}, props, {\n style: [styles.container, props.style, {\n justifyContent\n }]\n }), React.Children.map(props.children, (child, i) => {\n return /*#__PURE__*/React.isValidElement(child) ? /*#__PURE__*/React.cloneElement(child, {\n compact: !isV3 && child.props.compact !== false,\n mode: child.props.mode || isV3 && (i === 0 ? 'outlined' : 'contained'),\n style: [isV3 && styles.button, child.props.style]\n }) : child;\n }));\n};\nCardActions.displayName = 'Card.Actions';\nconst styles = StyleSheet.create({\n container: {\n flexDirection: 'row',\n alignItems: 'center',\n padding: 8\n },\n button: {\n marginLeft: 8\n }\n});\nexport default CardActions;\n//# sourceMappingURL=CardActions.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\n/**\n * A component to show content inside a Card.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Card, Text } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * \n * \n * Card title\n * Card content\n * \n * \n * );\n *\n * export default MyComponent;\n * ```\n */\nconst CardContent = _ref => {\n let {\n index,\n total,\n siblings,\n style,\n ...rest\n } = _ref;\n const cover = 'withInternalTheme(CardCover)';\n const title = 'withInternalTheme(CardTitle)';\n let contentStyle, prev, next;\n if (typeof index === 'number' && siblings) {\n prev = siblings[index - 1];\n next = siblings[index + 1];\n }\n if (prev === cover && next === cover || prev === title && next === title || total === 1) {\n contentStyle = styles.only;\n } else if (index === 0) {\n if (next === cover || next === title) {\n contentStyle = styles.only;\n } else {\n contentStyle = styles.first;\n }\n } else if (typeof total === 'number' && index === total - 1) {\n if (prev === cover || prev === title) {\n contentStyle = styles.only;\n } else {\n contentStyle = styles.last;\n }\n } else if (prev === cover || prev === title) {\n contentStyle = styles.first;\n } else if (next === cover || next === title) {\n contentStyle = styles.last;\n }\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, {\n style: [styles.container, contentStyle, style]\n }));\n};\nCardContent.displayName = 'Card.Content';\nconst styles = StyleSheet.create({\n container: {\n paddingHorizontal: 16\n },\n first: {\n paddingTop: 16\n },\n last: {\n paddingBottom: 16\n },\n only: {\n paddingVertical: 16\n }\n});\nexport default CardContent;\n//# sourceMappingURL=CardContent.js.map","import color from 'color';\nimport { black, white } from '../../styles/themes/v2/colors';\nexport const getCardCoverStyle = _ref => {\n let {\n theme,\n index,\n total,\n borderRadiusStyles\n } = _ref;\n const {\n isV3,\n roundness\n } = theme;\n if (Object.keys(borderRadiusStyles).length > 0) {\n return {\n borderRadius: 3 * roundness,\n ...borderRadiusStyles\n };\n }\n if (isV3) {\n return {\n borderRadius: 3 * roundness\n };\n }\n if (index === 0) {\n if (total === 1) {\n return {\n borderRadius: roundness\n };\n }\n return {\n borderTopLeftRadius: roundness,\n borderTopRightRadius: roundness\n };\n }\n if (typeof total === 'number' && index === total - 1) {\n return {\n borderBottomLeftRadius: roundness\n };\n }\n return undefined;\n};\nconst getBorderColor = _ref2 => {\n let {\n theme\n } = _ref2;\n if (theme.isV3) {\n return theme.colors.outline;\n }\n if (theme.dark) {\n return color(white).alpha(0.12).rgb().string();\n }\n return color(black).alpha(0.12).rgb().string();\n};\nconst getBackgroundColor = _ref3 => {\n let {\n theme,\n isMode\n } = _ref3;\n if (theme.isV3) {\n if (isMode('contained')) {\n return theme.colors.surfaceVariant;\n }\n if (isMode('outlined')) {\n return theme.colors.surface;\n }\n }\n return undefined;\n};\nexport const getCardColors = _ref4 => {\n let {\n theme,\n mode\n } = _ref4;\n const isMode = modeToCompare => {\n return mode === modeToCompare;\n };\n return {\n backgroundColor: getBackgroundColor({\n theme,\n isMode\n }),\n borderColor: getBorderColor({\n theme\n })\n };\n};\n//# sourceMappingURL=utils.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { Image, StyleSheet, View } from 'react-native';\nimport { getCardCoverStyle } from './utils';\nimport { useInternalTheme } from '../../core/theming';\nimport { grey200 } from '../../styles/themes/v2/colors';\nimport { splitStyles } from '../../utils/splitStyles';\n/**\n * A component to show a cover image inside a Card.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Card } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * \n * \n * \n * );\n *\n * export default MyComponent;\n * ```\n *\n * @extends Image props https://reactnative.dev/docs/image#props\n */\nconst CardCover = _ref => {\n let {\n index,\n total,\n style,\n theme: themeOverrides,\n ...rest\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const flattenedStyles = StyleSheet.flatten(style) || {};\n const [, borderRadiusStyles] = splitStyles(flattenedStyles, style => style.startsWith('border') && style.endsWith('Radius'));\n const coverStyle = getCardCoverStyle({\n theme,\n index,\n total,\n borderRadiusStyles\n });\n return /*#__PURE__*/React.createElement(View, {\n style: [styles.container, coverStyle, style]\n }, /*#__PURE__*/React.createElement(Image, _extends({}, rest, {\n style: [styles.image, coverStyle],\n accessibilityIgnoresInvertColors: true\n })));\n};\nCardCover.displayName = 'Card.Cover';\nconst styles = StyleSheet.create({\n container: {\n height: 195,\n backgroundColor: grey200,\n overflow: 'hidden'\n },\n image: {\n flex: 1,\n height: undefined,\n width: undefined,\n padding: 16,\n justifyContent: 'flex-end'\n }\n});\nexport default CardCover;\n\n// @component-docs ignore-next-line\nexport { CardCover };\n//# sourceMappingURL=CardCover.js.map","import * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { useInternalTheme } from '../../core/theming';\nimport Text from '../Typography/Text';\nimport Caption from '../Typography/v2/Caption';\nimport Title from '../Typography/v2/Title';\nconst LEFT_SIZE = 40;\n\n/**\n * A component to show a title, subtitle and an avatar inside a Card.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Avatar, Card, IconButton } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * }\n * right={(props) => {}} />}\n * />\n * );\n *\n * export default MyComponent;\n * ```\n */\nconst CardTitle = _ref => {\n let {\n title,\n titleStyle,\n titleNumberOfLines = 1,\n titleVariant = 'bodyLarge',\n titleMaxFontSizeMultiplier,\n subtitle,\n subtitleStyle,\n subtitleNumberOfLines = 1,\n subtitleVariant = 'bodyMedium',\n subtitleMaxFontSizeMultiplier,\n left,\n leftStyle,\n right,\n rightStyle,\n style,\n theme: themeOverrides\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const TitleComponent = theme.isV3 ? Text : Title;\n const SubtitleComponent = theme.isV3 ? Text : Caption;\n const minHeight = subtitle || left || right ? 72 : 50;\n const marginBottom = subtitle ? 0 : 2;\n return /*#__PURE__*/React.createElement(View, {\n style: [styles.container, {\n minHeight\n }, style]\n }, left ? /*#__PURE__*/React.createElement(View, {\n style: [styles.left, leftStyle]\n }, left({\n size: LEFT_SIZE\n })) : null, /*#__PURE__*/React.createElement(View, {\n style: [styles.titles]\n }, title && /*#__PURE__*/React.createElement(TitleComponent, {\n style: [styles.title, {\n marginBottom\n }, titleStyle],\n numberOfLines: titleNumberOfLines,\n variant: titleVariant,\n maxFontSizeMultiplier: titleMaxFontSizeMultiplier\n }, title), subtitle && /*#__PURE__*/React.createElement(SubtitleComponent, {\n style: [styles.subtitle, subtitleStyle],\n numberOfLines: subtitleNumberOfLines,\n variant: subtitleVariant,\n maxFontSizeMultiplier: subtitleMaxFontSizeMultiplier\n }, subtitle)), /*#__PURE__*/React.createElement(View, {\n style: rightStyle\n }, right ? right({\n size: 24\n }) : null));\n};\nCardTitle.displayName = 'Card.Title';\nconst styles = StyleSheet.create({\n container: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n paddingLeft: 16\n },\n left: {\n justifyContent: 'center',\n marginRight: 16,\n height: LEFT_SIZE,\n width: LEFT_SIZE\n },\n titles: {\n flex: 1,\n flexDirection: 'column',\n justifyContent: 'center'\n },\n title: {\n minHeight: 30,\n paddingRight: 16\n },\n subtitle: {\n minHeight: 20,\n marginVertical: 0,\n paddingRight: 16\n }\n});\nexport default CardTitle;\n\n// @component-docs ignore-next-line\nexport { CardTitle };\n//# sourceMappingURL=CardTitle.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { Animated, StyleSheet, Pressable, View } from 'react-native';\nimport useLatestCallback from 'use-latest-callback';\nimport CardActions from './CardActions';\nimport CardContent from './CardContent';\nimport CardCover from './CardCover';\nimport CardTitle from './CardTitle';\nimport { getCardColors } from './utils';\nimport { useInternalTheme } from '../../core/theming';\nimport hasTouchHandler from '../../utils/hasTouchHandler';\nimport { splitStyles } from '../../utils/splitStyles';\nimport Surface from '../Surface';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\n/**\n * A card is a sheet of material that serves as an entry point to more detailed information.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Avatar, Button, Card, Text } from 'react-native-paper';\n *\n * const LeftContent = props => \n *\n * const MyComponent = () => (\n * \n * \n * \n * Card title\n * Card content\n * \n * \n * \n * \n * \n * \n * \n * );\n *\n * export default MyComponent;\n * ```\n */\nconst Card = _ref => {\n let {\n elevation: cardElevation = 1,\n delayLongPress,\n onPress,\n onLongPress,\n onPressOut,\n onPressIn,\n mode: cardMode = 'elevated',\n children,\n style,\n contentStyle,\n theme: themeOverrides,\n testID = 'card',\n accessible,\n disabled,\n ...rest\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const isMode = React.useCallback(modeToCompare => {\n return cardMode === modeToCompare;\n }, [cardMode]);\n const hasPassedTouchHandler = hasTouchHandler({\n onPress,\n onLongPress,\n onPressIn,\n onPressOut\n });\n\n // Default animated value\n const {\n current: elevation\n } = React.useRef(new Animated.Value(cardElevation));\n // Dark adaptive animated value, used in case of toggling the theme,\n // it prevents animating the background with native drivers inside Surface\n const {\n current: elevationDarkAdaptive\n } = React.useRef(new Animated.Value(cardElevation));\n const {\n animation,\n dark,\n mode,\n roundness,\n isV3\n } = theme;\n const prevDarkRef = React.useRef(dark);\n React.useEffect(() => {\n prevDarkRef.current = dark;\n });\n const prevDark = prevDarkRef.current;\n const isAdaptiveMode = mode === 'adaptive';\n const animationDuration = 150 * animation.scale;\n React.useEffect(() => {\n /**\n * Resets animations values if updating to dark adaptive mode,\n * otherwise, any card that is in the middle of animation while\n * toggling the theme will stay at that animated value until\n * the next press-in\n */\n if (dark && isAdaptiveMode && !prevDark) {\n elevation.setValue(cardElevation);\n elevationDarkAdaptive.setValue(cardElevation);\n }\n }, [prevDark, dark, isAdaptiveMode, cardElevation, elevation, elevationDarkAdaptive]);\n const runElevationAnimation = pressType => {\n const isPressTypeIn = pressType === 'in';\n if (dark && isAdaptiveMode) {\n Animated.timing(elevationDarkAdaptive, {\n toValue: isPressTypeIn ? isV3 ? 2 : 8 : cardElevation,\n duration: animationDuration,\n useNativeDriver: false\n }).start();\n } else {\n Animated.timing(elevation, {\n toValue: isPressTypeIn ? isV3 ? 2 : 8 : cardElevation,\n duration: animationDuration,\n useNativeDriver: false\n }).start();\n }\n };\n const handlePressIn = useLatestCallback(e => {\n onPressIn === null || onPressIn === void 0 ? void 0 : onPressIn(e);\n runElevationAnimation('in');\n });\n const handlePressOut = useLatestCallback(e => {\n onPressOut === null || onPressOut === void 0 ? void 0 : onPressOut(e);\n runElevationAnimation('out');\n });\n const total = React.Children.count(children);\n const siblings = React.Children.map(children, child => /*#__PURE__*/React.isValidElement(child) && child.type ? child.type.displayName : null);\n const computedElevation = dark && isAdaptiveMode ? elevationDarkAdaptive : elevation;\n const {\n backgroundColor,\n borderColor: themedBorderColor\n } = getCardColors({\n theme,\n mode: cardMode\n });\n const flattenedStyles = StyleSheet.flatten(style) || {};\n const {\n borderColor = themedBorderColor\n } = flattenedStyles;\n const [, borderRadiusStyles] = splitStyles(flattenedStyles, style => style.startsWith('border') && style.endsWith('Radius'));\n const borderRadiusCombinedStyles = {\n borderRadius: (isV3 ? 3 : 1) * roundness,\n ...borderRadiusStyles\n };\n const content = /*#__PURE__*/React.createElement(View, {\n style: [styles.innerContainer, contentStyle],\n testID: testID\n }, React.Children.map(children, (child, index) => /*#__PURE__*/React.isValidElement(child) ? /*#__PURE__*/React.cloneElement(child, {\n index,\n total,\n siblings,\n borderRadiusStyles\n }) : child));\n return /*#__PURE__*/React.createElement(Surface, _extends({\n style: [isV3 && !isMode('elevated') && {\n backgroundColor\n }, !isV3 && isMode('outlined') ? styles.resetElevation : {\n elevation: computedElevation\n }, borderRadiusCombinedStyles, style],\n theme: theme\n }, isV3 && {\n elevation: isMode('elevated') ? computedElevation : 0\n }, {\n testID: `${testID}-container`\n }, rest), isMode('outlined') && /*#__PURE__*/React.createElement(View, {\n pointerEvents: \"none\",\n testID: `${testID}-outline`,\n style: [{\n borderColor\n }, styles.outline, borderRadiusCombinedStyles]\n }), hasPassedTouchHandler ? /*#__PURE__*/React.createElement(Pressable, {\n accessible: accessible,\n unstable_pressDelay: 0,\n disabled: disabled,\n delayLongPress: delayLongPress,\n onLongPress: onLongPress,\n onPress: onPress,\n onPressIn: handlePressIn,\n onPressOut: handlePressOut\n }, content) : content);\n};\n\n// @component ./CardContent.tsx\nCard.Content = CardContent;\n// @component ./CardActions.tsx\nCard.Actions = CardActions;\n// @component ./CardCover.tsx\nCard.Cover = CardCover;\n// @component ./CardTitle.tsx\nCard.Title = CardTitle;\nconst styles = StyleSheet.create({\n innerContainer: {\n flexShrink: 1\n },\n outline: {\n borderWidth: 1,\n position: 'absolute',\n width: '100%',\n height: '100%',\n zIndex: 2\n },\n resetElevation: {\n elevation: 0\n }\n});\nexport default Card;\n//# sourceMappingURL=Card.js.map","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 _extends from \"@babel/runtime/helpers/extends\";\nimport _createForOfIteratorHelperLoose from \"@babel/runtime/helpers/createForOfIteratorHelperLoose\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nvar _excluded = [\"ItemSeparatorComponent\", \"SectionSeparatorComponent\", \"renderItem\", \"renderSectionFooter\", \"renderSectionHeader\", \"sections\", \"stickySectionHeadersEnabled\"];\nimport { keyExtractor as defaultKeyExtractor } from '../VirtualizeUtils';\nimport View from '../../../exports/View';\nimport VirtualizedList from '../VirtualizedList';\nimport * as React from 'react';\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 */\nclass VirtualizedSectionList extends React.PureComponent {\n constructor() {\n super(...arguments);\n\n this._keyExtractor = (item, index) => {\n var info = this._subExtractor(index);\n\n return info && info.key || String(index);\n };\n\n this._convertViewable = viewable => {\n var _info$index;\n\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 keyExtractorWithNullableIndex = info.section.keyExtractor;\n var keyExtractorWithNonNullableIndex = this.props.keyExtractor || defaultKeyExtractor;\n var key = keyExtractorWithNullableIndex != null ? keyExtractorWithNullableIndex(viewable.item, info.index) : keyExtractorWithNonNullableIndex(viewable.item, (_info$index = info.index) !== null && _info$index !== void 0 ? _info$index : 0);\n return _objectSpread(_objectSpread({}, viewable), {}, {\n index: info.index,\n key,\n section: info.section\n });\n };\n\n this._onViewableItemsChanged = _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, this).filter(Boolean),\n changed: changed.map(this._convertViewable, this).filter(Boolean)\n });\n }\n };\n\n this._renderItem = listItemCount => _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\n }) : null;\n } else {\n var renderSectionFooter = this.props.renderSectionFooter;\n return renderSectionFooter ? renderSectionFooter({\n 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 prevCellKey: (this._subExtractor(index - 1) || {}).key // Callback to provide updateHighlight for this item\n ,\n setSelfHighlightCallback: this._setUpdateHighlightFor,\n setSelfUpdatePropsCallback: this._setUpdatePropsFor // Provide child ability to set highlight/updateProps for previous item using prevCellKey\n ,\n updateHighlightFor: this._updateHighlightFor,\n updatePropsFor: this._updatePropsFor,\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 this._updatePropsFor = (cellKey, value) => {\n var updateProps = this._updatePropsMap[cellKey];\n\n if (updateProps != null) {\n updateProps(value);\n }\n };\n\n this._updateHighlightFor = (cellKey, value) => {\n var updateHighlight = this._updateHighlightMap[cellKey];\n\n if (updateHighlight != null) {\n updateHighlight(value);\n }\n };\n\n this._setUpdateHighlightFor = (cellKey, updateHighlightFn) => {\n if (updateHighlightFn != null) {\n this._updateHighlightMap[cellKey] = updateHighlightFn;\n } else {\n delete this._updateHighlightFor[cellKey];\n }\n };\n\n this._setUpdatePropsFor = (cellKey, updatePropsFn) => {\n if (updatePropsFn != null) {\n this._updatePropsMap[cellKey] = updatePropsFn;\n } else {\n delete this._updatePropsMap[cellKey];\n }\n };\n\n this._updateHighlightMap = {};\n this._updatePropsMap = {};\n\n this._captureRef = ref => {\n this._listRef = ref;\n };\n }\n\n 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,\n index\n });\n\n this._listRef.scrollToIndex(toIndexParams);\n }\n\n getListRef() {\n return this._listRef;\n }\n\n render() {\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, _excluded);\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: (sections, index) => this._getItem(this.props, sections, index),\n getItemCount: () => itemCount,\n onViewableItemsChanged: this.props.onViewableItemsChanged ? this._onViewableItemsChanged : undefined,\n ref: this._captureRef\n }));\n }\n\n _getItem(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 _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,\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,\n key: key + ':footer',\n index: null,\n header: false,\n trailingSection: sections[i + 1]\n };\n } else {\n var extractor = section.keyExtractor || keyExtractor || defaultKeyExtractor;\n return {\n 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 _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}\n\nfunction ItemWithSeparator(props) {\n var LeadingSeparatorComponent = props.LeadingSeparatorComponent,\n SeparatorComponent = props.SeparatorComponent,\n cellKey = props.cellKey,\n prevCellKey = props.prevCellKey,\n setSelfHighlightCallback = props.setSelfHighlightCallback,\n updateHighlightFor = props.updateHighlightFor,\n setSelfUpdatePropsCallback = props.setSelfUpdatePropsCallback,\n updatePropsFor = props.updatePropsFor,\n item = props.item,\n index = props.index,\n section = props.section,\n inverted = props.inverted;\n\n var _React$useState = React.useState(false),\n leadingSeparatorHiglighted = _React$useState[0],\n setLeadingSeparatorHighlighted = _React$useState[1];\n\n var _React$useState2 = React.useState(false),\n separatorHighlighted = _React$useState2[0],\n setSeparatorHighlighted = _React$useState2[1];\n\n var _React$useState3 = React.useState({\n leadingItem: props.leadingItem,\n leadingSection: props.leadingSection,\n section: props.section,\n trailingItem: props.item,\n trailingSection: props.trailingSection\n }),\n leadingSeparatorProps = _React$useState3[0],\n setLeadingSeparatorProps = _React$useState3[1];\n\n var _React$useState4 = React.useState({\n leadingItem: props.item,\n leadingSection: props.leadingSection,\n section: props.section,\n trailingItem: props.trailingItem,\n trailingSection: props.trailingSection\n }),\n separatorProps = _React$useState4[0],\n setSeparatorProps = _React$useState4[1];\n\n React.useEffect(() => {\n setSelfHighlightCallback(cellKey, setSeparatorHighlighted);\n setSelfUpdatePropsCallback(cellKey, setSeparatorProps);\n return () => {\n setSelfUpdatePropsCallback(cellKey, null);\n setSelfHighlightCallback(cellKey, null);\n };\n }, [cellKey, setSelfHighlightCallback, setSeparatorProps, setSelfUpdatePropsCallback]);\n var separators = {\n highlight: () => {\n setLeadingSeparatorHighlighted(true);\n setSeparatorHighlighted(true);\n\n if (prevCellKey != null) {\n updateHighlightFor(prevCellKey, true);\n }\n },\n unhighlight: () => {\n setLeadingSeparatorHighlighted(false);\n setSeparatorHighlighted(false);\n\n if (prevCellKey != null) {\n updateHighlightFor(prevCellKey, false);\n }\n },\n updateProps: (select, newProps) => {\n if (select === 'leading') {\n if (LeadingSeparatorComponent != null) {\n setLeadingSeparatorProps(_objectSpread(_objectSpread({}, leadingSeparatorProps), newProps));\n } else if (prevCellKey != null) {\n // update the previous item's separator\n updatePropsFor(prevCellKey, _objectSpread(_objectSpread({}, leadingSeparatorProps), newProps));\n }\n } else if (select === 'trailing' && SeparatorComponent != null) {\n setSeparatorProps(_objectSpread(_objectSpread({}, separatorProps), newProps));\n }\n }\n };\n var element = props.renderItem({\n item,\n index,\n section,\n separators\n });\n var leadingSeparator = LeadingSeparatorComponent != null && /*#__PURE__*/React.createElement(LeadingSeparatorComponent, _extends({\n highlighted: leadingSeparatorHiglighted\n }, leadingSeparatorProps));\n var separator = SeparatorComponent != null && /*#__PURE__*/React.createElement(SeparatorComponent, _extends({\n highlighted: separatorHighlighted\n }, separatorProps));\n return leadingSeparator || separator ? /*#__PURE__*/React.createElement(View, null, inverted === false ? leadingSeparator : separator, element, inverted === false ? separator : leadingSeparator) : element;\n}\n\nexport default VirtualizedSectionList;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"stickySectionHeadersEnabled\"];\nimport Platform from '../../../exports/Platform';\nimport * as React from 'react';\nimport VirtualizedSectionList from '../VirtualizedSectionList';\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 * [``](https://reactnative.dev/docs/flatlist).\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),\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 */\nexport default class SectionList extends React.PureComponent {\n constructor() {\n super(...arguments);\n\n this._captureRef = ref => {\n this._wrapperListRef = ref;\n };\n }\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 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 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 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 getScrollResponder() {\n var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n\n if (listRef) {\n return listRef.getScrollResponder();\n }\n }\n\n getScrollableNode() {\n var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n\n if (listRef) {\n return listRef.getScrollableNode();\n }\n }\n\n setNativeProps(props) {\n var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n\n if (listRef) {\n listRef.setNativeProps(props);\n }\n }\n\n render() {\n var _this$props = this.props,\n _stickySectionHeadersEnabled = _this$props.stickySectionHeadersEnabled,\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\n\n var stickySectionHeadersEnabled = _stickySectionHeadersEnabled !== null && _stickySectionHeadersEnabled !== void 0 ? _stickySectionHeadersEnabled : Platform.OS === 'ios';\n return /*#__PURE__*/React.createElement(VirtualizedSectionList, _extends({}, restProps, {\n stickySectionHeadersEnabled: stickySectionHeadersEnabled,\n ref: this._captureRef,\n getItemCount: items => items.length,\n getItem: (items, index) => items[index]\n }));\n }\n\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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;","export default {\n get forceTouchAvailable() {\n return false;\n },\n};\n","import React, { PropsWithChildren } from 'react';\nimport { tagMessage } from '../utils';\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\n// implicit `children` prop has been removed in @types/react^18.0.0\nclass ForceTouchFallback extends React.Component> {\n static forceTouchAvailable = false;\n componentDidMount() {\n console.warn(\n tagMessage(\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 }\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\nexport const forceTouchHandlerName = 'ForceTouchGestureHandler';\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: forceTouchHandlerName,\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 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","import color from 'color';\nimport { MD3LightTheme } from './LightTheme';\nimport { MD3Colors, tokens } from './tokens';\nconst {\n palette,\n opacity\n} = tokens.md.ref;\nexport const MD3DarkTheme = {\n ...MD3LightTheme,\n dark: true,\n mode: 'adaptive',\n version: 3,\n isV3: true,\n colors: {\n primary: palette.primary80,\n primaryContainer: palette.primary30,\n secondary: palette.secondary80,\n secondaryContainer: palette.secondary30,\n tertiary: palette.tertiary80,\n tertiaryContainer: palette.tertiary30,\n surface: palette.neutral10,\n surfaceVariant: palette.neutralVariant30,\n surfaceDisabled: color(palette.neutral90).alpha(opacity.level2).rgb().string(),\n background: palette.neutral10,\n error: palette.error80,\n errorContainer: palette.error30,\n onPrimary: palette.primary20,\n onPrimaryContainer: palette.primary90,\n onSecondary: palette.secondary20,\n onSecondaryContainer: palette.secondary90,\n onTertiary: palette.tertiary20,\n onTertiaryContainer: palette.tertiary90,\n onSurface: palette.neutral90,\n onSurfaceVariant: palette.neutralVariant80,\n onSurfaceDisabled: color(palette.neutral90).alpha(opacity.level4).rgb().string(),\n onError: palette.error20,\n onErrorContainer: palette.error80,\n onBackground: palette.neutral90,\n outline: palette.neutralVariant60,\n outlineVariant: palette.neutralVariant30,\n inverseSurface: palette.neutral90,\n inverseOnSurface: palette.neutral20,\n inversePrimary: palette.primary40,\n shadow: palette.neutral0,\n scrim: palette.neutral0,\n backdrop: color(MD3Colors.neutralVariant20).alpha(0.4).rgb().string(),\n elevation: {\n level0: 'transparent',\n // Note: Color values with transparency cause RN to transfer shadows to children nodes\n // instead of View component in Surface. Providing solid background fixes the issue.\n // Opaque color values generated with `palette.primary80` used as background\n level1: 'rgb(37, 35, 42)',\n // palette.primary80, alpha 0.05\n level2: 'rgb(44, 40, 49)',\n // palette.primary80, alpha 0.08\n level3: 'rgb(49, 44, 56)',\n // palette.primary80, alpha 0.11\n level4: 'rgb(51, 46, 58)',\n // palette.primary80, alpha 0.12\n level5: 'rgb(52, 49, 63)' // palette.primary80, alpha 0.14\n }\n }\n};\n//# sourceMappingURL=DarkTheme.js.map","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 */\nexport default class NativeEventEmitter {\n constructor(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 addListener(eventType, listener, context) {\n var _this$_nativeModule;\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: () => {\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 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 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(eventType, ...args);\n }\n\n 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 listenerCount(eventType) {\n return RCTDeviceEventEmitter.listenerCount(eventType);\n }\n\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"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\", \"dataSet\", \"focusable\", \"nativeID\", \"pointerEvents\", \"style\", \"testID\"];\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 StyleSheet from '../../exports/StyleSheet';\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}\n\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 = (elementType, props, options) => {\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 dataSet = _props.dataSet,\n focusable = _props.focusable,\n nativeID = _props.nativeID,\n pointerEvents = _props.pointerEvents,\n style = _props.style,\n testID = _props.testID,\n domProps = _objectWithoutPropertiesLoose(_props, _excluded);\n\n var disabled = accessibilityDisabled;\n var role = AccessibilityUtil.propsToAriaRole(props); // ACCESSIBILITY\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 = accessibilityRequired;\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 if (focusable === false) {\n domProps.tabIndex = '-1';\n }\n\n if ( // These native elements are keyboard 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 keyboard 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 } // Resolve styles\n\n\n var _StyleSheet = StyleSheet([style, pointerEvents && pointerEventsStyles[pointerEvents]], {\n writingDirection: options ? options.writingDirection : 'ltr'\n }),\n className = _StyleSheet[0],\n inlineStyle = _StyleSheet[1];\n\n if (className) {\n domProps.className = className;\n }\n\n if (inlineStyle) {\n domProps.style = inlineStyle;\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) Meta Platforms, Inc. and affiliates.\n *\n * This source 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(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}","/**\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 = () => {\n TextInputState.blurTextInput(TextInputState.currentlyFocusedField());\n};\n\nexport default dismissKeyboard;","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 * as React from 'react';\nimport { Animated, StyleSheet, View } from 'react-native';\nimport Icon, { isEqualIcon, isValidIcon } from './Icon';\nimport { useInternalTheme } from '../core/theming';\nconst CrossFadeIcon = _ref => {\n let {\n color,\n size,\n source,\n theme: themeOverrides,\n testID = 'cross-fade-icon'\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const [currentIcon, setCurrentIcon] = React.useState(() => source);\n const [previousIcon, setPreviousIcon] = React.useState(null);\n const {\n current: fade\n } = React.useRef(new Animated.Value(1));\n const {\n scale\n } = theme.animation;\n if (currentIcon !== source) {\n setPreviousIcon(() => currentIcon);\n setCurrentIcon(() => source);\n }\n React.useEffect(() => {\n if (isValidIcon(previousIcon) && !isEqualIcon(previousIcon, currentIcon)) {\n fade.setValue(1);\n Animated.timing(fade, {\n duration: scale * 200,\n toValue: 0,\n useNativeDriver: true\n }).start();\n }\n }, [currentIcon, previousIcon, fade, scale]);\n const opacityPrev = fade;\n const opacityNext = previousIcon ? fade.interpolate({\n inputRange: [0, 1],\n outputRange: [1, 0]\n }) : 1;\n const rotatePrev = fade.interpolate({\n inputRange: [0, 1],\n outputRange: ['-90deg', '0deg']\n });\n const rotateNext = previousIcon ? fade.interpolate({\n inputRange: [0, 1],\n outputRange: ['0deg', '-180deg']\n }) : '0deg';\n return /*#__PURE__*/React.createElement(View, {\n style: [styles.content, {\n height: size,\n width: size\n }]\n }, previousIcon ? /*#__PURE__*/React.createElement(Animated.View, {\n style: [styles.icon, {\n opacity: opacityPrev,\n transform: [{\n rotate: rotatePrev\n }]\n }],\n testID: `${testID}-previous`\n }, /*#__PURE__*/React.createElement(Icon, {\n source: previousIcon,\n size: size,\n color: color,\n theme: theme\n })) : null, /*#__PURE__*/React.createElement(Animated.View, {\n style: [styles.icon, {\n opacity: opacityNext,\n transform: [{\n rotate: rotateNext\n }]\n }],\n testID: `${testID}-current`\n }, /*#__PURE__*/React.createElement(Icon, {\n source: currentIcon,\n size: size,\n color: color,\n theme: theme\n })));\n};\nexport default CrossFadeIcon;\nconst styles = StyleSheet.create({\n content: {\n alignItems: 'center',\n justifyContent: 'center'\n },\n icon: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0\n }\n});\n//# sourceMappingURL=CrossFadeIcon.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { StyleSheet } from 'react-native';\nimport StyledText from './StyledText';\n// @component-group Typography\n/**\n * Typography component for showing a title.\n *\n *
\n * \n *
\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Title } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * Title\n * );\n *\n * export default MyComponent;\n * ```\n */\nconst Title = props => /*#__PURE__*/React.createElement(StyledText, _extends({}, props, {\n alpha: 0.87,\n family: \"medium\",\n style: [styles.text, props.style]\n}));\nexport default Title;\nconst styles = StyleSheet.create({\n text: {\n fontSize: 20,\n lineHeight: 30,\n marginVertical: 2,\n letterSpacing: 0.15\n }\n});\n//# sourceMappingURL=Title.js.map","function emptyFunction() {}\nexport const BackHandler = {\n exitApp: emptyFunction,\n addEventListener() {\n return {\n remove: emptyFunction\n };\n },\n removeEventListener: emptyFunction\n};\n//# sourceMappingURL=BackHandler.js.map","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 && native) {\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 subscribeForKeyboardEvents(keyboardEventData) {\n return this.InnerNativeModule.subscribeForKeyboardEvents(keyboardEventData);\n }\n unsubscribeFromKeyboardEvents(listenerId) {\n this.InnerNativeModule.unsubscribeFromKeyboardEvents(listenerId);\n }\n}\n","import * as React from 'react';\nexport default /*#__PURE__*/React.createContext(undefined);\n//# sourceMappingURL=DrawerPositionContext.js.map","'use strict';\nconst strictUriEncode = require('strict-uri-encode');\nconst decodeComponent = require('decode-uri-component');\nconst splitOnFirst = require('split-on-first');\nconst filterObject = require('filter-obj');\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\nconst encodeFragmentIdentifier = Symbol('encodeFragmentIdentifier');\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[', index, ']'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')\n\t\t\t\t];\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[]'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '[]=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'colon-list-separator':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), ':list='].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), ':list=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\tcase 'bracket-separator': {\n\t\t\tconst keyValueSep = options.arrayFormat === 'bracket-separator' ?\n\t\t\t\t'[]=' :\n\t\t\t\t'=';\n\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\t// Translate null to an empty string so that it doesn't serialize as 'null'\n\t\t\t\tvalue = value === null ? '' : value;\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), keyValueSep, encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\t\t}\n\n\t\tdefault:\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, encode(key, options)];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'colon-list-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(:list)$/.exec(key);\n\t\t\t\tkey = key.replace(/:list$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst isEncodedArray = (typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator));\n\t\t\t\tvalue = isEncodedArray ? decode(value, options) : value;\n\t\t\t\tconst newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : value === null ? value : decode(value, options);\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\n\t\tcase 'bracket-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = /(\\[\\])$/.test(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!isArray) {\n\t\t\t\t\taccumulator[key] = value ? decode(value, options) : value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst arrayValue = value === null ?\n\t\t\t\t\t[] :\n\t\t\t\t\tvalue.split(options.arrayFormatSeparator).map(item => decode(item, options));\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = arrayValue;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], arrayValue);\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parseValue(value, options) {\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\tvalue = Number(value);\n\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\tvalue = value.toLowerCase() === 'true';\n\t}\n\n\treturn value;\n}\n\nfunction parse(query, options) {\n\toptions = Object.assign({\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst ret = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn ret;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn ret;\n\t}\n\n\tfor (const param of query.split('&')) {\n\t\tif (param === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet [key, value] = splitOnFirst(options.decode ? param.replace(/\\+/g, ' ') : param, '=');\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : ['comma', 'separator', 'bracket-separator'].includes(options.arrayFormat) ? value : decode(value, options);\n\t\tformatter(decode(key, options), value, ret);\n\t}\n\n\tfor (const key of Object.keys(ret)) {\n\t\tconst value = ret[key];\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfor (const k of Object.keys(value)) {\n\t\t\t\tvalue[k] = parseValue(value[k], options);\n\t\t\t}\n\t\t} else {\n\t\t\tret[key] = parseValue(value, options);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn ret;\n\t}\n\n\treturn (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = ret[key];\n\t\tif (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(value);\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = (object, options) => {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ','\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key])) ||\n\t\t(options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const key of Object.keys(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = object[key];\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\tif (value.length === 0 && options.arrayFormat === 'bracket-separator') {\n\t\t\t\treturn encode(key, options) + '[]';\n\t\t\t}\n\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n};\n\nexports.parseUrl = (url, options) => {\n\toptions = Object.assign({\n\t\tdecode: true\n\t}, options);\n\n\tconst [url_, hash] = splitOnFirst(url, '#');\n\n\treturn Object.assign(\n\t\t{\n\t\t\turl: url_.split('?')[0] || '',\n\t\t\tquery: parse(extract(url), options)\n\t\t},\n\t\toptions && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}\n\t);\n};\n\nexports.stringifyUrl = (object, options) => {\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\t[encodeFragmentIdentifier]: true\n\t}, options);\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = exports.extract(object.url);\n\tconst parsedQueryFromUrl = exports.parse(queryFromUrl, {sort: false});\n\n\tconst query = Object.assign(parsedQueryFromUrl, object.query);\n\tlet queryString = exports.stringify(query, options);\n\tif (queryString) {\n\t\tqueryString = `?${queryString}`;\n\t}\n\n\tlet hash = getHash(object.url);\n\tif (object.fragmentIdentifier) {\n\t\thash = `#${options[encodeFragmentIdentifier] ? encode(object.fragmentIdentifier, options) : object.fragmentIdentifier}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n};\n\nexports.pick = (input, filter, options) => {\n\toptions = Object.assign({\n\t\tparseFragmentIdentifier: true,\n\t\t[encodeFragmentIdentifier]: false\n\t}, options);\n\n\tconst {url, query, fragmentIdentifier} = exports.parseUrl(input, options);\n\treturn exports.stringifyUrl({\n\t\turl,\n\t\tquery: filterObject(query, filter),\n\t\tfragmentIdentifier\n\t}, options);\n};\n\nexports.exclude = (input, filter, options) => {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn exports.pick(input, exclusionFilter, options);\n};\n","import * as React from 'react';\nimport DefaultTheme from './DefaultTheme';\nconst ThemeContext = /*#__PURE__*/React.createContext(DefaultTheme);\nThemeContext.displayName = 'ThemeContext';\nexport default ThemeContext;\n//# sourceMappingURL=ThemeContext.js.map","const DefaultTheme = {\n dark: false,\n colors: {\n primary: 'rgb(0, 122, 255)',\n background: 'rgb(242, 242, 242)',\n card: 'rgb(255, 255, 255)',\n text: 'rgb(28, 28, 30)',\n border: 'rgb(216, 216, 216)',\n notification: 'rgb(255, 59, 48)'\n }\n};\nexport default DefaultTheme;\n//# sourceMappingURL=DefaultTheme.js.map","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","// eslint-disable-next-line strict\nexport default null;\n","import * as React from 'react';\nexport default /*#__PURE__*/React.createContext(undefined);\n//# sourceMappingURL=DrawerProgressContext.js.map","import * as React from 'react';\nconst contexts = '__react_navigation__elements_contexts';\n// We use a global variable to keep our contexts so that we can reuse same contexts across packages\nglobal[contexts] = global[contexts] ?? new Map();\nexport default function getNamedContext(name, initialValue) {\n let context = global[contexts].get(name);\n if (context) {\n return context;\n }\n context = /*#__PURE__*/React.createContext(initialValue);\n context.displayName = name;\n global[contexts].set(name, context);\n return context;\n}\n//# sourceMappingURL=getNamedContext.js.map","import { Platform } from 'react-native';\nexport default function getDefaultHeaderHeight(layout, modalPresentation, statusBarHeight) {\n let headerHeight;\n const isLandscape = layout.width > layout.height;\n if (Platform.OS === 'ios') {\n if (Platform.isPad || Platform.isTV) {\n if (modalPresentation) {\n headerHeight = 56;\n } else {\n headerHeight = 50;\n }\n } else {\n if (isLandscape) {\n headerHeight = 32;\n } else {\n if (modalPresentation) {\n headerHeight = 56;\n } else {\n headerHeight = 44;\n }\n }\n }\n } else if (Platform.OS === 'android') {\n headerHeight = 56;\n } else {\n headerHeight = 64;\n }\n return headerHeight + statusBarHeight;\n}\n//# sourceMappingURL=getDefaultHeaderHeight.js.map","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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 _EventSubscription from './_EventSubscription';\n\n/**\n * EmitterSubscription represents a subscription with listener and context data.\n */\nclass EmitterSubscription extends _EventSubscription {\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 constructor(emitter, subscriber, listener, context) {\n super(subscriber);\n this.emitter = emitter;\n this.listener = listener;\n this.context = context;\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 remove() {\n this.emitter.removeSubscription(this);\n }\n\n}\n\nexport default EmitterSubscription;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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 */\nclass _EventSubscription {\n /**\n * @param {EventSubscriptionVendor} subscriber the subscriber that controls\n * this subscription.\n */\n constructor(subscriber) {\n this.subscriber = subscriber;\n }\n /**\n * Removes this subscription from the subscriber that controls it.\n */\n\n\n remove() {\n this.subscriber.removeSubscription(this);\n }\n\n}\n\nexport default _EventSubscription;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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 */\nclass EventSubscriptionVendor {\n constructor() {\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 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 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 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 getSubscriptionsForType(eventType) {\n return this._subscriptionsForType[eventType];\n }\n\n}\n\nexport default EventSubscriptionVendor;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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 = () => true;\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 */\nclass EventEmitter {\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 constructor(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 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 removeAllListeners(eventType) {\n this._subscriber.removeAllSubscriptions(eventType);\n }\n /**\n * @deprecated Use `remove` on the EventSubscription from `addListener`.\n */\n\n\n 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 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 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 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}\n\nexport default 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 */\nvar isWebColor = color => color === 'currentcolor' || color === 'currentColor' || color === 'inherit' || color.indexOf('var(') === 0;\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 '../../../modules/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 { PermissionResponse, PermissionStatus, Platform } from 'expo-modules-core';\n\nimport {\n ImagePickerAsset,\n ImagePickerResult,\n MediaTypeOptions,\n OpenFileBrowserOptions,\n} from './ImagePicker.types';\n\nconst MediaTypeInput = {\n [MediaTypeOptions.All]: 'video/mp4,video/quicktime,video/x-m4v,video/*,image/*',\n [MediaTypeOptions.Images]: 'image/*',\n [MediaTypeOptions.Videos]: 'video/mp4,video/quicktime,video/x-m4v,video/*',\n};\n\nexport default {\n get name(): string {\n return 'ExponentImagePicker';\n },\n\n async launchImageLibraryAsync({\n mediaTypes = MediaTypeOptions.Images,\n allowsMultipleSelection = false,\n base64 = false,\n }): Promise {\n // SSR guard\n if (!Platform.isDOMAvailable) {\n return { canceled: true, assets: null };\n }\n return await openFileBrowserAsync({\n mediaTypes,\n allowsMultipleSelection,\n base64,\n });\n },\n\n async launchCameraAsync({\n mediaTypes = MediaTypeOptions.Images,\n allowsMultipleSelection = false,\n base64 = false,\n }): Promise {\n // SSR guard\n if (!Platform.isDOMAvailable) {\n return { canceled: true, assets: null };\n }\n return await openFileBrowserAsync({\n mediaTypes,\n allowsMultipleSelection,\n capture: true,\n base64,\n });\n },\n\n /*\n * Delegate to expo-permissions to request camera permissions\n */\n async getCameraPermissionsAsync() {\n return permissionGrantedResponse();\n },\n async requestCameraPermissionsAsync() {\n return permissionGrantedResponse();\n },\n\n /*\n * Camera roll permissions don't need to be requested on web, so we always\n * respond with granted.\n */\n async getMediaLibraryPermissionsAsync(_writeOnly: boolean) {\n return permissionGrantedResponse();\n },\n async requestMediaLibraryPermissionsAsync(_writeOnly: boolean): Promise {\n return permissionGrantedResponse();\n },\n};\n\nfunction permissionGrantedResponse(): PermissionResponse {\n return {\n status: PermissionStatus.GRANTED,\n expires: 'never',\n granted: true,\n canAskAgain: true,\n };\n}\n\nfunction openFileBrowserAsync({\n mediaTypes,\n capture = false,\n allowsMultipleSelection = false,\n base64,\n}: OpenFileBrowserOptions): Promise {\n const mediaTypeFormat = MediaTypeInput[mediaTypes];\n\n const input = document.createElement('input');\n input.style.display = 'none';\n input.setAttribute('type', 'file');\n input.setAttribute('accept', mediaTypeFormat);\n input.setAttribute('id', String(Math.random()));\n if (allowsMultipleSelection) {\n input.setAttribute('multiple', 'multiple');\n }\n if (capture) {\n input.setAttribute('capture', 'camera');\n }\n document.body.appendChild(input);\n\n return new Promise((resolve) => {\n input.addEventListener('change', async () => {\n if (input.files) {\n const files = allowsMultipleSelection ? input.files : [input.files[0]];\n const assets: ImagePickerAsset[] = await Promise.all(\n Array.from(files).map((file) => readFile(file, { base64 }))\n );\n\n resolve({ canceled: false, assets });\n } else {\n resolve({ canceled: true, assets: null });\n }\n document.body.removeChild(input);\n });\n\n const event = new MouseEvent('click');\n input.dispatchEvent(event);\n });\n}\n\nfunction readFile(targetFile: Blob, options: { base64: boolean }): Promise {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onerror = () => {\n reject(new Error(`Failed to read the selected media because the operation failed.`));\n };\n reader.onload = ({ target }) => {\n const uri = (target as any).result;\n const returnRaw = () => resolve({ uri, width: 0, height: 0 });\n\n if (typeof uri === 'string') {\n const image = new Image();\n image.src = uri;\n image.onload = () => {\n resolve({\n uri,\n width: image.naturalWidth ?? image.width,\n height: image.naturalHeight ?? image.height,\n // The blob's result cannot be directly decoded as Base64 without\n // first removing the Data-URL declaration preceding the\n // Base64-encoded data. To retrieve only the Base64 encoded string,\n // first remove data:*/*;base64, from the result.\n // https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsDataURL\n ...(options.base64 && { base64: uri.substr(uri.indexOf(',') + 1) }),\n });\n };\n image.onerror = () => returnRaw();\n } else {\n returnRaw();\n }\n };\n\n reader.readAsDataURL(targetFile);\n });\n}\n","import {\n PermissionStatus,\n PermissionExpiration,\n PermissionHookOptions,\n PermissionResponse,\n createPermissionHook,\n UnavailabilityError,\n CodedError,\n} from 'expo-modules-core';\n\nimport ExponentImagePicker from './ExponentImagePicker';\nimport {\n CameraPermissionResponse,\n MediaLibraryPermissionResponse,\n ImagePickerResult,\n ImagePickerAsset,\n ImagePickerErrorResult,\n MediaTypeOptions,\n ImagePickerOptions,\n VideoExportPreset,\n ExpandImagePickerResult,\n ImageInfo,\n ImagePickerMultipleResult,\n ImagePickerCancelledResult,\n OpenFileBrowserOptions,\n UIImagePickerControllerQualityType,\n UIImagePickerPresentationStyle,\n} from './ImagePicker.types';\n\nfunction validateOptions(options: ImagePickerOptions) {\n const { aspect, quality, videoMaxDuration } = options;\n\n if (aspect != null) {\n const [x, y] = aspect;\n\n if (x <= 0 || y <= 0) {\n throw new CodedError(\n 'ERR_INVALID_ARGUMENT',\n `Invalid aspect ratio values ${x}:${y}. Provide positive numbers.`\n );\n }\n }\n\n if (quality && (quality < 0 || quality > 1)) {\n throw new CodedError(\n 'ERR_INVALID_ARGUMENT',\n `Invalid 'quality' value ${quality}. Provide a value between 0 and 1.`\n );\n }\n\n if (videoMaxDuration && videoMaxDuration < 0) {\n throw new CodedError(\n 'ERR_INVALID_ARGUMENT',\n `Invalid 'videoMaxDuration' value ${videoMaxDuration}. Provide a non-negative number.`\n );\n }\n\n return options;\n}\n\nconst DEPRECATED_RESULT_KEYS = [\n 'uri',\n 'assetId',\n 'width',\n 'height',\n 'type',\n 'exif',\n 'base64',\n 'duration',\n 'fileName',\n 'fileSize',\n];\nfunction mergeDeprecatedResult(result: ImagePickerResult): ImagePickerResult {\n const firstAsset = result.assets?.[0];\n const deprecatedResult = {\n ...result,\n get cancelled() {\n console.warn(\n 'Key \"cancelled\" in the image picker result is deprecated and will be removed in SDK 48, use \"canceled\" instead'\n );\n return this.canceled;\n },\n };\n for (const key of DEPRECATED_RESULT_KEYS) {\n Object.defineProperty(deprecatedResult, key, {\n get() {\n console.warn(\n `Key \"${key}\" in the image picker result is deprecated and will be removed in SDK 48, you can access selected assets through the \"assets\" array instead`\n );\n return firstAsset?.[key];\n },\n });\n }\n return deprecatedResult;\n}\n\n// @needsAudit\n/**\n * Checks user's permissions for accessing camera.\n * @return A promise that fulfills with an object of type [CameraPermissionResponse](#camerapermissionresponse).\n */\nexport async function getCameraPermissionsAsync(): Promise {\n return ExponentImagePicker.getCameraPermissionsAsync();\n}\n\n// @needsAudit\n/**\n * Checks user's permissions for accessing photos.\n * @param writeOnly Whether to request write or read and write permissions. Defaults to `false`\n * @return A promise that fulfills with an object of type [MediaLibraryPermissionResponse](#medialibrarypermissionresponse).\n */\nexport async function getMediaLibraryPermissionsAsync(\n writeOnly: boolean = false\n): Promise {\n return ExponentImagePicker.getMediaLibraryPermissionsAsync(writeOnly);\n}\n\n// @needsAudit\n/**\n * Asks the user to grant permissions for accessing camera. This does nothing on web because the\n * browser camera is not used.\n * @return A promise that fulfills with an object of type [CameraPermissionResponse](#camerarollpermissionresponse).\n */\nexport async function requestCameraPermissionsAsync(): Promise {\n return ExponentImagePicker.requestCameraPermissionsAsync();\n}\n\n// @needsAudit\n/**\n * Asks the user to grant permissions for accessing user's photo. This method does nothing on web.\n * @param writeOnly Whether to request write or read and write permissions. Defaults to `false`\n * @return A promise that fulfills with an object of type [MediaLibraryPermissionResponse](#medialibrarypermissionresponse).\n */\nexport async function requestMediaLibraryPermissionsAsync(\n writeOnly: boolean = false\n): Promise {\n const imagePickerMethod = ExponentImagePicker.requestMediaLibraryPermissionsAsync;\n return imagePickerMethod(writeOnly);\n}\n\n// @needsAudit\n/**\n * Check or request permissions to access the media library.\n * This uses both `requestMediaLibraryPermissionsAsync` and `getMediaLibraryPermissionsAsync` to interact with the permissions.\n *\n * @example\n * ```ts\n * const [status, requestPermission] = ImagePicker.useMediaLibraryPermissions();\n * ```\n */\nexport const useMediaLibraryPermissions = createPermissionHook<\n MediaLibraryPermissionResponse,\n { writeOnly?: boolean }\n>({\n // TODO(cedric): permission requesters should have an options param or a different requester\n getMethod: (options) => getMediaLibraryPermissionsAsync(options?.writeOnly),\n requestMethod: (options) => requestMediaLibraryPermissionsAsync(options?.writeOnly),\n});\n\n// @needsAudit\n/**\n * Check or request permissions to access the camera.\n * This uses both `requestCameraPermissionsAsync` and `getCameraPermissionsAsync` to interact with the permissions.\n *\n * @example\n * ```ts\n * const [status, requestPermission] = ImagePicker.useCameraPermissions();\n * ```\n */\nexport const useCameraPermissions = createPermissionHook({\n getMethod: getCameraPermissionsAsync,\n requestMethod: requestCameraPermissionsAsync,\n});\n\n// @needsAudit\n/**\n * Android system sometimes kills the `MainActivity` after the `ImagePicker` finishes. When this\n * happens, we lost the data selected from the `ImagePicker`. However, you can retrieve the lost\n * data by calling `getPendingResultAsync`. You can test this functionality by turning on\n * `Don't keep activities` in the developer options.\n * @return\n * - **On Android:** a promise that resolves to an array of objects of exactly same type as in\n * `ImagePicker.launchImageLibraryAsync` or `ImagePicker.launchCameraAsync` if the `ImagePicker`\n * finished successfully. Otherwise, to the array of [`ImagePickerErrorResult`](#imagepickerimagepickererrorresult).\n * - **On other platforms:** an empty array.\n */\nexport async function getPendingResultAsync(): Promise<\n (ImagePickerResult | ImagePickerErrorResult)[]\n> {\n if (ExponentImagePicker.getPendingResultAsync) {\n return ExponentImagePicker.getPendingResultAsync();\n }\n return [];\n}\n\n// @needsAudit\n/**\n * Display the system UI for taking a photo with the camera. Requires `Permissions.CAMERA`.\n * On Android and iOS 10 `Permissions.CAMERA_ROLL` is also required. On mobile web, this must be\n * called immediately in a user interaction like a button press, otherwise the browser will block\n * the request without a warning.\n * > **Note:** Make sure that you handle `MainActivity` destruction on **Android**. See [ImagePicker.getPendingResultAsync](#imagepickergetpendingresultasync).\n * > **Notes for Web:** The system UI can only be shown after user activation (e.g. a `Button` press).\n * Therefore, calling `launchCameraAsync` in `componentDidMount`, for example, will **not** work as\n * intended. The `cancelled` event will not be returned in the browser due to platform restrictions\n * and inconsistencies across browsers.\n * @param options An `ImagePickerOptions` object.\n * @return A promise that resolves to an object with `canceled` and `assets` fields.\n * When the user canceled the action the `assets` is always `null`, otherwise it's an array of\n * the selected media assets which have a form of [`ImagePickerAsset`](#imagepickerasset).\n */\nexport async function launchCameraAsync(\n options: ImagePickerOptions = {}\n): Promise {\n if (!ExponentImagePicker.launchCameraAsync) {\n throw new UnavailabilityError('ImagePicker', 'launchCameraAsync');\n }\n const result = await ExponentImagePicker.launchCameraAsync(validateOptions(options));\n return mergeDeprecatedResult(result);\n}\n\n// @needsAudit\n/**\n * Display the system UI for choosing an image or a video from the phone's library.\n * Requires `Permissions.MEDIA_LIBRARY` on iOS 10 only. On mobile web, this must be called\n * immediately in a user interaction like a button press, otherwise the browser will block the\n * request without a warning.\n *\n * **Animated GIFs support:** On Android, if the selected image is an animated GIF, the result image will be an\n * animated GIF too if and only if `quality` is explicitly set to `1.0` and `allowsEditing` is set to `false`.\n * Otherwise compression and/or cropper will pick the first frame of the GIF and return it as the\n * result (on Android the result will be a PNG). On iOS, both quality and cropping are supported.\n *\n * > **Notes for Web:** The system UI can only be shown after user activation (e.g. a `Button` press).\n * Therefore, calling `launchImageLibraryAsync` in `componentDidMount`, for example, will **not**\n * work as intended. The `cancelled` event will not be returned in the browser due to platform\n * restrictions and inconsistencies across browsers.\n * @param options An object extended by [`ImagePickerOptions`](#imagepickeroptions).\n * @return A promise that resolves to an object with `canceled` and `assets` fields.\n * When the user canceled the action the `assets` is always `null`, otherwise it's an array of\n * the selected media assets which have a form of [`ImagePickerAsset`](#imagepickerasset).\n */\nexport async function launchImageLibraryAsync(\n options?: ImagePickerOptions\n): Promise {\n if (!ExponentImagePicker.launchImageLibraryAsync) {\n throw new UnavailabilityError('ImagePicker', 'launchImageLibraryAsync');\n }\n if (options?.allowsEditing && options.allowsMultipleSelection) {\n console.warn(\n '[expo-image-picker] `allowsEditing` is not supported when `allowsMultipleSelection` is enabled and will be ignored.' +\n \"Disable either 'allowsEditing' or 'allowsMultipleSelection' in 'launchImageLibraryAsync' \" +\n 'to fix this warning.'\n );\n }\n const result = await ExponentImagePicker.launchImageLibraryAsync(options ?? {});\n return mergeDeprecatedResult(result);\n}\n\nexport {\n MediaTypeOptions,\n ImagePickerOptions,\n ImagePickerResult,\n ImagePickerErrorResult,\n ImagePickerAsset,\n VideoExportPreset,\n CameraPermissionResponse,\n MediaLibraryPermissionResponse,\n PermissionStatus,\n PermissionExpiration,\n PermissionHookOptions,\n PermissionResponse,\n ImageInfo, // deprecated\n ImagePickerMultipleResult, // deprecated\n ImagePickerCancelledResult, // deprecated\n OpenFileBrowserOptions,\n ExpandImagePickerResult, // deprecated\n UIImagePickerControllerQualityType,\n UIImagePickerPresentationStyle,\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 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}","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","// 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","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\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}\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/* 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'\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","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : 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}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import MaterialCommunityIcons from './build/MaterialCommunityIcons';\nexport default MaterialCommunityIcons;\n","import invariant from 'invariant';\nimport { NativeEventEmitter, NativeModules, Platform } from 'react-native';\n\nconst nativeEmitterSubscriptionKey = '@@nativeEmitterSubscription@@';\n\ntype NativeModule = {\n __expo_module_name__?: string;\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 // Expo modules installed through the JSI don't have `addListener` and `removeListeners` set,\n // so if someone wants to use them with `EventEmitter`, make sure to provide these functions\n // as they are required by `NativeEventEmitter`. This is only temporary — in the future\n // JSI modules will have event emitter built in.\n if (nativeModule.__expo_module_name__ && NativeModules.EXReactNativeEventEmitter) {\n nativeModule.addListener = (...args) =>\n NativeModules.EXReactNativeEventEmitter.addProxiedListener(\n nativeModule.__expo_module_name__,\n ...args\n );\n nativeModule.removeListeners = (...args) =>\n NativeModules.EXReactNativeEventEmitter.removeProxiedListeners(\n nativeModule.__expo_module_name__,\n ...args\n );\n }\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","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","export { MD3LightTheme } from './v3/LightTheme';\nexport { MD3DarkTheme } from './v3/DarkTheme';\nexport { MD2LightTheme } from './v2/LightTheme';\nexport { MD2DarkTheme } from './v2/DarkTheme';\n//# sourceMappingURL=index.js.map","exports.L = { bit: 1 }\nexports.M = { bit: 0 }\nexports.Q = { bit: 3 }\nexports.H = { bit: 2 }\n\nfunction fromString (string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string')\n }\n\n const lcStr = string.toLowerCase()\n\n switch (lcStr) {\n case 'l':\n case 'low':\n return exports.L\n\n case 'm':\n case 'medium':\n return exports.M\n\n case 'q':\n case 'quartile':\n return exports.Q\n\n case 'h':\n case 'high':\n return exports.H\n\n default:\n throw new Error('Unknown EC Level: ' + string)\n }\n}\n\nexports.isValid = function isValid (level) {\n return level && typeof level.bit !== 'undefined' &&\n level.bit >= 0 && level.bit < 4\n}\n\nexports.from = function from (value, defaultValue) {\n if (exports.isValid(value)) {\n return value\n }\n\n try {\n return fromString(value)\n } catch (e) {\n return defaultValue\n }\n}\n","'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","/* eslint-disable no-var, prefer-template */\nvar uppercasePattern = /[A-Z]/g\nvar msPattern = /^ms-/\nvar cache = {}\n\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase()\n}\n\nfunction hyphenateStyleName(name) {\n if (cache.hasOwnProperty(name)) {\n return cache[name]\n }\n\n var hName = name.replace(uppercasePattern, toHyphenLower)\n return (cache[name] = msPattern.test(hName) ? '-' + hName : hName)\n}\n\nexport default hyphenateStyleName\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 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\nclass SpringAnimation extends Animation {\n constructor(config) {\n var _config$overshootClam, _config$restDisplacem, _config$restSpeedThre, _config$velocity, _config$velocity2, _config$delay, _config$isInteraction, _config$iterations;\n\n super();\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 }\n\n __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 start(fromValue, onUpdate, onEnd, previousAnimation, animatedValue) {\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 = () => {\n if (this._useNativeDriver) {\n this.__startNativeAnimation(animatedValue);\n } else {\n this.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 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 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 stop() {\n super.stop();\n this.__active = false;\n clearTimeout(this._timeout);\n global.cancelAnimationFrame(this._animationFrame);\n\n this.__debouncedOnEnd({\n finished: false\n });\n }\n\n}\n\nexport default SpringAnimation;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This 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,\n fromBouncinessAndSpeed\n};","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 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\nclass TimingAnimation extends Animation {\n constructor(config) {\n var _config$easing, _config$duration, _config$delay, _config$iterations, _config$isInteraction;\n\n super();\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 }\n\n __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,\n toValue: this._toValue,\n iterations: this.__iterations\n };\n }\n\n start(fromValue, onUpdate, onEnd, previousAnimation, animatedValue) {\n this.__active = true;\n this._fromValue = fromValue;\n this._onUpdate = onUpdate;\n this.__onEnd = onEnd;\n\n var 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 (this._duration === 0 && !this._useNativeDriver) {\n this._onUpdate(this._toValue);\n\n this.__debouncedOnEnd({\n finished: true\n });\n } else {\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\n if (this._delay) {\n this._timeout = setTimeout(start, this._delay);\n } else {\n start();\n }\n }\n\n 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 stop() {\n super.stop();\n this.__active = false;\n clearTimeout(this._timeout);\n global.cancelAnimationFrame(this._animationFrame);\n\n this.__debouncedOnEnd({\n finished: false\n });\n }\n\n}\n\nexport default TimingAnimation;","// 'path' module extracted from Node.js v8.11.1 (only the posix part)\n// transplited with Babel\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError('Path must be a string. Received ' + JSON.stringify(path));\n }\n}\n\n// Resolves . and .. elements in a path with directory names\nfunction normalizeStringPosix(path, allowAboveRoot) {\n var res = '';\n var lastSegmentLength = 0;\n var lastSlash = -1;\n var dots = 0;\n var code;\n for (var i = 0; i <= path.length; ++i) {\n if (i < path.length)\n code = path.charCodeAt(i);\n else if (code === 47 /*/*/)\n break;\n else\n code = 47 /*/*/;\n if (code === 47 /*/*/) {\n if (lastSlash === i - 1 || dots === 1) {\n // NOOP\n } else if (lastSlash !== i - 1 && dots === 2) {\n if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46 /*.*/ || res.charCodeAt(res.length - 2) !== 46 /*.*/) {\n if (res.length > 2) {\n var lastSlashIndex = res.lastIndexOf('/');\n if (lastSlashIndex !== res.length - 1) {\n if (lastSlashIndex === -1) {\n res = '';\n lastSegmentLength = 0;\n } else {\n res = res.slice(0, lastSlashIndex);\n lastSegmentLength = res.length - 1 - res.lastIndexOf('/');\n }\n lastSlash = i;\n dots = 0;\n continue;\n }\n } else if (res.length === 2 || res.length === 1) {\n res = '';\n lastSegmentLength = 0;\n lastSlash = i;\n dots = 0;\n continue;\n }\n }\n if (allowAboveRoot) {\n if (res.length > 0)\n res += '/..';\n else\n res = '..';\n lastSegmentLength = 2;\n }\n } else {\n if (res.length > 0)\n res += '/' + path.slice(lastSlash + 1, i);\n else\n res = path.slice(lastSlash + 1, i);\n lastSegmentLength = i - lastSlash - 1;\n }\n lastSlash = i;\n dots = 0;\n } else if (code === 46 /*.*/ && dots !== -1) {\n ++dots;\n } else {\n dots = -1;\n }\n }\n return res;\n}\n\nfunction _format(sep, pathObject) {\n var dir = pathObject.dir || pathObject.root;\n var base = pathObject.base || (pathObject.name || '') + (pathObject.ext || '');\n if (!dir) {\n return base;\n }\n if (dir === pathObject.root) {\n return dir + base;\n }\n return dir + sep + base;\n}\n\nvar posix = {\n // path.resolve([from ...], to)\n resolve: function resolve() {\n var resolvedPath = '';\n var resolvedAbsolute = false;\n var cwd;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path;\n if (i >= 0)\n path = arguments[i];\n else {\n if (cwd === undefined)\n cwd = process.cwd();\n path = cwd;\n }\n\n assertPath(path);\n\n // Skip empty entries\n if (path.length === 0) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charCodeAt(0) === 47 /*/*/;\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute);\n\n if (resolvedAbsolute) {\n if (resolvedPath.length > 0)\n return '/' + resolvedPath;\n else\n return '/';\n } else if (resolvedPath.length > 0) {\n return resolvedPath;\n } else {\n return '.';\n }\n },\n\n normalize: function normalize(path) {\n assertPath(path);\n\n if (path.length === 0) return '.';\n\n var isAbsolute = path.charCodeAt(0) === 47 /*/*/;\n var trailingSeparator = path.charCodeAt(path.length - 1) === 47 /*/*/;\n\n // Normalize the path\n path = normalizeStringPosix(path, !isAbsolute);\n\n if (path.length === 0 && !isAbsolute) path = '.';\n if (path.length > 0 && trailingSeparator) path += '/';\n\n if (isAbsolute) return '/' + path;\n return path;\n },\n\n isAbsolute: function isAbsolute(path) {\n assertPath(path);\n return path.length > 0 && path.charCodeAt(0) === 47 /*/*/;\n },\n\n join: function join() {\n if (arguments.length === 0)\n return '.';\n var joined;\n for (var i = 0; i < arguments.length; ++i) {\n var arg = arguments[i];\n assertPath(arg);\n if (arg.length > 0) {\n if (joined === undefined)\n joined = arg;\n else\n joined += '/' + arg;\n }\n }\n if (joined === undefined)\n return '.';\n return posix.normalize(joined);\n },\n\n relative: function relative(from, to) {\n assertPath(from);\n assertPath(to);\n\n if (from === to) return '';\n\n from = posix.resolve(from);\n to = posix.resolve(to);\n\n if (from === to) return '';\n\n // Trim any leading backslashes\n var fromStart = 1;\n for (; fromStart < from.length; ++fromStart) {\n if (from.charCodeAt(fromStart) !== 47 /*/*/)\n break;\n }\n var fromEnd = from.length;\n var fromLen = fromEnd - fromStart;\n\n // Trim any leading backslashes\n var toStart = 1;\n for (; toStart < to.length; ++toStart) {\n if (to.charCodeAt(toStart) !== 47 /*/*/)\n break;\n }\n var toEnd = to.length;\n var toLen = toEnd - toStart;\n\n // Compare paths to find the longest common path from root\n var length = fromLen < toLen ? fromLen : toLen;\n var lastCommonSep = -1;\n var i = 0;\n for (; i <= length; ++i) {\n if (i === length) {\n if (toLen > length) {\n if (to.charCodeAt(toStart + i) === 47 /*/*/) {\n // We get here if `from` is the exact base path for `to`.\n // For example: from='/foo/bar'; to='/foo/bar/baz'\n return to.slice(toStart + i + 1);\n } else if (i === 0) {\n // We get here if `from` is the root\n // For example: from='/'; to='/foo'\n return to.slice(toStart + i);\n }\n } else if (fromLen > length) {\n if (from.charCodeAt(fromStart + i) === 47 /*/*/) {\n // We get here if `to` is the exact base path for `from`.\n // For example: from='/foo/bar/baz'; to='/foo/bar'\n lastCommonSep = i;\n } else if (i === 0) {\n // We get here if `to` is the root.\n // For example: from='/foo'; to='/'\n lastCommonSep = 0;\n }\n }\n break;\n }\n var fromCode = from.charCodeAt(fromStart + i);\n var toCode = to.charCodeAt(toStart + i);\n if (fromCode !== toCode)\n break;\n else if (fromCode === 47 /*/*/)\n lastCommonSep = i;\n }\n\n var out = '';\n // Generate the relative path based on the path difference between `to`\n // and `from`\n for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {\n if (i === fromEnd || from.charCodeAt(i) === 47 /*/*/) {\n if (out.length === 0)\n out += '..';\n else\n out += '/..';\n }\n }\n\n // Lastly, append the rest of the destination (`to`) path that comes after\n // the common path parts\n if (out.length > 0)\n return out + to.slice(toStart + lastCommonSep);\n else {\n toStart += lastCommonSep;\n if (to.charCodeAt(toStart) === 47 /*/*/)\n ++toStart;\n return to.slice(toStart);\n }\n },\n\n _makeLong: function _makeLong(path) {\n return path;\n },\n\n dirname: function dirname(path) {\n assertPath(path);\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) return '//';\n return path.slice(0, end);\n },\n\n basename: function basename(path, ext) {\n if (ext !== undefined && typeof ext !== 'string') throw new TypeError('\"ext\" argument must be a string');\n assertPath(path);\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n if (ext !== undefined && ext.length > 0 && ext.length <= path.length) {\n if (ext.length === path.length && ext === path) return '';\n var extIdx = ext.length - 1;\n var firstNonSlashEnd = -1;\n for (i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else {\n if (firstNonSlashEnd === -1) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching\n matchedSlash = false;\n firstNonSlashEnd = i + 1;\n }\n if (extIdx >= 0) {\n // Try to match the explicit extension\n if (code === ext.charCodeAt(extIdx)) {\n if (--extIdx === -1) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = i;\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIdx = -1;\n end = firstNonSlashEnd;\n }\n }\n }\n }\n\n if (start === end) end = firstNonSlashEnd;else if (end === -1) end = path.length;\n return path.slice(start, end);\n } else {\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n }\n },\n\n extname: function extname(path) {\n assertPath(path);\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n },\n\n format: function format(pathObject) {\n if (pathObject === null || typeof pathObject !== 'object') {\n throw new TypeError('The \"pathObject\" argument must be of type Object. Received type ' + typeof pathObject);\n }\n return _format('/', pathObject);\n },\n\n parse: function parse(path) {\n assertPath(path);\n\n var ret = { root: '', dir: '', base: '', ext: '', name: '' };\n if (path.length === 0) return ret;\n var code = path.charCodeAt(0);\n var isAbsolute = code === 47 /*/*/;\n var start;\n if (isAbsolute) {\n ret.root = '/';\n start = 1;\n } else {\n start = 0;\n }\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n var i = path.length - 1;\n\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n\n // Get non-dir info\n for (; i >= start; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n if (end !== -1) {\n if (startPart === 0 && isAbsolute) ret.base = ret.name = path.slice(1, end);else ret.base = ret.name = path.slice(startPart, end);\n }\n } else {\n if (startPart === 0 && isAbsolute) {\n ret.name = path.slice(1, startDot);\n ret.base = path.slice(1, end);\n } else {\n ret.name = path.slice(startPart, startDot);\n ret.base = path.slice(startPart, end);\n }\n ret.ext = path.slice(startDot, end);\n }\n\n if (startPart > 0) ret.dir = path.slice(0, startPart - 1);else if (isAbsolute) ret.dir = '/';\n\n return ret;\n },\n\n sep: '/',\n delimiter: ':',\n win32: null,\n posix: null\n};\n\nposix.posix = posix;\n\nmodule.exports = posix;\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","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","import * as React from 'react';\nimport { Animated, I18nManager, Platform, StyleSheet, View } from 'react-native';\nimport useLatestCallback from 'use-latest-callback';\nimport { TabBarIndicator } from './TabBarIndicator';\nimport { TabBarItem } from './TabBarItem';\nimport { useAnimatedValue } from './useAnimatedValue';\nconst Separator = _ref => {\n let {\n width\n } = _ref;\n return /*#__PURE__*/React.createElement(View, {\n style: {\n width\n }\n });\n};\nconst getFlattenedTabWidth = style => {\n const tabStyle = StyleSheet.flatten(style);\n return tabStyle === null || tabStyle === void 0 ? void 0 : tabStyle.width;\n};\nconst getComputedTabWidth = (index, layout, routes, scrollEnabled, tabWidths, flattenedWidth) => {\n if (flattenedWidth === 'auto') {\n return tabWidths[routes[index].key] || 0;\n }\n switch (typeof flattenedWidth) {\n case 'number':\n return flattenedWidth;\n case 'string':\n if (flattenedWidth.endsWith('%')) {\n const width = parseFloat(flattenedWidth);\n if (Number.isFinite(width)) {\n return layout.width * (width / 100);\n }\n }\n }\n if (scrollEnabled) {\n return layout.width / 5 * 2;\n }\n return layout.width / routes.length;\n};\nconst getMaxScrollDistance = (tabBarWidth, layoutWidth) => tabBarWidth - layoutWidth;\nconst getTranslateX = (scrollAmount, maxScrollDistance) => Animated.multiply(Platform.OS === 'android' && I18nManager.isRTL ? Animated.add(maxScrollDistance, Animated.multiply(scrollAmount, -1)) : scrollAmount, I18nManager.isRTL ? 1 : -1);\nconst getTabBarWidth = _ref2 => {\n let {\n navigationState,\n layout,\n gap,\n scrollEnabled,\n flattenedTabWidth,\n tabWidths\n } = _ref2;\n const {\n routes\n } = navigationState;\n return routes.reduce((acc, _, i) => acc + (i > 0 ? gap ?? 0 : 0) + getComputedTabWidth(i, layout, routes, scrollEnabled, tabWidths, flattenedTabWidth), 0);\n};\nconst normalizeScrollValue = _ref3 => {\n let {\n layout,\n navigationState,\n gap,\n scrollEnabled,\n tabWidths,\n value,\n flattenedTabWidth\n } = _ref3;\n const tabBarWidth = getTabBarWidth({\n layout,\n navigationState,\n tabWidths,\n gap,\n scrollEnabled,\n flattenedTabWidth\n });\n const maxDistance = getMaxScrollDistance(tabBarWidth, layout.width);\n const scrollValue = Math.max(Math.min(value, maxDistance), 0);\n if (Platform.OS === 'android' && I18nManager.isRTL) {\n // On Android, scroll value is not applied in reverse in RTL\n // so we need to manually adjust it to apply correct value\n return maxDistance - scrollValue;\n }\n return scrollValue;\n};\nconst getScrollAmount = _ref4 => {\n let {\n layout,\n navigationState,\n gap,\n scrollEnabled,\n flattenedTabWidth,\n tabWidths\n } = _ref4;\n const centerDistance = Array.from({\n length: navigationState.index + 1\n }).reduce((total, _, i) => {\n const tabWidth = getComputedTabWidth(i, layout, navigationState.routes, scrollEnabled, tabWidths, flattenedTabWidth);\n\n // To get the current index centered we adjust scroll amount by width of indexes\n // 0 through (i - 1) and add half the width of current index i\n return total + (navigationState.index === i ? (tabWidth + (gap ?? 0)) / 2 : tabWidth + (gap ?? 0));\n }, 0);\n const scrollAmount = centerDistance - layout.width / 2;\n return normalizeScrollValue({\n layout,\n navigationState,\n tabWidths,\n value: scrollAmount,\n gap,\n scrollEnabled,\n flattenedTabWidth\n });\n};\nconst getLabelTextDefault = _ref5 => {\n let {\n route\n } = _ref5;\n return route.title;\n};\nconst getAccessibleDefault = _ref6 => {\n let {\n route\n } = _ref6;\n return typeof route.accessible !== 'undefined' ? route.accessible : true;\n};\nconst getAccessibilityLabelDefault = _ref7 => {\n let {\n route\n } = _ref7;\n return typeof route.accessibilityLabel === 'string' ? route.accessibilityLabel : typeof route.title === 'string' ? route.title : undefined;\n};\nconst renderIndicatorDefault = props => /*#__PURE__*/React.createElement(TabBarIndicator, props);\nconst getTestIdDefault = _ref8 => {\n let {\n route\n } = _ref8;\n return route.testID;\n};\n\n// How many items measurements should we update per batch.\n// Defaults to 10, since that's whats FlatList is using in initialNumToRender.\nconst MEASURE_PER_BATCH = 10;\nexport function TabBar(_ref9) {\n let {\n getLabelText = getLabelTextDefault,\n getAccessible = getAccessibleDefault,\n getAccessibilityLabel = getAccessibilityLabelDefault,\n getTestID = getTestIdDefault,\n renderIndicator = renderIndicatorDefault,\n gap = 0,\n scrollEnabled,\n jumpTo,\n navigationState,\n position,\n activeColor,\n bounces,\n contentContainerStyle,\n inactiveColor,\n indicatorContainerStyle,\n indicatorStyle,\n labelStyle,\n onTabLongPress,\n onTabPress,\n pressColor,\n pressOpacity,\n renderBadge,\n renderIcon,\n renderLabel,\n renderTabBarItem,\n style,\n tabStyle,\n testID,\n android_ripple\n } = _ref9;\n const [layout, setLayout] = React.useState({\n width: 0,\n height: 0\n });\n const [tabWidths, setTabWidths] = React.useState({});\n const flatListRef = React.useRef(null);\n const isFirst = React.useRef(true);\n const scrollAmount = useAnimatedValue(0);\n const measuredTabWidths = React.useRef({});\n const {\n routes\n } = navigationState;\n const flattenedTabWidth = getFlattenedTabWidth(tabStyle);\n const isWidthDynamic = flattenedTabWidth === 'auto';\n const scrollOffset = getScrollAmount({\n layout,\n navigationState,\n tabWidths,\n gap,\n scrollEnabled,\n flattenedTabWidth\n });\n const hasMeasuredTabWidths = Boolean(layout.width) && routes.slice(0, navigationState.index).every(r => typeof tabWidths[r.key] === 'number');\n React.useEffect(() => {\n if (isFirst.current) {\n isFirst.current = false;\n return;\n }\n if (isWidthDynamic && !hasMeasuredTabWidths) {\n return;\n }\n if (scrollEnabled) {\n var _flatListRef$current;\n (_flatListRef$current = flatListRef.current) === null || _flatListRef$current === void 0 ? void 0 : _flatListRef$current.scrollToOffset({\n offset: scrollOffset,\n animated: true\n });\n }\n }, [hasMeasuredTabWidths, isWidthDynamic, scrollEnabled, scrollOffset]);\n const handleLayout = e => {\n const {\n height,\n width\n } = e.nativeEvent.layout;\n setLayout(layout => layout.width === width && layout.height === height ? layout : {\n width,\n height\n });\n };\n const tabBarWidth = getTabBarWidth({\n layout,\n navigationState,\n tabWidths,\n gap,\n scrollEnabled,\n flattenedTabWidth\n });\n const separatorsWidth = Math.max(0, routes.length - 1) * gap;\n const separatorPercent = separatorsWidth / tabBarWidth * 100;\n const tabBarWidthPercent = `${routes.length * 40}%`;\n const translateX = React.useMemo(() => getTranslateX(scrollAmount, getMaxScrollDistance(tabBarWidth, layout.width)), [layout.width, scrollAmount, tabBarWidth]);\n const renderItem = React.useCallback(_ref10 => {\n let {\n item: route,\n index\n } = _ref10;\n const props = {\n key: route.key,\n position: position,\n route: route,\n navigationState: navigationState,\n getAccessibilityLabel: getAccessibilityLabel,\n getAccessible: getAccessible,\n getLabelText: getLabelText,\n getTestID: getTestID,\n renderBadge: renderBadge,\n renderIcon: renderIcon,\n renderLabel: renderLabel,\n activeColor: activeColor,\n inactiveColor: inactiveColor,\n pressColor: pressColor,\n pressOpacity: pressOpacity,\n onLayout: isWidthDynamic ? e => {\n measuredTabWidths.current[route.key] = e.nativeEvent.layout.width;\n\n // When we have measured widths for all of the tabs, we should updates the state\n // We avoid doing separate setState for each layout since it triggers multiple renders and slows down app\n // If we have more than 10 routes divide updating tabWidths into multiple batches. Here we update only first batch of 10 items.\n if (routes.length > MEASURE_PER_BATCH && index === MEASURE_PER_BATCH && routes.slice(0, MEASURE_PER_BATCH).every(r => typeof measuredTabWidths.current[r.key] === 'number')) {\n setTabWidths({\n ...measuredTabWidths.current\n });\n } else if (routes.every(r => typeof measuredTabWidths.current[r.key] === 'number')) {\n // When we have measured widths for all of the tabs, we should updates the state\n // We avoid doing separate setState for each layout since it triggers multiple renders and slows down app\n setTabWidths({\n ...measuredTabWidths.current\n });\n }\n } : undefined,\n onPress: () => {\n const event = {\n route,\n defaultPrevented: false,\n preventDefault: () => {\n event.defaultPrevented = true;\n }\n };\n onTabPress === null || onTabPress === void 0 ? void 0 : onTabPress(event);\n if (event.defaultPrevented) {\n return;\n }\n jumpTo(route.key);\n },\n onLongPress: () => onTabLongPress === null || onTabLongPress === void 0 ? void 0 : onTabLongPress({\n route\n }),\n labelStyle: labelStyle,\n style: tabStyle,\n // Calculate the deafult width for tab for FlatList to work\n defaultTabWidth: !isWidthDynamic ? getComputedTabWidth(index, layout, routes, scrollEnabled, tabWidths, getFlattenedTabWidth(tabStyle)) : undefined,\n android_ripple\n };\n return /*#__PURE__*/React.createElement(React.Fragment, null, gap > 0 && index > 0 ? /*#__PURE__*/React.createElement(Separator, {\n width: gap\n }) : null, renderTabBarItem ? renderTabBarItem(props) : /*#__PURE__*/React.createElement(TabBarItem, props));\n }, [activeColor, android_ripple, gap, getAccessibilityLabel, getAccessible, getLabelText, getTestID, inactiveColor, isWidthDynamic, jumpTo, labelStyle, layout, navigationState, onTabLongPress, onTabPress, position, pressColor, pressOpacity, renderBadge, renderIcon, renderLabel, renderTabBarItem, routes, scrollEnabled, tabStyle, tabWidths]);\n const keyExtractor = React.useCallback(item => item.key, []);\n const contentContainerStyleMemoized = React.useMemo(() => [styles.tabContent, scrollEnabled ? {\n width: tabBarWidth > separatorsWidth ? tabBarWidth : tabBarWidthPercent\n } : styles.container, contentContainerStyle], [contentContainerStyle, scrollEnabled, separatorsWidth, tabBarWidth, tabBarWidthPercent]);\n const handleScroll = React.useMemo(() => Animated.event([{\n nativeEvent: {\n contentOffset: {\n x: scrollAmount\n }\n }\n }], {\n useNativeDriver: true\n }), [scrollAmount]);\n const handleViewableItemsChanged = useLatestCallback(_ref11 => {\n let {\n changed\n } = _ref11;\n if (routes.length <= MEASURE_PER_BATCH) {\n return;\n }\n // Get next vievable item\n const item = changed[changed.length - 1];\n const index = (item === null || item === void 0 ? void 0 : item.index) || 0;\n if (item.isViewable && (index % 10 === 0 || index === navigationState.index || index === routes.length - 1)) {\n setTabWidths({\n ...measuredTabWidths.current\n });\n }\n });\n return /*#__PURE__*/React.createElement(Animated.View, {\n onLayout: handleLayout,\n style: [styles.tabBar, style]\n }, /*#__PURE__*/React.createElement(Animated.View, {\n pointerEvents: \"none\",\n style: [styles.indicatorContainer, scrollEnabled ? {\n transform: [{\n translateX\n }]\n } : null, tabBarWidth > separatorsWidth ? {\n width: tabBarWidth - separatorsWidth\n } : scrollEnabled ? {\n width: tabBarWidthPercent\n } : null, indicatorContainerStyle]\n }, renderIndicator({\n position,\n layout,\n navigationState,\n jumpTo,\n width: isWidthDynamic ? 'auto' : `${(100 - separatorPercent) / routes.length}%`,\n style: indicatorStyle,\n getTabWidth: i => getComputedTabWidth(i, layout, routes, scrollEnabled, tabWidths, flattenedTabWidth),\n gap\n })), /*#__PURE__*/React.createElement(View, {\n style: styles.scroll\n }, /*#__PURE__*/React.createElement(Animated.FlatList, {\n data: routes,\n keyExtractor: keyExtractor,\n horizontal: true,\n accessibilityRole: \"tablist\",\n keyboardShouldPersistTaps: \"handled\",\n scrollEnabled: scrollEnabled,\n bounces: bounces,\n initialNumToRender: MEASURE_PER_BATCH,\n onViewableItemsChanged: handleViewableItemsChanged,\n alwaysBounceHorizontal: false,\n scrollsToTop: false,\n showsHorizontalScrollIndicator: false,\n showsVerticalScrollIndicator: false,\n automaticallyAdjustContentInsets: false,\n overScrollMode: \"never\",\n contentContainerStyle: contentContainerStyleMemoized,\n scrollEventThrottle: 16,\n renderItem: renderItem,\n onScroll: handleScroll,\n ref: flatListRef,\n testID: testID\n })));\n}\nconst styles = StyleSheet.create({\n container: {\n flex: 1\n },\n scroll: {\n overflow: Platform.select({\n default: 'scroll',\n web: undefined\n })\n },\n tabBar: {\n backgroundColor: '#2196f3',\n elevation: 4,\n shadowColor: 'black',\n shadowOpacity: 0.1,\n shadowRadius: StyleSheet.hairlineWidth,\n shadowOffset: {\n height: StyleSheet.hairlineWidth,\n width: 0\n },\n zIndex: 1\n },\n tabContent: {\n flexDirection: 'row',\n flexWrap: 'nowrap'\n },\n indicatorContainer: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0\n }\n});\n//# sourceMappingURL=TabBar.js.map","import * as React from 'react';\nimport { Animated, Easing, I18nManager, Platform, StyleSheet } from 'react-native';\nimport { useAnimatedValue } from './useAnimatedValue';\nconst getTranslateX = (position, routes, getTabWidth, gap) => {\n const inputRange = routes.map((_, i) => i);\n\n // every index contains widths at all previous indices\n const outputRange = routes.reduce((acc, _, i) => {\n if (i === 0) return [0];\n return [...acc, acc[i - 1] + getTabWidth(i - 1) + (gap ?? 0)];\n }, []);\n const translateX = position.interpolate({\n inputRange,\n outputRange,\n extrapolate: 'clamp'\n });\n return Animated.multiply(translateX, I18nManager.isRTL ? -1 : 1);\n};\nexport function TabBarIndicator(_ref) {\n let {\n getTabWidth,\n layout,\n navigationState,\n position,\n width,\n gap,\n style\n } = _ref;\n const isIndicatorShown = React.useRef(false);\n const isWidthDynamic = width === 'auto';\n const opacity = useAnimatedValue(isWidthDynamic ? 0 : 1);\n const indicatorVisible = isWidthDynamic ? layout.width && navigationState.routes.slice(0, navigationState.index).every((_, r) => getTabWidth(r)) : true;\n React.useEffect(() => {\n const fadeInIndicator = () => {\n if (!isIndicatorShown.current && isWidthDynamic &&\n // We should fade-in the indicator when we have widths for all the tab items\n indicatorVisible) {\n isIndicatorShown.current = true;\n Animated.timing(opacity, {\n toValue: 1,\n duration: 150,\n easing: Easing.in(Easing.linear),\n useNativeDriver: true\n }).start();\n }\n };\n fadeInIndicator();\n return () => opacity.stopAnimation();\n }, [indicatorVisible, isWidthDynamic, opacity]);\n const {\n routes\n } = navigationState;\n const transform = [];\n if (layout.width) {\n const translateX = routes.length > 1 ? getTranslateX(position, routes, getTabWidth, gap) : 0;\n transform.push({\n translateX\n });\n }\n if (width === 'auto') {\n const inputRange = routes.map((_, i) => i);\n const outputRange = inputRange.map(getTabWidth);\n transform.push({\n scaleX: routes.length > 1 ? position.interpolate({\n inputRange,\n outputRange,\n extrapolate: 'clamp'\n }) : outputRange[0]\n }, {\n translateX: 0.5\n });\n }\n return /*#__PURE__*/React.createElement(Animated.View, {\n style: [styles.indicator, {\n width: width === 'auto' ? 1 : width\n },\n // If layout is not available, use `left` property for positioning the indicator\n // This avoids rendering delay until we are able to calculate translateX\n // If platform is macos use `left` property as `transform` is broken at the moment.\n // See: https://github.com/microsoft/react-native-macos/issues/280\n layout.width && Platform.OS !== 'macos' ? {\n left: 0\n } : {\n left: `${100 / routes.length * navigationState.index}%`\n }, {\n transform\n }, width === 'auto' ? {\n opacity: opacity\n } : null, style]\n });\n}\nconst styles = StyleSheet.create({\n indicator: {\n backgroundColor: '#ffeb3b',\n position: 'absolute',\n left: 0,\n bottom: 0,\n right: 0,\n height: 2\n }\n});\n//# sourceMappingURL=TabBarIndicator.js.map","import getNamedContext from '../getNamedContext';\nconst HeaderHeightContext = getNamedContext('HeaderHeightContext', undefined);\nexport default HeaderHeightContext;\n//# sourceMappingURL=HeaderHeightContext.js.map","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 * Sets the [`font-display`](#fontdisplay) property for a given typeface in the browser.\n * @platform web\n */\n display?: FontDisplay;\n default?: string;\n};\n\n// @needsAudit\n/**\n * 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 * @platform web\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 || asset.default || null;\n } else if (typeof asset === 'number') {\n return uriFromFontSource(Asset.fromModule(asset));\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\\` 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","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : String(i);\n}\nmodule.exports = toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/* MIT license */\nvar 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\nvar reverseKeywords = {};\nfor (var key in cssKeywords) {\n\tif (cssKeywords.hasOwnProperty(key)) {\n\t\treverseKeywords[cssKeywords[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\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\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\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\tl = (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\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 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\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\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar 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\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in cssKeywords) {\n\t\tif (cssKeywords.hasOwnProperty(keyword)) {\n\t\t\tvar value = cssKeywords[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\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\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar 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\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar 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\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var 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\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\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = 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\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar 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\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (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\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\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\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 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\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar 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 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(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\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(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\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar 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\tvar r = args[0];\n\tvar g = args[1];\n\tvar 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\tvar 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\tvar 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\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar 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\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar 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\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar 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\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar 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 + 4;\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\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\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\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar 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\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\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\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\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar 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\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar 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\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar 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 = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\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\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global = global || self, global.deepmerge = factory());\n}(this, function () { 'use strict';\n\n\tvar isMergeableObject = function isMergeableObject(value) {\n\t\treturn isNonNullObject(value)\n\t\t\t&& !isSpecial(value)\n\t};\n\n\tfunction isNonNullObject(value) {\n\t\treturn !!value && typeof value === 'object'\n\t}\n\n\tfunction isSpecial(value) {\n\t\tvar stringValue = Object.prototype.toString.call(value);\n\n\t\treturn stringValue === '[object RegExp]'\n\t\t\t|| stringValue === '[object Date]'\n\t\t\t|| isReactElement(value)\n\t}\n\n\t// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\n\tvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\n\tvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\n\tfunction isReactElement(value) {\n\t\treturn value.$$typeof === REACT_ELEMENT_TYPE\n\t}\n\n\tfunction emptyTarget(val) {\n\t\treturn Array.isArray(val) ? [] : {}\n\t}\n\n\tfunction cloneUnlessOtherwiseSpecified(value, options) {\n\t\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t\t: value\n\t}\n\n\tfunction defaultArrayMerge(target, source, options) {\n\t\treturn target.concat(source).map(function(element) {\n\t\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t\t})\n\t}\n\n\tfunction getMergeFunction(key, options) {\n\t\tif (!options.customMerge) {\n\t\t\treturn deepmerge\n\t\t}\n\t\tvar customMerge = options.customMerge(key);\n\t\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n\t}\n\n\tfunction getEnumerableOwnPropertySymbols(target) {\n\t\treturn Object.getOwnPropertySymbols\n\t\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\t\treturn target.propertyIsEnumerable(symbol)\n\t\t\t})\n\t\t\t: []\n\t}\n\n\tfunction getKeys(target) {\n\t\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n\t}\n\n\tfunction mergeObject(target, source, options) {\n\t\tvar destination = {};\n\t\tif (options.isMergeableObject(target)) {\n\t\t\tgetKeys(target).forEach(function(key) {\n\t\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t\t});\n\t\t}\n\t\tgetKeys(source).forEach(function(key) {\n\t\t\tif (!options.isMergeableObject(source[key]) || !target[key]) {\n\t\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t\t} else {\n\t\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t\t}\n\t\t});\n\t\treturn destination\n\t}\n\n\tfunction deepmerge(target, source, options) {\n\t\toptions = options || {};\n\t\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\t\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\n\t\tvar sourceIsArray = Array.isArray(source);\n\t\tvar targetIsArray = Array.isArray(target);\n\t\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\t\tif (!sourceAndTargetTypesMatch) {\n\t\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t\t} else if (sourceIsArray) {\n\t\t\treturn options.arrayMerge(target, source, options)\n\t\t} else {\n\t\t\treturn mergeObject(target, source, options)\n\t\t}\n\t}\n\n\tdeepmerge.all = function deepmergeAll(array, options) {\n\t\tif (!Array.isArray(array)) {\n\t\t\tthrow new Error('first argument should be an array')\n\t\t}\n\n\t\treturn array.reduce(function(prev, next) {\n\t\t\treturn deepmerge(prev, next, options)\n\t\t}, {})\n\t};\n\n\tvar deepmerge_1 = deepmerge;\n\n\treturn deepmerge_1;\n\n}));\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","\"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}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = isPrefixedValue;\nvar RE = /-webkit-|-moz-|-ms-/;\n\nfunction isPrefixedValue(value) {\n return typeof value === 'string' && RE.test(value);\n}","import NativeModulesProxy from './NativeModulesProxy';\n\ntype ExpoObject = {\n modules:\n | undefined\n | {\n [key: string]: any;\n };\n};\n\ndeclare global {\n // eslint-disable-next-line no-var\n var expo: ExpoObject | undefined;\n\n /**\n * @deprecated `global.ExpoModules` is deprecated, use `global.expo.modules` instead.\n */\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.expo?.modules?.[moduleName] ??\n global.ExpoModules?.[moduleName] ??\n NativeModulesProxy[moduleName];\n\n if (!nativeModule) {\n throw new Error(`Cannot find native module '${moduleName}'`);\n }\n return nativeModule;\n}\n","//! moment.js locale configuration\n//! locale : Afrikaans [af]\n//! author : Werner Mollentze : https://github.com/wernerm\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var af = moment.defineLocale('af', {\n months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split(\n '_'\n ),\n weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),\n weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),\n meridiemParse: /vm|nm/i,\n isPM: function (input) {\n return /^nm$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'vm' : 'VM';\n } else {\n return isLower ? 'nm' : 'NM';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Vandag om] LT',\n nextDay: '[Môre om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[Gister om] LT',\n lastWeek: '[Laas] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oor %s',\n past: '%s gelede',\n s: \"'n paar sekondes\",\n ss: '%d sekondes',\n m: \"'n minuut\",\n mm: '%d minute',\n h: \"'n uur\",\n hh: '%d ure',\n d: \"'n dag\",\n dd: '%d dae',\n M: \"'n maand\",\n MM: '%d maande',\n y: \"'n jaar\",\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n ); // Thanks to Joris Röling : https://github.com/jjupiter\n },\n week: {\n dow: 1, // Maandag is die eerste dag van die week.\n doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n },\n });\n\n return af;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic [ar]\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var ar = moment.defineLocale('ar', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ar;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Algeria) [ar-dz]\n//! author : Amine Roukh: https://github.com/Amine27\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'جانفي',\n 'فيفري',\n 'مارس',\n 'أفريل',\n 'ماي',\n 'جوان',\n 'جويلية',\n 'أوت',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var arDz = moment.defineLocale('ar-dz', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arDz;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Kuwait) [ar-kw]\n//! author : Nusret Parlak: https://github.com/nusretparlak\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arKw = moment.defineLocale('ar-kw', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arKw;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Libya) [ar-ly]\n//! author : Ali Hmer: https://github.com/kikoanis\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 0: '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var arLy = moment.defineLocale('ar-ly', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arLy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Morocco) [ar-ma]\n//! author : ElFadili Yassine : https://github.com/ElFadiliY\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arMa = moment.defineLocale('ar-ma', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arMa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Palestine) [ar-ps]\n//! author : Majd Al-Shihabi : https://github.com/majdal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n };\n\n var arPs = moment.defineLocale('ar-ps', {\n months: 'كانون الثاني_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_تشري الأوّل_تشرين الثاني_كانون الأوّل'.split(\n '_'\n ),\n monthsShort:\n 'ك٢_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_ت١_ت٢_ك١'.split('_'),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n preparse: function (string) {\n return string\n .replace(/[٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .split('') // reversed since negative lookbehind not supported everywhere\n .reverse()\n .join('')\n .replace(/[١٢](?![\\u062a\\u0643])/g, function (match) {\n return numberMap[match];\n })\n .split('')\n .reverse()\n .join('')\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return arPs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Saudi Arabia) [ar-sa]\n//! author : Suhail Alkowaileet : https://github.com/xsoh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n };\n\n var arSa = moment.defineLocale('ar-sa', {\n months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return arSa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Tunisia) [ar-tn]\n//! author : Nader Toukabri : https://github.com/naderio\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arTn = moment.defineLocale('ar-tn', {\n months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort:\n 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arTn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Azerbaijani [az]\n//! author : topchiyev : https://github.com/topchiyev\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: '-inci',\n 5: '-inci',\n 8: '-inci',\n 70: '-inci',\n 80: '-inci',\n 2: '-nci',\n 7: '-nci',\n 20: '-nci',\n 50: '-nci',\n 3: '-üncü',\n 4: '-üncü',\n 100: '-üncü',\n 6: '-ncı',\n 9: '-uncu',\n 10: '-uncu',\n 30: '-uncu',\n 60: '-ıncı',\n 90: '-ıncı',\n };\n\n var az = moment.defineLocale('az', {\n months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split(\n '_'\n ),\n monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),\n weekdays:\n 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split(\n '_'\n ),\n weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),\n weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[sabah saat] LT',\n nextWeek: '[gələn həftə] dddd [saat] LT',\n lastDay: '[dünən] LT',\n lastWeek: '[keçən həftə] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s əvvəl',\n s: 'bir neçə saniyə',\n ss: '%d saniyə',\n m: 'bir dəqiqə',\n mm: '%d dəqiqə',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir il',\n yy: '%d il',\n },\n meridiemParse: /gecə|səhər|gündüz|axşam/,\n isPM: function (input) {\n return /^(gündüz|axşam)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'gecə';\n } else if (hour < 12) {\n return 'səhər';\n } else if (hour < 17) {\n return 'gündüz';\n } else {\n return 'axşam';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,\n ordinal: function (number) {\n if (number === 0) {\n // special case for zero\n return number + '-ıncı';\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return az;\n\n})));\n","//! moment.js locale configuration\n//! locale : Belarusian [be]\n//! author : Dmitry Demidov : https://github.com/demidov91\n//! author: Praleska: http://praleska.pro/\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',\n hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',\n dd: 'дзень_дні_дзён',\n MM: 'месяц_месяцы_месяцаў',\n yy: 'год_гады_гадоў',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвіліна' : 'хвіліну';\n } else if (key === 'h') {\n return withoutSuffix ? 'гадзіна' : 'гадзіну';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n\n var be = moment.defineLocale('be', {\n months: {\n format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split(\n '_'\n ),\n standalone:\n 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split(\n '_'\n ),\n },\n monthsShort:\n 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),\n weekdays: {\n format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split(\n '_'\n ),\n standalone:\n 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split(\n '_'\n ),\n isFormat: /\\[ ?[Ууў] ?(?:мінулую|наступную)? ?\\] ?dddd/,\n },\n weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., HH:mm',\n LLLL: 'dddd, D MMMM YYYY г., HH:mm',\n },\n calendar: {\n sameDay: '[Сёння ў] LT',\n nextDay: '[Заўтра ў] LT',\n lastDay: '[Учора ў] LT',\n nextWeek: function () {\n return '[У] dddd [ў] LT';\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return '[У мінулую] dddd [ў] LT';\n case 1:\n case 2:\n case 4:\n return '[У мінулы] dddd [ў] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'праз %s',\n past: '%s таму',\n s: 'некалькі секунд',\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithPlural,\n hh: relativeTimeWithPlural,\n d: 'дзень',\n dd: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночы|раніцы|дня|вечара/,\n isPM: function (input) {\n return /^(дня|вечара)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночы';\n } else if (hour < 12) {\n return 'раніцы';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечара';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(і|ы|га)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return (number % 10 === 2 || number % 10 === 3) &&\n number % 100 !== 12 &&\n number % 100 !== 13\n ? number + '-і'\n : number + '-ы';\n case 'D':\n return number + '-га';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return be;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bulgarian [bg]\n//! author : Krasen Borisov : https://github.com/kraz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var bg = moment.defineLocale('bg', {\n months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Днес в] LT',\n nextDay: '[Утре в] LT',\n nextWeek: 'dddd [в] LT',\n lastDay: '[Вчера в] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Миналата] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Миналия] dddd [в] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'след %s',\n past: 'преди %s',\n s: 'няколко секунди',\n ss: '%d секунди',\n m: 'минута',\n mm: '%d минути',\n h: 'час',\n hh: '%d часа',\n d: 'ден',\n dd: '%d дена',\n w: 'седмица',\n ww: '%d седмици',\n M: 'месец',\n MM: '%d месеца',\n y: 'година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return bg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bambara [bm]\n//! author : Estelle Comment : https://github.com/estellecomment\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var bm = moment.defineLocale('bm', {\n months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split(\n '_'\n ),\n monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),\n weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),\n weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),\n weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'MMMM [tile] D [san] YYYY',\n LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n },\n calendar: {\n sameDay: '[Bi lɛrɛ] LT',\n nextDay: '[Sini lɛrɛ] LT',\n nextWeek: 'dddd [don lɛrɛ] LT',\n lastDay: '[Kunu lɛrɛ] LT',\n lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s kɔnɔ',\n past: 'a bɛ %s bɔ',\n s: 'sanga dama dama',\n ss: 'sekondi %d',\n m: 'miniti kelen',\n mm: 'miniti %d',\n h: 'lɛrɛ kelen',\n hh: 'lɛrɛ %d',\n d: 'tile kelen',\n dd: 'tile %d',\n M: 'kalo kelen',\n MM: 'kalo %d',\n y: 'san kelen',\n yy: 'san %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return bm;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bengali [bn]\n//! author : Kaushik Gandhi : https://github.com/kaushikgandhi\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: '৭',\n 8: '৮',\n 9: '৯',\n 0: '০',\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n var bn = moment.defineLocale('bn', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n '_'\n ),\n monthsShort:\n 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেন্ড',\n ss: '%d সেকেন্ড',\n m: 'এক মিনিট',\n mm: '%d মিনিট',\n h: 'এক ঘন্টা',\n hh: '%d ঘন্টা',\n d: 'এক দিন',\n dd: '%d দিন',\n M: 'এক মাস',\n MM: '%d মাস',\n y: 'এক বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'রাত' && hour >= 4) ||\n (meridiem === 'দুপুর' && hour < 5) ||\n meridiem === 'বিকাল'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 10) {\n return 'সকাল';\n } else if (hour < 17) {\n return 'দুপুর';\n } else if (hour < 20) {\n return 'বিকাল';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bengali (Bangladesh) [bn-bd]\n//! author : Asraf Hossain Patoary : https://github.com/ashwoolford\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: '৭',\n 8: '৮',\n 9: '৯',\n 0: '০',\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n var bnBd = moment.defineLocale('bn-bd', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n '_'\n ),\n monthsShort:\n 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেন্ড',\n ss: '%d সেকেন্ড',\n m: 'এক মিনিট',\n mm: '%d মিনিট',\n h: 'এক ঘন্টা',\n hh: '%d ঘন্টা',\n d: 'এক দিন',\n dd: '%d দিন',\n M: 'এক মাস',\n MM: '%d মাস',\n y: 'এক বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n\n meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'রাত') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ভোর') {\n return hour;\n } else if (meridiem === 'সকাল') {\n return hour;\n } else if (meridiem === 'দুপুর') {\n return hour >= 3 ? hour : hour + 12;\n } else if (meridiem === 'বিকাল') {\n return hour + 12;\n } else if (meridiem === 'সন্ধ্যা') {\n return hour + 12;\n }\n },\n\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 6) {\n return 'ভোর';\n } else if (hour < 12) {\n return 'সকাল';\n } else if (hour < 15) {\n return 'দুপুর';\n } else if (hour < 18) {\n return 'বিকাল';\n } else if (hour < 20) {\n return 'সন্ধ্যা';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bnBd;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tibetan [bo]\n//! author : Thupten N. Chakrishar : https://github.com/vajradog\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '༡',\n 2: '༢',\n 3: '༣',\n 4: '༤',\n 5: '༥',\n 6: '༦',\n 7: '༧',\n 8: '༨',\n 9: '༩',\n 0: '༠',\n },\n numberMap = {\n '༡': '1',\n '༢': '2',\n '༣': '3',\n '༤': '4',\n '༥': '5',\n '༦': '6',\n '༧': '7',\n '༨': '8',\n '༩': '9',\n '༠': '0',\n };\n\n var bo = moment.defineLocale('bo', {\n months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split(\n '_'\n ),\n monthsShort:\n 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split(\n '_'\n ),\n monthsShortRegex: /^(ཟླ་\\d{1,2})/,\n monthsParseExact: true,\n weekdays:\n 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split(\n '_'\n ),\n weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split(\n '_'\n ),\n weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[དི་རིང] LT',\n nextDay: '[སང་ཉིན] LT',\n nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT',\n lastDay: '[ཁ་སང] LT',\n lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ལ་',\n past: '%s སྔན་ལ',\n s: 'ལམ་སང',\n ss: '%d སྐར་ཆ།',\n m: 'སྐར་མ་གཅིག',\n mm: '%d སྐར་མ',\n h: 'ཆུ་ཚོད་གཅིག',\n hh: '%d ཆུ་ཚོད',\n d: 'ཉིན་གཅིག',\n dd: '%d ཉིན་',\n M: 'ཟླ་བ་གཅིག',\n MM: '%d ཟླ་བ',\n y: 'ལོ་གཅིག',\n yy: '%d ལོ',\n },\n preparse: function (string) {\n return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'མཚན་མོ' && hour >= 4) ||\n (meridiem === 'ཉིན་གུང' && hour < 5) ||\n meridiem === 'དགོང་དག'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'མཚན་མོ';\n } else if (hour < 10) {\n return 'ཞོགས་ཀས';\n } else if (hour < 17) {\n return 'ཉིན་གུང';\n } else if (hour < 20) {\n return 'དགོང་དག';\n } else {\n return 'མཚན་མོ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Breton [br]\n//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithMutation(number, withoutSuffix, key) {\n var format = {\n mm: 'munutenn',\n MM: 'miz',\n dd: 'devezh',\n };\n return number + ' ' + mutation(format[key], number);\n }\n function specialMutationForYears(number) {\n switch (lastNumber(number)) {\n case 1:\n case 3:\n case 4:\n case 5:\n case 9:\n return number + ' bloaz';\n default:\n return number + ' vloaz';\n }\n }\n function lastNumber(number) {\n if (number > 9) {\n return lastNumber(number % 10);\n }\n return number;\n }\n function mutation(text, number) {\n if (number === 2) {\n return softMutation(text);\n }\n return text;\n }\n function softMutation(text) {\n var mutationTable = {\n m: 'v',\n b: 'v',\n d: 'z',\n };\n if (mutationTable[text.charAt(0)] === undefined) {\n return text;\n }\n return mutationTable[text.charAt(0)] + text.substring(1);\n }\n\n var monthsParse = [\n /^gen/i,\n /^c[ʼ\\']hwe/i,\n /^meu/i,\n /^ebr/i,\n /^mae/i,\n /^(mez|eve)/i,\n /^gou/i,\n /^eos/i,\n /^gwe/i,\n /^her/i,\n /^du/i,\n /^ker/i,\n ],\n monthsRegex =\n /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n monthsStrictRegex =\n /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,\n monthsShortStrictRegex =\n /^(gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n fullWeekdaysParse = [\n /^sul/i,\n /^lun/i,\n /^meurzh/i,\n /^merc[ʼ\\']her/i,\n /^yaou/i,\n /^gwener/i,\n /^sadorn/i,\n ],\n shortWeekdaysParse = [\n /^Sul/i,\n /^Lun/i,\n /^Meu/i,\n /^Mer/i,\n /^Yao/i,\n /^Gwe/i,\n /^Sad/i,\n ],\n minWeekdaysParse = [\n /^Su/i,\n /^Lu/i,\n /^Me([^r]|$)/i,\n /^Mer/i,\n /^Ya/i,\n /^Gw/i,\n /^Sa/i,\n ];\n\n var br = moment.defineLocale('br', {\n months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split(\n '_'\n ),\n monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),\n weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),\n weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),\n weekdaysParse: minWeekdaysParse,\n fullWeekdaysParse: fullWeekdaysParse,\n shortWeekdaysParse: shortWeekdaysParse,\n minWeekdaysParse: minWeekdaysParse,\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [a viz] MMMM YYYY',\n LLL: 'D [a viz] MMMM YYYY HH:mm',\n LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hiziv da] LT',\n nextDay: '[Warcʼhoazh da] LT',\n nextWeek: 'dddd [da] LT',\n lastDay: '[Decʼh da] LT',\n lastWeek: 'dddd [paset da] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'a-benn %s',\n past: '%s ʼzo',\n s: 'un nebeud segondennoù',\n ss: '%d eilenn',\n m: 'ur vunutenn',\n mm: relativeTimeWithMutation,\n h: 'un eur',\n hh: '%d eur',\n d: 'un devezh',\n dd: relativeTimeWithMutation,\n M: 'ur miz',\n MM: relativeTimeWithMutation,\n y: 'ur bloaz',\n yy: specialMutationForYears,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(añ|vet)/,\n ordinal: function (number) {\n var output = number === 1 ? 'añ' : 'vet';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn\n isPM: function (token) {\n return token === 'g.m.';\n },\n meridiem: function (hour, minute, isLower) {\n return hour < 12 ? 'a.m.' : 'g.m.';\n },\n });\n\n return br;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bosnian [bs]\n//! author : Nedim Cholich : https://github.com/frontyard\n//! author : Rasid Redzic : https://github.com/rasidre\n//! based on (hr) translation by Bojan Marković\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n switch (key) {\n case 'm':\n return withoutSuffix\n ? 'jedna minuta'\n : isFuture\n ? 'jednu minutu'\n : 'jedne minute';\n }\n }\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jedan sat';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var bs = moment.defineLocale('bs', {\n months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n return '[prošlu] dddd [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: processRelativeTime,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return bs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Catalan [ca]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ca = moment.defineLocale('ca', {\n months: {\n standalone:\n 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split(\n '_'\n ),\n format: \"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort:\n 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a les] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextDay: function () {\n return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastDay: function () {\n return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [passat a ' +\n (this.hours() !== 1 ? 'les' : 'la') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'uns segons',\n ss: '%d segons',\n m: 'un minut',\n mm: '%d minuts',\n h: 'una hora',\n hh: '%d hores',\n d: 'un dia',\n dd: '%d dies',\n M: 'un mes',\n MM: '%d mesos',\n y: 'un any',\n yy: '%d anys',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ca;\n\n})));\n","//! moment.js locale configuration\n//! locale : Czech [cs]\n//! author : petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = {\n standalone:\n 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split(\n '_'\n ),\n format: 'ledna_února_března_dubna_května_června_července_srpna_září_října_listopadu_prosince'.split(\n '_'\n ),\n isFormat: /DD?[o.]?(\\[[^\\[\\]]*\\]|\\s)+MMMM/,\n },\n monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'),\n monthsParse = [\n /^led/i,\n /^úno/i,\n /^bře/i,\n /^dub/i,\n /^kvě/i,\n /^(čvn|červen$|června)/i,\n /^(čvc|červenec|července)/i,\n /^srp/i,\n /^zář/i,\n /^říj/i,\n /^lis/i,\n /^pro/i,\n ],\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsRegex =\n /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;\n\n function plural(n) {\n return n > 1 && n < 5 && ~~(n / 10) !== 1;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekund');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minuty' : 'minut');\n } else {\n return result + 'minutami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodin');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'den' : 'dnem';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dny' : 'dní');\n } else {\n return result + 'dny';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'měsíc' : 'měsícem';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'měsíce' : 'měsíců');\n } else {\n return result + 'měsíci';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokem';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'let');\n } else {\n return result + 'lety';\n }\n }\n }\n\n var cs = moment.defineLocale('cs', {\n months: months,\n monthsShort: monthsShort,\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsStrictRegex:\n /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,\n monthsShortStrictRegex:\n /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),\n weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),\n weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n l: 'D. M. YYYY',\n },\n calendar: {\n sameDay: '[dnes v] LT',\n nextDay: '[zítra v] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v neděli v] LT';\n case 1:\n case 2:\n return '[v] dddd [v] LT';\n case 3:\n return '[ve středu v] LT';\n case 4:\n return '[ve čtvrtek v] LT';\n case 5:\n return '[v pátek v] LT';\n case 6:\n return '[v sobotu v] LT';\n }\n },\n lastDay: '[včera v] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulou neděli v] LT';\n case 1:\n case 2:\n return '[minulé] dddd [v] LT';\n case 3:\n return '[minulou středu v] LT';\n case 4:\n case 5:\n return '[minulý] dddd [v] LT';\n case 6:\n return '[minulou sobotu v] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'před %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chuvash [cv]\n//! author : Anatoly Mironov : https://github.com/mirontoli\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cv = moment.defineLocale('cv', {\n months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split(\n '_'\n ),\n monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),\n weekdays:\n 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split(\n '_'\n ),\n weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),\n weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',\n LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n },\n calendar: {\n sameDay: '[Паян] LT [сехетре]',\n nextDay: '[Ыран] LT [сехетре]',\n lastDay: '[Ӗнер] LT [сехетре]',\n nextWeek: '[Ҫитес] dddd LT [сехетре]',\n lastWeek: '[Иртнӗ] dddd LT [сехетре]',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (output) {\n var affix = /сехет$/i.exec(output)\n ? 'рен'\n : /ҫул$/i.exec(output)\n ? 'тан'\n : 'ран';\n return output + affix;\n },\n past: '%s каялла',\n s: 'пӗр-ик ҫеккунт',\n ss: '%d ҫеккунт',\n m: 'пӗр минут',\n mm: '%d минут',\n h: 'пӗр сехет',\n hh: '%d сехет',\n d: 'пӗр кун',\n dd: '%d кун',\n M: 'пӗр уйӑх',\n MM: '%d уйӑх',\n y: 'пӗр ҫул',\n yy: '%d ҫул',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-мӗш/,\n ordinal: '%d-мӗш',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return cv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Welsh [cy]\n//! author : Robert Allen : https://github.com/robgallen\n//! author : https://github.com/ryangreaves\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cy = moment.defineLocale('cy', {\n months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split(\n '_'\n ),\n monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split(\n '_'\n ),\n weekdays:\n 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split(\n '_'\n ),\n weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),\n weekdaysParseExact: true,\n // time formats are the same as en-gb\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Heddiw am] LT',\n nextDay: '[Yfory am] LT',\n nextWeek: 'dddd [am] LT',\n lastDay: '[Ddoe am] LT',\n lastWeek: 'dddd [diwethaf am] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'mewn %s',\n past: '%s yn ôl',\n s: 'ychydig eiliadau',\n ss: '%d eiliad',\n m: 'munud',\n mm: '%d munud',\n h: 'awr',\n hh: '%d awr',\n d: 'diwrnod',\n dd: '%d diwrnod',\n M: 'mis',\n MM: '%d mis',\n y: 'blwyddyn',\n yy: '%d flynedd',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,\n // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh\n ordinal: function (number) {\n var b = number,\n output = '',\n lookup = [\n '',\n 'af',\n 'il',\n 'ydd',\n 'ydd',\n 'ed',\n 'ed',\n 'ed',\n 'fed',\n 'fed',\n 'fed', // 1af to 10fed\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'fed', // 11eg to 20fed\n ];\n if (b > 20) {\n if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {\n output = 'fed'; // not 30ain, 70ain or 90ain\n } else {\n output = 'ain';\n }\n } else if (b > 0) {\n output = lookup[b];\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Danish [da]\n//! author : Ulrik Nielsen : https://github.com/mrbase\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var da = moment.defineLocale('da', {\n months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'på dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[i] dddd[s kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'få sekunder',\n ss: '%d sekunder',\n m: 'et minut',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dage',\n M: 'en måned',\n MM: '%d måneder',\n y: 'et år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return da;\n\n})));\n","//! moment.js locale configuration\n//! locale : German [de]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var de = moment.defineLocale('de', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return de;\n\n})));\n","//! moment.js locale configuration\n//! locale : German (Austria) [de-at]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Martin Groller : https://github.com/MadMG\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deAt = moment.defineLocale('de-at', {\n months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return deAt;\n\n})));\n","//! moment.js locale configuration\n//! locale : German (Switzerland) [de-ch]\n//! author : sschueller : https://github.com/sschueller\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deCh = moment.defineLocale('de-ch', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return deCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maldivian [dv]\n//! author : Jawish Hameed : https://github.com/jawish\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'ޖެނުއަރީ',\n 'ފެބްރުއަރީ',\n 'މާރިޗު',\n 'އޭޕްރީލު',\n 'މޭ',\n 'ޖޫން',\n 'ޖުލައި',\n 'އޯގަސްޓު',\n 'ސެޕްޓެމްބަރު',\n 'އޮކްޓޯބަރު',\n 'ނޮވެމްބަރު',\n 'ޑިސެމްބަރު',\n ],\n weekdays = [\n 'އާދިއްތަ',\n 'ހޯމަ',\n 'އަންގާރަ',\n 'ބުދަ',\n 'ބުރާސްފަތި',\n 'ހުކުރު',\n 'ހޮނިހިރު',\n ];\n\n var dv = moment.defineLocale('dv', {\n months: months,\n monthsShort: months,\n weekdays: weekdays,\n weekdaysShort: weekdays,\n weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/M/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /މކ|މފ/,\n isPM: function (input) {\n return 'މފ' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'މކ';\n } else {\n return 'މފ';\n }\n },\n calendar: {\n sameDay: '[މިއަދު] LT',\n nextDay: '[މާދަމާ] LT',\n nextWeek: 'dddd LT',\n lastDay: '[އިއްޔެ] LT',\n lastWeek: '[ފާއިތުވި] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ތެރޭގައި %s',\n past: 'ކުރިން %s',\n s: 'ސިކުންތުކޮޅެއް',\n ss: 'd% ސިކުންތު',\n m: 'މިނިޓެއް',\n mm: 'މިނިޓު %d',\n h: 'ގަޑިއިރެއް',\n hh: 'ގަޑިއިރު %d',\n d: 'ދުވަހެއް',\n dd: 'ދުވަސް %d',\n M: 'މަހެއް',\n MM: 'މަސް %d',\n y: 'އަހަރެއް',\n yy: 'އަހަރު %d',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 7, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return dv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Greek [el]\n//! author : Aggelos Karalias : https://github.com/mehiel\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n var el = moment.defineLocale('el', {\n monthsNominativeEl:\n 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split(\n '_'\n ),\n monthsGenitiveEl:\n 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split(\n '_'\n ),\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return this._monthsNominativeEl;\n } else if (\n typeof format === 'string' &&\n /D/.test(format.substring(0, format.indexOf('MMMM')))\n ) {\n // if there is a day number before 'MMMM'\n return this._monthsGenitiveEl[momentToFormat.month()];\n } else {\n return this._monthsNominativeEl[momentToFormat.month()];\n }\n },\n monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),\n weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split(\n '_'\n ),\n weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),\n weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'μμ' : 'ΜΜ';\n } else {\n return isLower ? 'πμ' : 'ΠΜ';\n }\n },\n isPM: function (input) {\n return (input + '').toLowerCase()[0] === 'μ';\n },\n meridiemParse: /[ΠΜ]\\.?Μ?\\.?/i,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendarEl: {\n sameDay: '[Σήμερα {}] LT',\n nextDay: '[Αύριο {}] LT',\n nextWeek: 'dddd [{}] LT',\n lastDay: '[Χθες {}] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 6:\n return '[το προηγούμενο] dddd [{}] LT';\n default:\n return '[την προηγούμενη] dddd [{}] LT';\n }\n },\n sameElse: 'L',\n },\n calendar: function (key, mom) {\n var output = this._calendarEl[key],\n hours = mom && mom.hours();\n if (isFunction(output)) {\n output = output.apply(mom);\n }\n return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις');\n },\n relativeTime: {\n future: 'σε %s',\n past: '%s πριν',\n s: 'λίγα δευτερόλεπτα',\n ss: '%d δευτερόλεπτα',\n m: 'ένα λεπτό',\n mm: '%d λεπτά',\n h: 'μία ώρα',\n hh: '%d ώρες',\n d: 'μία μέρα',\n dd: '%d μέρες',\n M: 'ένας μήνας',\n MM: '%d μήνες',\n y: 'ένας χρόνος',\n yy: '%d χρόνια',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}η/,\n ordinal: '%dη',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4st is the first week of the year.\n },\n });\n\n return el;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Australia) [en-au]\n//! author : Jared Morse : https://github.com/jarcoal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enAu = moment.defineLocale('en-au', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enAu;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Canada) [en-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enCa = moment.defineLocale('en-ca', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'YYYY-MM-DD',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enCa;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enGb = moment.defineLocale('en-gb', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enGb;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Ireland) [en-ie]\n//! author : Chris Cartlidge : https://github.com/chriscartlidge\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIe = moment.defineLocale('en-ie', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enIe;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Israel) [en-il]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIl = moment.defineLocale('en-il', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enIl;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (India) [en-in]\n//! author : Jatin Agrawal : https://github.com/jatinag22\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIn = moment.defineLocale('en-in', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return enIn;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (New Zealand) [en-nz]\n//! author : Luke McGregor : https://github.com/lukemcgregor\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enNz = moment.defineLocale('en-nz', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enNz;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Singapore) [en-sg]\n//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enSg = moment.defineLocale('en-sg', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enSg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Esperanto [eo]\n//! author : Colin Dean : https://github.com/colindean\n//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia\n//! comment : miestasmia corrected the translation by colindean\n//! comment : Vivakvo corrected the translation by colindean and miestasmia\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eo = moment.defineLocale('eo', {\n months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'),\n weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),\n weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),\n weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: '[la] D[-an de] MMMM, YYYY',\n LLL: '[la] D[-an de] MMMM, YYYY HH:mm',\n LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',\n llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm',\n },\n meridiemParse: /[ap]\\.t\\.m/i,\n isPM: function (input) {\n return input.charAt(0).toLowerCase() === 'p';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'p.t.m.' : 'P.T.M.';\n } else {\n return isLower ? 'a.t.m.' : 'A.T.M.';\n }\n },\n calendar: {\n sameDay: '[Hodiaŭ je] LT',\n nextDay: '[Morgaŭ je] LT',\n nextWeek: 'dddd[n je] LT',\n lastDay: '[Hieraŭ je] LT',\n lastWeek: '[pasintan] dddd[n je] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'post %s',\n past: 'antaŭ %s',\n s: 'kelkaj sekundoj',\n ss: '%d sekundoj',\n m: 'unu minuto',\n mm: '%d minutoj',\n h: 'unu horo',\n hh: '%d horoj',\n d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo\n dd: '%d tagoj',\n M: 'unu monato',\n MM: '%d monatoj',\n y: 'unu jaro',\n yy: '%d jaroj',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}a/,\n ordinal: '%da',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish [es]\n//! author : Julio Napurí : https://github.com/julionc\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var es = moment.defineLocale('es', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida',\n });\n\n return es;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (Dominican Republic) [es-do]\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esDo = moment.defineLocale('es-do', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return esDo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (Mexico) [es-mx]\n//! author : JC Franco : https://github.com/jcfranco\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esMx = moment.defineLocale('es-mx', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida',\n });\n\n return esMx;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (United States) [es-us]\n//! author : bustta : https://github.com/bustta\n//! author : chrisrodz : https://github.com/chrisrodz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esUs = moment.defineLocale('es-us', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'MM/DD/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return esUs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Estonian [et]\n//! author : Henry Kehlmann : https://github.com/madhenry\n//! improvements : Illimar Tambek : https://github.com/ragulka\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\n ss: [number + 'sekundi', number + 'sekundit'],\n m: ['ühe minuti', 'üks minut'],\n mm: [number + ' minuti', number + ' minutit'],\n h: ['ühe tunni', 'tund aega', 'üks tund'],\n hh: [number + ' tunni', number + ' tundi'],\n d: ['ühe päeva', 'üks päev'],\n M: ['kuu aja', 'kuu aega', 'üks kuu'],\n MM: [number + ' kuu', number + ' kuud'],\n y: ['ühe aasta', 'aasta', 'üks aasta'],\n yy: [number + ' aasta', number + ' aastat'],\n };\n if (withoutSuffix) {\n return format[key][2] ? format[key][2] : format[key][1];\n }\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var et = moment.defineLocale('et', {\n months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split(\n '_'\n ),\n monthsShort:\n 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),\n weekdays:\n 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split(\n '_'\n ),\n weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),\n weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Täna,] LT',\n nextDay: '[Homme,] LT',\n nextWeek: '[Järgmine] dddd LT',\n lastDay: '[Eile,] LT',\n lastWeek: '[Eelmine] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s pärast',\n past: '%s tagasi',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: '%d päeva',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return et;\n\n})));\n","//! moment.js locale configuration\n//! locale : Basque [eu]\n//! author : Eneko Illarramendi : https://github.com/eillarra\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eu = moment.defineLocale('eu', {\n months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split(\n '_'\n ),\n monthsShort:\n 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split(\n '_'\n ),\n weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),\n weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY[ko] MMMM[ren] D[a]',\n LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n l: 'YYYY-M-D',\n ll: 'YYYY[ko] MMM D[a]',\n lll: 'YYYY[ko] MMM D[a] HH:mm',\n llll: 'ddd, YYYY[ko] MMM D[a] HH:mm',\n },\n calendar: {\n sameDay: '[gaur] LT[etan]',\n nextDay: '[bihar] LT[etan]',\n nextWeek: 'dddd LT[etan]',\n lastDay: '[atzo] LT[etan]',\n lastWeek: '[aurreko] dddd LT[etan]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s barru',\n past: 'duela %s',\n s: 'segundo batzuk',\n ss: '%d segundo',\n m: 'minutu bat',\n mm: '%d minutu',\n h: 'ordu bat',\n hh: '%d ordu',\n d: 'egun bat',\n dd: '%d egun',\n M: 'hilabete bat',\n MM: '%d hilabete',\n y: 'urte bat',\n yy: '%d urte',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Persian [fa]\n//! author : Ebrahim Byagowi : https://github.com/ebraminio\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '۱',\n 2: '۲',\n 3: '۳',\n 4: '۴',\n 5: '۵',\n 6: '۶',\n 7: '۷',\n 8: '۸',\n 9: '۹',\n 0: '۰',\n },\n numberMap = {\n '۱': '1',\n '۲': '2',\n '۳': '3',\n '۴': '4',\n '۵': '5',\n '۶': '6',\n '۷': '7',\n '۸': '8',\n '۹': '9',\n '۰': '0',\n };\n\n var fa = moment.defineLocale('fa', {\n months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n monthsShort:\n 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n weekdays:\n 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysShort:\n 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /قبل از ظهر|بعد از ظهر/,\n isPM: function (input) {\n return /بعد از ظهر/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'قبل از ظهر';\n } else {\n return 'بعد از ظهر';\n }\n },\n calendar: {\n sameDay: '[امروز ساعت] LT',\n nextDay: '[فردا ساعت] LT',\n nextWeek: 'dddd [ساعت] LT',\n lastDay: '[دیروز ساعت] LT',\n lastWeek: 'dddd [پیش] [ساعت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'در %s',\n past: '%s پیش',\n s: 'چند ثانیه',\n ss: '%d ثانیه',\n m: 'یک دقیقه',\n mm: '%d دقیقه',\n h: 'یک ساعت',\n hh: '%d ساعت',\n d: 'یک روز',\n dd: '%d روز',\n M: 'یک ماه',\n MM: '%d ماه',\n y: 'یک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string\n .replace(/[۰-۹]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n dayOfMonthOrdinalParse: /\\d{1,2}م/,\n ordinal: '%dم',\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return fa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Finnish [fi]\n//! author : Tarmo Aidantausta : https://github.com/bleadof\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var numbersPast =\n 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(\n ' '\n ),\n numbersFuture = [\n 'nolla',\n 'yhden',\n 'kahden',\n 'kolmen',\n 'neljän',\n 'viiden',\n 'kuuden',\n numbersPast[7],\n numbersPast[8],\n numbersPast[9],\n ];\n function translate(number, withoutSuffix, key, isFuture) {\n var result = '';\n switch (key) {\n case 's':\n return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n case 'ss':\n result = isFuture ? 'sekunnin' : 'sekuntia';\n break;\n case 'm':\n return isFuture ? 'minuutin' : 'minuutti';\n case 'mm':\n result = isFuture ? 'minuutin' : 'minuuttia';\n break;\n case 'h':\n return isFuture ? 'tunnin' : 'tunti';\n case 'hh':\n result = isFuture ? 'tunnin' : 'tuntia';\n break;\n case 'd':\n return isFuture ? 'päivän' : 'päivä';\n case 'dd':\n result = isFuture ? 'päivän' : 'päivää';\n break;\n case 'M':\n return isFuture ? 'kuukauden' : 'kuukausi';\n case 'MM':\n result = isFuture ? 'kuukauden' : 'kuukautta';\n break;\n case 'y':\n return isFuture ? 'vuoden' : 'vuosi';\n case 'yy':\n result = isFuture ? 'vuoden' : 'vuotta';\n break;\n }\n result = verbalNumber(number, isFuture) + ' ' + result;\n return result;\n }\n function verbalNumber(number, isFuture) {\n return number < 10\n ? isFuture\n ? numbersFuture[number]\n : numbersPast[number]\n : number;\n }\n\n var fi = moment.defineLocale('fi', {\n months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split(\n '_'\n ),\n monthsShort:\n 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split(\n '_'\n ),\n weekdays:\n 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split(\n '_'\n ),\n weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),\n weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM[ta] YYYY',\n LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',\n LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n l: 'D.M.YYYY',\n ll: 'Do MMM YYYY',\n lll: 'Do MMM YYYY, [klo] HH.mm',\n llll: 'ddd, Do MMM YYYY, [klo] HH.mm',\n },\n calendar: {\n sameDay: '[tänään] [klo] LT',\n nextDay: '[huomenna] [klo] LT',\n nextWeek: 'dddd [klo] LT',\n lastDay: '[eilen] [klo] LT',\n lastWeek: '[viime] dddd[na] [klo] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s päästä',\n past: '%s sitten',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Filipino [fil]\n//! author : Dan Hagman : https://github.com/hagmandan\n//! author : Matthew Co : https://github.com/matthewdeeco\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fil = moment.defineLocale('fil', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fil;\n\n})));\n","//! moment.js locale configuration\n//! locale : Faroese [fo]\n//! author : Ragnar Johannesen : https://github.com/ragnar123\n//! author : Kristian Sakarisson : https://github.com/sakarisson\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fo = moment.defineLocale('fo', {\n months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays:\n 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'),\n weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D. MMMM, YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Í dag kl.] LT',\n nextDay: '[Í morgin kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[Í gjár kl.] LT',\n lastWeek: '[síðstu] dddd [kl] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'um %s',\n past: '%s síðani',\n s: 'fá sekund',\n ss: '%d sekundir',\n m: 'ein minuttur',\n mm: '%d minuttir',\n h: 'ein tími',\n hh: '%d tímar',\n d: 'ein dagur',\n dd: '%d dagar',\n M: 'ein mánaður',\n MM: '%d mánaðir',\n y: 'eitt ár',\n yy: '%d ár',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fo;\n\n})));\n","//! moment.js locale configuration\n//! locale : French [fr]\n//! author : John Fischer : https://github.com/jfroffice\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsStrictRegex =\n /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsShortStrictRegex =\n /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?)/i,\n monthsRegex =\n /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsParse = [\n /^janv/i,\n /^févr/i,\n /^mars/i,\n /^avr/i,\n /^mai/i,\n /^juin/i,\n /^juil/i,\n /^août/i,\n /^sept/i,\n /^oct/i,\n /^nov/i,\n /^déc/i,\n ];\n\n var fr = moment.defineLocale('fr', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n w: 'une semaine',\n ww: '%d semaines',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n ordinal: function (number, period) {\n switch (period) {\n // TODO: Return 'e' when day of month > 1. Move this case inside\n // block for masculine words below.\n // See https://github.com/moment/moment/issues/3375\n case 'D':\n return number + (number === 1 ? 'er' : '');\n\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fr;\n\n})));\n","//! moment.js locale configuration\n//! locale : French (Canada) [fr-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCa = moment.defineLocale('fr-ca', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n });\n\n return frCa;\n\n})));\n","//! moment.js locale configuration\n//! locale : French (Switzerland) [fr-ch]\n//! author : Gaspard Bucher : https://github.com/gaspard\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCh = moment.defineLocale('fr-ch', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return frCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Frisian [fy]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots =\n 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),\n monthsShortWithoutDots =\n 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');\n\n var fy = moment.defineLocale('fy', {\n months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n monthsParseExact: true,\n weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split(\n '_'\n ),\n weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),\n weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[hjoed om] LT',\n nextDay: '[moarn om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[juster om] LT',\n lastWeek: '[ôfrûne] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oer %s',\n past: '%s lyn',\n s: 'in pear sekonden',\n ss: '%d sekonden',\n m: 'ien minút',\n mm: '%d minuten',\n h: 'ien oere',\n hh: '%d oeren',\n d: 'ien dei',\n dd: '%d dagen',\n M: 'ien moanne',\n MM: '%d moannen',\n y: 'ien jier',\n yy: '%d jierren',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Irish or Irish Gaelic [ga]\n//! author : André Silva : https://github.com/askpt\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Eanáir',\n 'Feabhra',\n 'Márta',\n 'Aibreán',\n 'Bealtaine',\n 'Meitheamh',\n 'Iúil',\n 'Lúnasa',\n 'Meán Fómhair',\n 'Deireadh Fómhair',\n 'Samhain',\n 'Nollaig',\n ],\n monthsShort = [\n 'Ean',\n 'Feabh',\n 'Márt',\n 'Aib',\n 'Beal',\n 'Meith',\n 'Iúil',\n 'Lún',\n 'M.F.',\n 'D.F.',\n 'Samh',\n 'Noll',\n ],\n weekdays = [\n 'Dé Domhnaigh',\n 'Dé Luain',\n 'Dé Máirt',\n 'Dé Céadaoin',\n 'Déardaoin',\n 'Dé hAoine',\n 'Dé Sathairn',\n ],\n weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'],\n weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'];\n\n var ga = moment.defineLocale('ga', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Inniu ag] LT',\n nextDay: '[Amárach ag] LT',\n nextWeek: 'dddd [ag] LT',\n lastDay: '[Inné ag] LT',\n lastWeek: 'dddd [seo caite] [ag] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i %s',\n past: '%s ó shin',\n s: 'cúpla soicind',\n ss: '%d soicind',\n m: 'nóiméad',\n mm: '%d nóiméad',\n h: 'uair an chloig',\n hh: '%d uair an chloig',\n d: 'lá',\n dd: '%d lá',\n M: 'mí',\n MM: '%d míonna',\n y: 'bliain',\n yy: '%d bliain',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ga;\n\n})));\n","//! moment.js locale configuration\n//! locale : Scottish Gaelic [gd]\n//! author : Jon Ashdown : https://github.com/jonashdown\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Am Faoilleach',\n 'An Gearran',\n 'Am Màrt',\n 'An Giblean',\n 'An Cèitean',\n 'An t-Ògmhios',\n 'An t-Iuchar',\n 'An Lùnastal',\n 'An t-Sultain',\n 'An Dàmhair',\n 'An t-Samhain',\n 'An Dùbhlachd',\n ],\n monthsShort = [\n 'Faoi',\n 'Gear',\n 'Màrt',\n 'Gibl',\n 'Cèit',\n 'Ògmh',\n 'Iuch',\n 'Lùn',\n 'Sult',\n 'Dàmh',\n 'Samh',\n 'Dùbh',\n ],\n weekdays = [\n 'Didòmhnaich',\n 'Diluain',\n 'Dimàirt',\n 'Diciadain',\n 'Diardaoin',\n 'Dihaoine',\n 'Disathairne',\n ],\n weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],\n weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];\n\n var gd = moment.defineLocale('gd', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[An-diugh aig] LT',\n nextDay: '[A-màireach aig] LT',\n nextWeek: 'dddd [aig] LT',\n lastDay: '[An-dè aig] LT',\n lastWeek: 'dddd [seo chaidh] [aig] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ann an %s',\n past: 'bho chionn %s',\n s: 'beagan diogan',\n ss: '%d diogan',\n m: 'mionaid',\n mm: '%d mionaidean',\n h: 'uair',\n hh: '%d uairean',\n d: 'latha',\n dd: '%d latha',\n M: 'mìos',\n MM: '%d mìosan',\n y: 'bliadhna',\n yy: '%d bliadhna',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return gd;\n\n})));\n","//! moment.js locale configuration\n//! locale : Galician [gl]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var gl = moment.defineLocale('gl', {\n months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split(\n '_'\n ),\n monthsShort:\n 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextDay: function () {\n return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';\n },\n lastDay: function () {\n return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT';\n },\n lastWeek: function () {\n return (\n '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (str) {\n if (str.indexOf('un') === 0) {\n return 'n' + str;\n }\n return 'en ' + str;\n },\n past: 'hai %s',\n s: 'uns segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'unha hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return gl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Konkani Devanagari script [gom-deva]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'],\n ss: [number + ' सॅकंडांनी', number + ' सॅकंड'],\n m: ['एका मिणटान', 'एक मिनूट'],\n mm: [number + ' मिणटांनी', number + ' मिणटां'],\n h: ['एका वरान', 'एक वर'],\n hh: [number + ' वरांनी', number + ' वरां'],\n d: ['एका दिसान', 'एक दीस'],\n dd: [number + ' दिसांनी', number + ' दीस'],\n M: ['एका म्हयन्यान', 'एक म्हयनो'],\n MM: [number + ' म्हयन्यानी', number + ' म्हयने'],\n y: ['एका वर्सान', 'एक वर्स'],\n yy: [number + ' वर्सांनी', number + ' वर्सां'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomDeva = moment.defineLocale('gom-deva', {\n months: {\n standalone:\n 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n '_'\n ),\n format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort:\n 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'),\n weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'),\n weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [वाजतां]',\n LTS: 'A h:mm:ss [वाजतां]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [वाजतां]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]',\n llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]',\n },\n calendar: {\n sameDay: '[आयज] LT',\n nextDay: '[फाल्यां] LT',\n nextWeek: '[फुडलो] dddd[,] LT',\n lastDay: '[काल] LT',\n lastWeek: '[फाटलो] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s आदीं',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(वेर)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'वेर' only applies to day of the month\n case 'D':\n return number + 'वेर';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week\n doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n meridiemParse: /राती|सकाळीं|दनपारां|सांजे/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राती') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सकाळीं') {\n return hour;\n } else if (meridiem === 'दनपारां') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'सांजे') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'राती';\n } else if (hour < 12) {\n return 'सकाळीं';\n } else if (hour < 16) {\n return 'दनपारां';\n } else if (hour < 20) {\n return 'सांजे';\n } else {\n return 'राती';\n }\n },\n });\n\n return gomDeva;\n\n})));\n","//! moment.js locale configuration\n//! locale : Konkani Latin script [gom-latn]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['thoddea sekondamni', 'thodde sekond'],\n ss: [number + ' sekondamni', number + ' sekond'],\n m: ['eka mintan', 'ek minut'],\n mm: [number + ' mintamni', number + ' mintam'],\n h: ['eka voran', 'ek vor'],\n hh: [number + ' voramni', number + ' voram'],\n d: ['eka disan', 'ek dis'],\n dd: [number + ' disamni', number + ' dis'],\n M: ['eka mhoinean', 'ek mhoino'],\n MM: [number + ' mhoineamni', number + ' mhoine'],\n y: ['eka vorsan', 'ek voros'],\n yy: [number + ' vorsamni', number + ' vorsam'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomLatn = moment.defineLocale('gom-latn', {\n months: {\n standalone:\n 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split(\n '_'\n ),\n format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort:\n 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays: \"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var\".split('_'),\n weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),\n weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [vazta]',\n LTS: 'A h:mm:ss [vazta]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [vazta]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]',\n llll: 'ddd, D MMM YYYY, A h:mm [vazta]',\n },\n calendar: {\n sameDay: '[Aiz] LT',\n nextDay: '[Faleam] LT',\n nextWeek: '[Fuddlo] dddd[,] LT',\n lastDay: '[Kal] LT',\n lastWeek: '[Fattlo] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s adim',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'er' only applies to day of the month\n case 'D':\n return number + 'er';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week\n doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n meridiemParse: /rati|sokallim|donparam|sanje/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'rati') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'sokallim') {\n return hour;\n } else if (meridiem === 'donparam') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'sanje') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'rati';\n } else if (hour < 12) {\n return 'sokallim';\n } else if (hour < 16) {\n return 'donparam';\n } else if (hour < 20) {\n return 'sanje';\n } else {\n return 'rati';\n }\n },\n });\n\n return gomLatn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Gujarati [gu]\n//! author : Kaushik Thanki : https://github.com/Kaushik1987\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '૧',\n 2: '૨',\n 3: '૩',\n 4: '૪',\n 5: '૫',\n 6: '૬',\n 7: '૭',\n 8: '૮',\n 9: '૯',\n 0: '૦',\n },\n numberMap = {\n '૧': '1',\n '૨': '2',\n '૩': '3',\n '૪': '4',\n '૫': '5',\n '૬': '6',\n '૭': '7',\n '૮': '8',\n '૯': '9',\n '૦': '0',\n };\n\n var gu = moment.defineLocale('gu', {\n months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split(\n '_'\n ),\n monthsShort:\n 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split(\n '_'\n ),\n weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),\n weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm વાગ્યે',\n LTS: 'A h:mm:ss વાગ્યે',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm વાગ્યે',\n LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે',\n },\n calendar: {\n sameDay: '[આજ] LT',\n nextDay: '[કાલે] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ગઇકાલે] LT',\n lastWeek: '[પાછલા] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s મા',\n past: '%s પહેલા',\n s: 'અમુક પળો',\n ss: '%d સેકંડ',\n m: 'એક મિનિટ',\n mm: '%d મિનિટ',\n h: 'એક કલાક',\n hh: '%d કલાક',\n d: 'એક દિવસ',\n dd: '%d દિવસ',\n M: 'એક મહિનો',\n MM: '%d મહિનો',\n y: 'એક વર્ષ',\n yy: '%d વર્ષ',\n },\n preparse: function (string) {\n return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Gujarati notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.\n meridiemParse: /રાત|બપોર|સવાર|સાંજ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'રાત') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'સવાર') {\n return hour;\n } else if (meridiem === 'બપોર') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'સાંજ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'રાત';\n } else if (hour < 10) {\n return 'સવાર';\n } else if (hour < 17) {\n return 'બપોર';\n } else if (hour < 20) {\n return 'સાંજ';\n } else {\n return 'રાત';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return gu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Hebrew [he]\n//! author : Tomer Cohen : https://github.com/tomer\n//! author : Moshe Simantov : https://github.com/DevelopmentIL\n//! author : Tal Ater : https://github.com/TalAter\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var he = moment.defineLocale('he', {\n months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split(\n '_'\n ),\n monthsShort:\n 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),\n weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\n weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\n weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [ב]MMMM YYYY',\n LLL: 'D [ב]MMMM YYYY HH:mm',\n LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',\n l: 'D/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[היום ב־]LT',\n nextDay: '[מחר ב־]LT',\n nextWeek: 'dddd [בשעה] LT',\n lastDay: '[אתמול ב־]LT',\n lastWeek: '[ביום] dddd [האחרון בשעה] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'בעוד %s',\n past: 'לפני %s',\n s: 'מספר שניות',\n ss: '%d שניות',\n m: 'דקה',\n mm: '%d דקות',\n h: 'שעה',\n hh: function (number) {\n if (number === 2) {\n return 'שעתיים';\n }\n return number + ' שעות';\n },\n d: 'יום',\n dd: function (number) {\n if (number === 2) {\n return 'יומיים';\n }\n return number + ' ימים';\n },\n M: 'חודש',\n MM: function (number) {\n if (number === 2) {\n return 'חודשיים';\n }\n return number + ' חודשים';\n },\n y: 'שנה',\n yy: function (number) {\n if (number === 2) {\n return 'שנתיים';\n } else if (number % 10 === 0 && number !== 10) {\n return number + ' שנה';\n }\n return number + ' שנים';\n },\n },\n meridiemParse:\n /אחה\"צ|לפנה\"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,\n isPM: function (input) {\n return /^(אחה\"צ|אחרי הצהריים|בערב)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 5) {\n return 'לפנות בוקר';\n } else if (hour < 10) {\n return 'בבוקר';\n } else if (hour < 12) {\n return isLower ? 'לפנה\"צ' : 'לפני הצהריים';\n } else if (hour < 18) {\n return isLower ? 'אחה\"צ' : 'אחרי הצהריים';\n } else {\n return 'בערב';\n }\n },\n });\n\n return he;\n\n})));\n","//! moment.js locale configuration\n//! locale : Hindi [hi]\n//! author : Mayank Singhal : https://github.com/mayanksinghal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n },\n monthsParse = [\n /^जन/i,\n /^फ़र|फर/i,\n /^मार्च/i,\n /^अप्रै/i,\n /^मई/i,\n /^जून/i,\n /^जुल/i,\n /^अग/i,\n /^सितं|सित/i,\n /^अक्टू/i,\n /^नव|नवं/i,\n /^दिसं|दिस/i,\n ],\n shortMonthsParse = [\n /^जन/i,\n /^फ़र/i,\n /^मार्च/i,\n /^अप्रै/i,\n /^मई/i,\n /^जून/i,\n /^जुल/i,\n /^अग/i,\n /^सित/i,\n /^अक्टू/i,\n /^नव/i,\n /^दिस/i,\n ];\n\n var hi = moment.defineLocale('hi', {\n months: {\n format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split(\n '_'\n ),\n standalone:\n 'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split(\n '_'\n ),\n },\n monthsShort:\n 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),\n weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm बजे',\n LTS: 'A h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, A h:mm बजे',\n },\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: shortMonthsParse,\n\n monthsRegex:\n /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n\n monthsShortRegex:\n /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n\n monthsStrictRegex:\n /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i,\n\n monthsShortStrictRegex:\n /^(जन\\.?|फ़र\\.?|मार्च?|अप्रै\\.?|मई?|जून?|जुल\\.?|अग\\.?|सित\\.?|अक्टू\\.?|नव\\.?|दिस\\.?)/i,\n\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[कल] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[कल] LT',\n lastWeek: '[पिछले] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s में',\n past: '%s पहले',\n s: 'कुछ ही क्षण',\n ss: '%d सेकंड',\n m: 'एक मिनट',\n mm: '%d मिनट',\n h: 'एक घंटा',\n hh: '%d घंटे',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महीने',\n MM: '%d महीने',\n y: 'एक वर्ष',\n yy: '%d वर्ष',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Hindi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n meridiemParse: /रात|सुबह|दोपहर|शाम/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रात') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सुबह') {\n return hour;\n } else if (meridiem === 'दोपहर') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'शाम') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'रात';\n } else if (hour < 10) {\n return 'सुबह';\n } else if (hour < 17) {\n return 'दोपहर';\n } else if (hour < 20) {\n return 'शाम';\n } else {\n return 'रात';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return hi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Croatian [hr]\n//! author : Bojan Marković : https://github.com/bmarkovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var hr = moment.defineLocale('hr', {\n months: {\n format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split(\n '_'\n ),\n standalone:\n 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split(\n '_'\n ),\n },\n monthsShort:\n 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM YYYY',\n LLL: 'Do MMMM YYYY H:mm',\n LLLL: 'dddd, Do MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prošlu] [nedjelju] [u] LT';\n case 3:\n return '[prošlu] [srijedu] [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Hungarian [hu]\n//! author : Adam Brunner : https://github.com/adambrunner\n//! author : Peter Viszt : https://github.com/passatgt\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var weekEndings =\n 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');\n function translate(number, withoutSuffix, key, isFuture) {\n var num = number;\n switch (key) {\n case 's':\n return isFuture || withoutSuffix\n ? 'néhány másodperc'\n : 'néhány másodperce';\n case 'ss':\n return num + (isFuture || withoutSuffix)\n ? ' másodperc'\n : ' másodperce';\n case 'm':\n return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'mm':\n return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'h':\n return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'hh':\n return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'd':\n return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'dd':\n return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'M':\n return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'MM':\n return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'y':\n return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n case 'yy':\n return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n }\n return '';\n }\n function week(isFuture) {\n return (\n (isFuture ? '' : '[múlt] ') +\n '[' +\n weekEndings[this.day()] +\n '] LT[-kor]'\n );\n }\n\n var hu = moment.defineLocale('hu', {\n months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY. MMMM D.',\n LLL: 'YYYY. MMMM D. H:mm',\n LLLL: 'YYYY. MMMM D., dddd H:mm',\n },\n meridiemParse: /de|du/i,\n isPM: function (input) {\n return input.charAt(1).toLowerCase() === 'u';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower === true ? 'de' : 'DE';\n } else {\n return isLower === true ? 'du' : 'DU';\n }\n },\n calendar: {\n sameDay: '[ma] LT[-kor]',\n nextDay: '[holnap] LT[-kor]',\n nextWeek: function () {\n return week.call(this, true);\n },\n lastDay: '[tegnap] LT[-kor]',\n lastWeek: function () {\n return week.call(this, false);\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s múlva',\n past: '%s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return hu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Armenian [hy-am]\n//! author : Armendarabyan : https://github.com/armendarabyan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var hyAm = moment.defineLocale('hy-am', {\n months: {\n format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split(\n '_'\n ),\n standalone:\n 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split(\n '_'\n ),\n },\n monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),\n weekdays:\n 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split(\n '_'\n ),\n weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY թ.',\n LLL: 'D MMMM YYYY թ., HH:mm',\n LLLL: 'dddd, D MMMM YYYY թ., HH:mm',\n },\n calendar: {\n sameDay: '[այսօր] LT',\n nextDay: '[վաղը] LT',\n lastDay: '[երեկ] LT',\n nextWeek: function () {\n return 'dddd [օրը ժամը] LT';\n },\n lastWeek: function () {\n return '[անցած] dddd [օրը ժամը] LT';\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s հետո',\n past: '%s առաջ',\n s: 'մի քանի վայրկյան',\n ss: '%d վայրկյան',\n m: 'րոպե',\n mm: '%d րոպե',\n h: 'ժամ',\n hh: '%d ժամ',\n d: 'օր',\n dd: '%d օր',\n M: 'ամիս',\n MM: '%d ամիս',\n y: 'տարի',\n yy: '%d տարի',\n },\n meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,\n isPM: function (input) {\n return /^(ցերեկվա|երեկոյան)$/.test(input);\n },\n meridiem: function (hour) {\n if (hour < 4) {\n return 'գիշերվա';\n } else if (hour < 12) {\n return 'առավոտվա';\n } else if (hour < 17) {\n return 'ցերեկվա';\n } else {\n return 'երեկոյան';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}|\\d{1,2}-(ին|րդ)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'DDD':\n case 'w':\n case 'W':\n case 'DDDo':\n if (number === 1) {\n return number + '-ին';\n }\n return number + '-րդ';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hyAm;\n\n})));\n","//! moment.js locale configuration\n//! locale : Indonesian [id]\n//! author : Mohammad Satrio Utomo : https://github.com/tyok\n//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var id = moment.defineLocale('id', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|siang|sore|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'siang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sore' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'siang';\n } else if (hours < 19) {\n return 'sore';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Besok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kemarin pukul] LT',\n lastWeek: 'dddd [lalu pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lalu',\n s: 'beberapa detik',\n ss: '%d detik',\n m: 'semenit',\n mm: '%d menit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return id;\n\n})));\n","//! moment.js locale configuration\n//! locale : Icelandic [is]\n//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(n) {\n if (n % 100 === 11) {\n return true;\n } else if (n % 10 === 1) {\n return false;\n }\n return true;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nokkrar sekúndur'\n : 'nokkrum sekúndum';\n case 'ss':\n if (plural(number)) {\n return (\n result +\n (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum')\n );\n }\n return result + 'sekúnda';\n case 'm':\n return withoutSuffix ? 'mínúta' : 'mínútu';\n case 'mm':\n if (plural(number)) {\n return (\n result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum')\n );\n } else if (withoutSuffix) {\n return result + 'mínúta';\n }\n return result + 'mínútu';\n case 'hh':\n if (plural(number)) {\n return (\n result +\n (withoutSuffix || isFuture\n ? 'klukkustundir'\n : 'klukkustundum')\n );\n }\n return result + 'klukkustund';\n case 'd':\n if (withoutSuffix) {\n return 'dagur';\n }\n return isFuture ? 'dag' : 'degi';\n case 'dd':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'dagar';\n }\n return result + (isFuture ? 'daga' : 'dögum');\n } else if (withoutSuffix) {\n return result + 'dagur';\n }\n return result + (isFuture ? 'dag' : 'degi');\n case 'M':\n if (withoutSuffix) {\n return 'mánuður';\n }\n return isFuture ? 'mánuð' : 'mánuði';\n case 'MM':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'mánuðir';\n }\n return result + (isFuture ? 'mánuði' : 'mánuðum');\n } else if (withoutSuffix) {\n return result + 'mánuður';\n }\n return result + (isFuture ? 'mánuð' : 'mánuði');\n case 'y':\n return withoutSuffix || isFuture ? 'ár' : 'ári';\n case 'yy':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n }\n return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n }\n }\n\n var is = moment.defineLocale('is', {\n months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\n weekdays:\n 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\n weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm',\n },\n calendar: {\n sameDay: '[í dag kl.] LT',\n nextDay: '[á morgun kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[í gær kl.] LT',\n lastWeek: '[síðasta] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'eftir %s',\n past: 'fyrir %s síðan',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: 'klukkustund',\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return is;\n\n})));\n","//! moment.js locale configuration\n//! locale : Italian [it]\n//! author : Lorenzo : https://github.com/aliem\n//! author: Mattia Larentis: https://github.com/nostalgiaz\n//! author: Marco : https://github.com/Manfre98\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var it = moment.defineLocale('it', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: function () {\n return (\n '[Oggi a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextDay: function () {\n return (\n '[Domani a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextWeek: function () {\n return (\n 'dddd [a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastDay: function () {\n return (\n '[Ieri a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return (\n '[La scorsa] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n default:\n return (\n '[Lo scorso] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'tra %s',\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n w: 'una settimana',\n ww: '%d settimane',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return it;\n\n})));\n","//! moment.js locale configuration\n//! locale : Italian (Switzerland) [it-ch]\n//! author : xfh : https://github.com/xfh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var itCh = moment.defineLocale('it-ch', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return itCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Japanese [ja]\n//! author : LI Long : https://github.com/baryon\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ja = moment.defineLocale('ja', {\n eras: [\n {\n since: '2019-05-01',\n offset: 1,\n name: '令和',\n narrow: '㋿',\n abbr: 'R',\n },\n {\n since: '1989-01-08',\n until: '2019-04-30',\n offset: 1,\n name: '平成',\n narrow: '㍻',\n abbr: 'H',\n },\n {\n since: '1926-12-25',\n until: '1989-01-07',\n offset: 1,\n name: '昭和',\n narrow: '㍼',\n abbr: 'S',\n },\n {\n since: '1912-07-30',\n until: '1926-12-24',\n offset: 1,\n name: '大正',\n narrow: '㍽',\n abbr: 'T',\n },\n {\n since: '1873-01-01',\n until: '1912-07-29',\n offset: 6,\n name: '明治',\n narrow: '㍾',\n abbr: 'M',\n },\n {\n since: '0001-01-01',\n until: '1873-12-31',\n offset: 1,\n name: '西暦',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: '紀元前',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n eraYearOrdinalRegex: /(元|\\d+)年/,\n eraYearOrdinalParse: function (input, match) {\n return match[1] === '元' ? 1 : parseInt(match[1] || input, 10);\n },\n months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),\n weekdaysShort: '日_月_火_水_木_金_土'.split('_'),\n weekdaysMin: '日_月_火_水_木_金_土'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日 dddd HH:mm',\n l: 'YYYY/MM/DD',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日(ddd) HH:mm',\n },\n meridiemParse: /午前|午後/i,\n isPM: function (input) {\n return input === '午後';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return '午前';\n } else {\n return '午後';\n }\n },\n calendar: {\n sameDay: '[今日] LT',\n nextDay: '[明日] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[来週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n lastDay: '[昨日] LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[先週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}日/,\n ordinal: function (number, period) {\n switch (period) {\n case 'y':\n return number === 1 ? '元年' : number + '年';\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '数秒',\n ss: '%d秒',\n m: '1分',\n mm: '%d分',\n h: '1時間',\n hh: '%d時間',\n d: '1日',\n dd: '%d日',\n M: '1ヶ月',\n MM: '%dヶ月',\n y: '1年',\n yy: '%d年',\n },\n });\n\n return ja;\n\n})));\n","//! moment.js locale configuration\n//! locale : Javanese [jv]\n//! author : Rony Lantip : https://github.com/lantip\n//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var jv = moment.defineLocale('jv', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),\n weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /enjing|siyang|sonten|ndalu/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'enjing') {\n return hour;\n } else if (meridiem === 'siyang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sonten' || meridiem === 'ndalu') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'enjing';\n } else if (hours < 15) {\n return 'siyang';\n } else if (hours < 19) {\n return 'sonten';\n } else {\n return 'ndalu';\n }\n },\n calendar: {\n sameDay: '[Dinten puniko pukul] LT',\n nextDay: '[Mbenjang pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kala wingi pukul] LT',\n lastWeek: 'dddd [kepengker pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'wonten ing %s',\n past: '%s ingkang kepengker',\n s: 'sawetawis detik',\n ss: '%d detik',\n m: 'setunggal menit',\n mm: '%d menit',\n h: 'setunggal jam',\n hh: '%d jam',\n d: 'sedinten',\n dd: '%d dinten',\n M: 'sewulan',\n MM: '%d wulan',\n y: 'setaun',\n yy: '%d taun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return jv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Georgian [ka]\n//! author : Irakli Janiashvili : https://github.com/IrakliJani\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ka = moment.defineLocale('ka', {\n months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split(\n '_'\n ),\n monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),\n weekdays: {\n standalone:\n 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split(\n '_'\n ),\n format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split(\n '_'\n ),\n isFormat: /(წინა|შემდეგ)/,\n },\n weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),\n weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[დღეს] LT[-ზე]',\n nextDay: '[ხვალ] LT[-ზე]',\n lastDay: '[გუშინ] LT[-ზე]',\n nextWeek: '[შემდეგ] dddd LT[-ზე]',\n lastWeek: '[წინა] dddd LT-ზე',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return s.replace(\n /(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/,\n function ($0, $1, $2) {\n return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში';\n }\n );\n },\n past: function (s) {\n if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) {\n return s.replace(/(ი|ე)$/, 'ის წინ');\n }\n if (/წელი/.test(s)) {\n return s.replace(/წელი$/, 'წლის წინ');\n }\n return s;\n },\n s: 'რამდენიმე წამი',\n ss: '%d წამი',\n m: 'წუთი',\n mm: '%d წუთი',\n h: 'საათი',\n hh: '%d საათი',\n d: 'დღე',\n dd: '%d დღე',\n M: 'თვე',\n MM: '%d თვე',\n y: 'წელი',\n yy: '%d წელი',\n },\n dayOfMonthOrdinalParse: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\n ordinal: function (number) {\n if (number === 0) {\n return number;\n }\n if (number === 1) {\n return number + '-ლი';\n }\n if (\n number < 20 ||\n (number <= 100 && number % 20 === 0) ||\n number % 100 === 0\n ) {\n return 'მე-' + number;\n }\n return number + '-ე';\n },\n week: {\n dow: 1,\n doy: 7,\n },\n });\n\n return ka;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kazakh [kk]\n//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ші',\n 1: '-ші',\n 2: '-ші',\n 3: '-ші',\n 4: '-ші',\n 5: '-ші',\n 6: '-шы',\n 7: '-ші',\n 8: '-ші',\n 9: '-шы',\n 10: '-шы',\n 20: '-шы',\n 30: '-шы',\n 40: '-шы',\n 50: '-ші',\n 60: '-шы',\n 70: '-ші',\n 80: '-ші',\n 90: '-шы',\n 100: '-ші',\n };\n\n var kk = moment.defineLocale('kk', {\n months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split(\n '_'\n ),\n monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),\n weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split(\n '_'\n ),\n weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),\n weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгін сағат] LT',\n nextDay: '[Ертең сағат] LT',\n nextWeek: 'dddd [сағат] LT',\n lastDay: '[Кеше сағат] LT',\n lastWeek: '[Өткен аптаның] dddd [сағат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ішінде',\n past: '%s бұрын',\n s: 'бірнеше секунд',\n ss: '%d секунд',\n m: 'бір минут',\n mm: '%d минут',\n h: 'бір сағат',\n hh: '%d сағат',\n d: 'бір күн',\n dd: '%d күн',\n M: 'бір ай',\n MM: '%d ай',\n y: 'бір жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ші|шы)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return kk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Cambodian [km]\n//! author : Kruy Vanna : https://github.com/kruyvanna\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '១',\n 2: '២',\n 3: '៣',\n 4: '៤',\n 5: '៥',\n 6: '៦',\n 7: '៧',\n 8: '៨',\n 9: '៩',\n 0: '០',\n },\n numberMap = {\n '១': '1',\n '២': '2',\n '៣': '3',\n '៤': '4',\n '៥': '5',\n '៦': '6',\n '៧': '7',\n '៨': '8',\n '៩': '9',\n '០': '0',\n };\n\n var km = moment.defineLocale('km', {\n months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n monthsShort:\n 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),\n weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ព្រឹក|ល្ងាច/,\n isPM: function (input) {\n return input === 'ល្ងាច';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ព្រឹក';\n } else {\n return 'ល្ងាច';\n }\n },\n calendar: {\n sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',\n nextDay: '[ស្អែក ម៉ោង] LT',\n nextWeek: 'dddd [ម៉ោង] LT',\n lastDay: '[ម្សិលមិញ ម៉ោង] LT',\n lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sទៀត',\n past: '%sមុន',\n s: 'ប៉ុន្មានវិនាទី',\n ss: '%d វិនាទី',\n m: 'មួយនាទី',\n mm: '%d នាទី',\n h: 'មួយម៉ោង',\n hh: '%d ម៉ោង',\n d: 'មួយថ្ងៃ',\n dd: '%d ថ្ងៃ',\n M: 'មួយខែ',\n MM: '%d ខែ',\n y: 'មួយឆ្នាំ',\n yy: '%d ឆ្នាំ',\n },\n dayOfMonthOrdinalParse: /ទី\\d{1,2}/,\n ordinal: 'ទី%d',\n preparse: function (string) {\n return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return km;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kannada [kn]\n//! author : Rajeev Naik : https://github.com/rajeevnaikte\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '೧',\n 2: '೨',\n 3: '೩',\n 4: '೪',\n 5: '೫',\n 6: '೬',\n 7: '೭',\n 8: '೮',\n 9: '೯',\n 0: '೦',\n },\n numberMap = {\n '೧': '1',\n '೨': '2',\n '೩': '3',\n '೪': '4',\n '೫': '5',\n '೬': '6',\n '೭': '7',\n '೮': '8',\n '೯': '9',\n '೦': '0',\n };\n\n var kn = moment.defineLocale('kn', {\n months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split(\n '_'\n ),\n monthsShort:\n 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split(\n '_'\n ),\n weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),\n weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[ಇಂದು] LT',\n nextDay: '[ನಾಳೆ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ನಿನ್ನೆ] LT',\n lastWeek: '[ಕೊನೆಯ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ನಂತರ',\n past: '%s ಹಿಂದೆ',\n s: 'ಕೆಲವು ಕ್ಷಣಗಳು',\n ss: '%d ಸೆಕೆಂಡುಗಳು',\n m: 'ಒಂದು ನಿಮಿಷ',\n mm: '%d ನಿಮಿಷ',\n h: 'ಒಂದು ಗಂಟೆ',\n hh: '%d ಗಂಟೆ',\n d: 'ಒಂದು ದಿನ',\n dd: '%d ದಿನ',\n M: 'ಒಂದು ತಿಂಗಳು',\n MM: '%d ತಿಂಗಳು',\n y: 'ಒಂದು ವರ್ಷ',\n yy: '%d ವರ್ಷ',\n },\n preparse: function (string) {\n return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ರಾತ್ರಿ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {\n return hour;\n } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ಸಂಜೆ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ರಾತ್ರಿ';\n } else if (hour < 10) {\n return 'ಬೆಳಿಗ್ಗೆ';\n } else if (hour < 17) {\n return 'ಮಧ್ಯಾಹ್ನ';\n } else if (hour < 20) {\n return 'ಸಂಜೆ';\n } else {\n return 'ರಾತ್ರಿ';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ನೇ)/,\n ordinal: function (number) {\n return number + 'ನೇ';\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return kn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Korean [ko]\n//! author : Kyungwook, Park : https://github.com/kyungw00k\n//! author : Jeeeyul Lee \n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ko = moment.defineLocale('ko', {\n months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split(\n '_'\n ),\n weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),\n weekdaysShort: '일_월_화_수_목_금_토'.split('_'),\n weekdaysMin: '일_월_화_수_목_금_토'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY년 MMMM D일',\n LLL: 'YYYY년 MMMM D일 A h:mm',\n LLLL: 'YYYY년 MMMM D일 dddd A h:mm',\n l: 'YYYY.MM.DD.',\n ll: 'YYYY년 MMMM D일',\n lll: 'YYYY년 MMMM D일 A h:mm',\n llll: 'YYYY년 MMMM D일 dddd A h:mm',\n },\n calendar: {\n sameDay: '오늘 LT',\n nextDay: '내일 LT',\n nextWeek: 'dddd LT',\n lastDay: '어제 LT',\n lastWeek: '지난주 dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s 후',\n past: '%s 전',\n s: '몇 초',\n ss: '%d초',\n m: '1분',\n mm: '%d분',\n h: '한 시간',\n hh: '%d시간',\n d: '하루',\n dd: '%d일',\n M: '한 달',\n MM: '%d달',\n y: '일 년',\n yy: '%d년',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(일|월|주)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '일';\n case 'M':\n return number + '월';\n case 'w':\n case 'W':\n return number + '주';\n default:\n return number;\n }\n },\n meridiemParse: /오전|오후/,\n isPM: function (token) {\n return token === '오후';\n },\n meridiem: function (hour, minute, isUpper) {\n return hour < 12 ? '오전' : '오후';\n },\n });\n\n return ko;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kurdish [ku]\n//! author : Shahram Mebashar : https://github.com/ShahramMebashar\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n },\n months = [\n 'کانونی دووەم',\n 'شوبات',\n 'ئازار',\n 'نیسان',\n 'ئایار',\n 'حوزەیران',\n 'تەمموز',\n 'ئاب',\n 'ئەیلوول',\n 'تشرینی یەكەم',\n 'تشرینی دووەم',\n 'كانونی یەکەم',\n ];\n\n var ku = moment.defineLocale('ku', {\n months: months,\n monthsShort: months,\n weekdays:\n 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split(\n '_'\n ),\n weekdaysShort:\n 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split('_'),\n weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ئێواره‌|به‌یانی/,\n isPM: function (input) {\n return /ئێواره‌/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'به‌یانی';\n } else {\n return 'ئێواره‌';\n }\n },\n calendar: {\n sameDay: '[ئه‌مرۆ كاتژمێر] LT',\n nextDay: '[به‌یانی كاتژمێر] LT',\n nextWeek: 'dddd [كاتژمێر] LT',\n lastDay: '[دوێنێ كاتژمێر] LT',\n lastWeek: 'dddd [كاتژمێر] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'له‌ %s',\n past: '%s',\n s: 'چه‌ند چركه‌یه‌ك',\n ss: 'چركه‌ %d',\n m: 'یه‌ك خوله‌ك',\n mm: '%d خوله‌ك',\n h: 'یه‌ك كاتژمێر',\n hh: '%d كاتژمێر',\n d: 'یه‌ك ڕۆژ',\n dd: '%d ڕۆژ',\n M: 'یه‌ك مانگ',\n MM: '%d مانگ',\n y: 'یه‌ك ساڵ',\n yy: '%d ساڵ',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ku;\n\n})));\n","//! moment.js locale configuration\n//! locale : Northern Kurdish [ku-kmr]\n//! authors : Mazlum Özdogan : https://github.com/mergehez\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(num, withoutSuffix, key, isFuture) {\n var format = {\n s: ['çend sanîye', 'çend sanîyeyan'],\n ss: [num + ' sanîye', num + ' sanîyeyan'],\n m: ['deqîqeyek', 'deqîqeyekê'],\n mm: [num + ' deqîqe', num + ' deqîqeyan'],\n h: ['saetek', 'saetekê'],\n hh: [num + ' saet', num + ' saetan'],\n d: ['rojek', 'rojekê'],\n dd: [num + ' roj', num + ' rojan'],\n w: ['hefteyek', 'hefteyekê'],\n ww: [num + ' hefte', num + ' hefteyan'],\n M: ['mehek', 'mehekê'],\n MM: [num + ' meh', num + ' mehan'],\n y: ['salek', 'salekê'],\n yy: [num + ' sal', num + ' salan'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n // function obliqueNumSuffix(num) {\n // if(num.includes(':'))\n // num = parseInt(num.split(':')[0]);\n // else\n // num = parseInt(num);\n // return num == 0 || num % 10 == 1 ? 'ê'\n // : (num > 10 && num % 10 == 0 ? 'î' : 'an');\n // }\n function ezafeNumSuffix(num) {\n num = '' + num;\n var l = num.substring(num.length - 1),\n ll = num.length > 1 ? num.substring(num.length - 2) : '';\n if (\n !(ll == 12 || ll == 13) &&\n (l == '2' || l == '3' || ll == '50' || l == '70' || l == '80')\n )\n return 'yê';\n return 'ê';\n }\n\n var kuKmr = moment.defineLocale('ku-kmr', {\n // According to the spelling rules defined by the work group of Weqfa Mezopotamyayê (Mesopotamia Foundation)\n // this should be: 'Kanûna Paşîn_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Çirîya Pêşîn_Çirîya Paşîn_Kanûna Pêşîn'\n // But the names below are more well known and handy\n months: 'Rêbendan_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Cotmeh_Mijdar_Berfanbar'.split(\n '_'\n ),\n monthsShort: 'Rêb_Sib_Ada_Nîs_Gul_Hez_Tîr_Teb_Îlo_Cot_Mij_Ber'.split('_'),\n monthsParseExact: true,\n weekdays: 'Yekşem_Duşem_Sêşem_Çarşem_Pêncşem_În_Şemî'.split('_'),\n weekdaysShort: 'Yek_Du_Sê_Çar_Pên_În_Şem'.split('_'),\n weekdaysMin: 'Ye_Du_Sê_Ça_Pê_În_Şe'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'bn' : 'BN';\n } else {\n return isLower ? 'pn' : 'PN';\n }\n },\n meridiemParse: /bn|BN|pn|PN/,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM[a] YYYY[an]',\n LLL: 'Do MMMM[a] YYYY[an] HH:mm',\n LLLL: 'dddd, Do MMMM[a] YYYY[an] HH:mm',\n ll: 'Do MMM[.] YYYY[an]',\n lll: 'Do MMM[.] YYYY[an] HH:mm',\n llll: 'ddd[.], Do MMM[.] YYYY[an] HH:mm',\n },\n calendar: {\n sameDay: '[Îro di saet] LT [de]',\n nextDay: '[Sibê di saet] LT [de]',\n nextWeek: 'dddd [di saet] LT [de]',\n lastDay: '[Duh di saet] LT [de]',\n lastWeek: 'dddd[a borî di saet] LT [de]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'di %s de',\n past: 'berî %s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(?:yê|ê|\\.)/,\n ordinal: function (num, period) {\n var p = period.toLowerCase();\n if (p.includes('w') || p.includes('m')) return num + '.';\n\n return num + ezafeNumSuffix(num);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return kuKmr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kyrgyz [ky]\n//! author : Chyngyz Arystan uulu : https://github.com/chyngyz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-чү',\n 1: '-чи',\n 2: '-чи',\n 3: '-чү',\n 4: '-чү',\n 5: '-чи',\n 6: '-чы',\n 7: '-чи',\n 8: '-чи',\n 9: '-чу',\n 10: '-чу',\n 20: '-чы',\n 30: '-чу',\n 40: '-чы',\n 50: '-чү',\n 60: '-чы',\n 70: '-чи',\n 80: '-чи',\n 90: '-чу',\n 100: '-чү',\n };\n\n var ky = moment.defineLocale('ky', {\n months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n '_'\n ),\n monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split(\n '_'\n ),\n weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split(\n '_'\n ),\n weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),\n weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгүн саат] LT',\n nextDay: '[Эртең саат] LT',\n nextWeek: 'dddd [саат] LT',\n lastDay: '[Кечээ саат] LT',\n lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ичинде',\n past: '%s мурун',\n s: 'бирнече секунд',\n ss: '%d секунд',\n m: 'бир мүнөт',\n mm: '%d мүнөт',\n h: 'бир саат',\n hh: '%d саат',\n d: 'бир күн',\n dd: '%d күн',\n M: 'бир ай',\n MM: '%d ай',\n y: 'бир жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(чи|чы|чү|чу)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ky;\n\n})));\n","//! moment.js locale configuration\n//! locale : Luxembourgish [lb]\n//! author : mweimerskirch : https://github.com/mweimerskirch\n//! author : David Raison : https://github.com/kwisatz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eng Minutt', 'enger Minutt'],\n h: ['eng Stonn', 'enger Stonn'],\n d: ['een Dag', 'engem Dag'],\n M: ['ee Mount', 'engem Mount'],\n y: ['ee Joer', 'engem Joer'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n function processFutureTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'a ' + string;\n }\n return 'an ' + string;\n }\n function processPastTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'viru ' + string;\n }\n return 'virun ' + string;\n }\n /**\n * Returns true if the word before the given number loses the '-n' ending.\n * e.g. 'an 10 Deeg' but 'a 5 Deeg'\n *\n * @param number {integer}\n * @returns {boolean}\n */\n function eifelerRegelAppliesToNumber(number) {\n number = parseInt(number, 10);\n if (isNaN(number)) {\n return false;\n }\n if (number < 0) {\n // Negative Number --> always true\n return true;\n } else if (number < 10) {\n // Only 1 digit\n if (4 <= number && number <= 7) {\n return true;\n }\n return false;\n } else if (number < 100) {\n // 2 digits\n var lastDigit = number % 10,\n firstDigit = number / 10;\n if (lastDigit === 0) {\n return eifelerRegelAppliesToNumber(firstDigit);\n }\n return eifelerRegelAppliesToNumber(lastDigit);\n } else if (number < 10000) {\n // 3 or 4 digits --> recursively check first digit\n while (number >= 10) {\n number = number / 10;\n }\n return eifelerRegelAppliesToNumber(number);\n } else {\n // Anything larger than 4 digits: recursively check first n-3 digits\n number = number / 1000;\n return eifelerRegelAppliesToNumber(number);\n }\n }\n\n var lb = moment.defineLocale('lb', {\n months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split(\n '_'\n ),\n weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm [Auer]',\n LTS: 'H:mm:ss [Auer]',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm [Auer]',\n LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]',\n },\n calendar: {\n sameDay: '[Haut um] LT',\n sameElse: 'L',\n nextDay: '[Muer um] LT',\n nextWeek: 'dddd [um] LT',\n lastDay: '[Gëschter um] LT',\n lastWeek: function () {\n // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\n switch (this.day()) {\n case 2:\n case 4:\n return '[Leschten] dddd [um] LT';\n default:\n return '[Leschte] dddd [um] LT';\n }\n },\n },\n relativeTime: {\n future: processFutureTime,\n past: processPastTime,\n s: 'e puer Sekonnen',\n ss: '%d Sekonnen',\n m: processRelativeTime,\n mm: '%d Minutten',\n h: processRelativeTime,\n hh: '%d Stonnen',\n d: processRelativeTime,\n dd: '%d Deeg',\n M: processRelativeTime,\n MM: '%d Méint',\n y: processRelativeTime,\n yy: '%d Joer',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lb;\n\n})));\n","//! moment.js locale configuration\n//! locale : Lao [lo]\n//! author : Ryan Hart : https://github.com/ryanhart2\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var lo = moment.defineLocale('lo', {\n months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n '_'\n ),\n monthsShort:\n 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n '_'\n ),\n weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'ວັນdddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,\n isPM: function (input) {\n return input === 'ຕອນແລງ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ຕອນເຊົ້າ';\n } else {\n return 'ຕອນແລງ';\n }\n },\n calendar: {\n sameDay: '[ມື້ນີ້ເວລາ] LT',\n nextDay: '[ມື້ອື່ນເວລາ] LT',\n nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT',\n lastDay: '[ມື້ວານນີ້ເວລາ] LT',\n lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ອີກ %s',\n past: '%sຜ່ານມາ',\n s: 'ບໍ່ເທົ່າໃດວິນາທີ',\n ss: '%d ວິນາທີ',\n m: '1 ນາທີ',\n mm: '%d ນາທີ',\n h: '1 ຊົ່ວໂມງ',\n hh: '%d ຊົ່ວໂມງ',\n d: '1 ມື້',\n dd: '%d ມື້',\n M: '1 ເດືອນ',\n MM: '%d ເດືອນ',\n y: '1 ປີ',\n yy: '%d ປີ',\n },\n dayOfMonthOrdinalParse: /(ທີ່)\\d{1,2}/,\n ordinal: function (number) {\n return 'ທີ່' + number;\n },\n });\n\n return lo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Lithuanian [lt]\n//! author : Mindaugas Mozūras : https://github.com/mmozuras\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundė_sekundžių_sekundes',\n m: 'minutė_minutės_minutę',\n mm: 'minutės_minučių_minutes',\n h: 'valanda_valandos_valandą',\n hh: 'valandos_valandų_valandas',\n d: 'diena_dienos_dieną',\n dd: 'dienos_dienų_dienas',\n M: 'mėnuo_mėnesio_mėnesį',\n MM: 'mėnesiai_mėnesių_mėnesius',\n y: 'metai_metų_metus',\n yy: 'metai_metų_metus',\n };\n function translateSeconds(number, withoutSuffix, key, isFuture) {\n if (withoutSuffix) {\n return 'kelios sekundės';\n } else {\n return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n }\n }\n function translateSingular(number, withoutSuffix, key, isFuture) {\n return withoutSuffix\n ? forms(key)[0]\n : isFuture\n ? forms(key)[1]\n : forms(key)[2];\n }\n function special(number) {\n return number % 10 === 0 || (number > 10 && number < 20);\n }\n function forms(key) {\n return units[key].split('_');\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n if (number === 1) {\n return (\n result + translateSingular(number, withoutSuffix, key[0], isFuture)\n );\n } else if (withoutSuffix) {\n return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n } else {\n if (isFuture) {\n return result + forms(key)[1];\n } else {\n return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n }\n }\n }\n var lt = moment.defineLocale('lt', {\n months: {\n format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split(\n '_'\n ),\n standalone:\n 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split(\n '_'\n ),\n isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/,\n },\n monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n weekdays: {\n format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split(\n '_'\n ),\n standalone:\n 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split(\n '_'\n ),\n isFormat: /dddd HH:mm/,\n },\n weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),\n weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY [m.] MMMM D [d.]',\n LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n l: 'YYYY-MM-DD',\n ll: 'YYYY [m.] MMMM D [d.]',\n lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]',\n },\n calendar: {\n sameDay: '[Šiandien] LT',\n nextDay: '[Rytoj] LT',\n nextWeek: 'dddd LT',\n lastDay: '[Vakar] LT',\n lastWeek: '[Praėjusį] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'po %s',\n past: 'prieš %s',\n s: translateSeconds,\n ss: translate,\n m: translateSingular,\n mm: translate,\n h: translateSingular,\n hh: translate,\n d: translateSingular,\n dd: translate,\n M: translateSingular,\n MM: translate,\n y: translateSingular,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n ordinal: function (number) {\n return number + '-oji';\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Latvian [lv]\n//! author : Kristaps Karlsons : https://github.com/skakri\n//! author : Jānis Elmeris : https://github.com/JanisE\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'),\n m: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n h: 'stundas_stundām_stunda_stundas'.split('_'),\n hh: 'stundas_stundām_stunda_stundas'.split('_'),\n d: 'dienas_dienām_diena_dienas'.split('_'),\n dd: 'dienas_dienām_diena_dienas'.split('_'),\n M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n y: 'gada_gadiem_gads_gadi'.split('_'),\n yy: 'gada_gadiem_gads_gadi'.split('_'),\n };\n /**\n * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.\n */\n function format(forms, number, withoutSuffix) {\n if (withoutSuffix) {\n // E.g. \"21 minūte\", \"3 minūtes\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];\n } else {\n // E.g. \"21 minūtes\" as in \"pēc 21 minūtes\".\n // E.g. \"3 minūtēm\" as in \"pēc 3 minūtēm\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];\n }\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n return number + ' ' + format(units[key], number, withoutSuffix);\n }\n function relativeTimeWithSingular(number, withoutSuffix, key) {\n return format(units[key], number, withoutSuffix);\n }\n function relativeSeconds(number, withoutSuffix) {\n return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';\n }\n\n var lv = moment.defineLocale('lv', {\n months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),\n weekdays:\n 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split(\n '_'\n ),\n weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY.',\n LL: 'YYYY. [gada] D. MMMM',\n LLL: 'YYYY. [gada] D. MMMM, HH:mm',\n LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm',\n },\n calendar: {\n sameDay: '[Šodien pulksten] LT',\n nextDay: '[Rīt pulksten] LT',\n nextWeek: 'dddd [pulksten] LT',\n lastDay: '[Vakar pulksten] LT',\n lastWeek: '[Pagājušā] dddd [pulksten] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'pēc %s',\n past: 'pirms %s',\n s: relativeSeconds,\n ss: relativeTimeWithPlural,\n m: relativeTimeWithSingular,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithSingular,\n hh: relativeTimeWithPlural,\n d: relativeTimeWithSingular,\n dd: relativeTimeWithPlural,\n M: relativeTimeWithSingular,\n MM: relativeTimeWithPlural,\n y: relativeTimeWithSingular,\n yy: relativeTimeWithPlural,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Montenegrin [me]\n//! author : Miodrag Nikač : https://github.com/miodragnikac\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekund', 'sekunda', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mjesec', 'mjeseca', 'mjeseci'],\n yy: ['godina', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n var me = moment.defineLocale('me', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sjutra u] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[prošle] [nedjelje] [u] LT',\n '[prošlog] [ponedjeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srijede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'dan',\n dd: translator.translate,\n M: 'mjesec',\n MM: translator.translate,\n y: 'godinu',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return me;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maori [mi]\n//! author : John Corrigan : https://github.com/johnideal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mi = moment.defineLocale('mi', {\n months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split(\n '_'\n ),\n monthsShort:\n 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split(\n '_'\n ),\n monthsRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,\n weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),\n weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [i] HH:mm',\n LLLL: 'dddd, D MMMM YYYY [i] HH:mm',\n },\n calendar: {\n sameDay: '[i teie mahana, i] LT',\n nextDay: '[apopo i] LT',\n nextWeek: 'dddd [i] LT',\n lastDay: '[inanahi i] LT',\n lastWeek: 'dddd [whakamutunga i] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i roto i %s',\n past: '%s i mua',\n s: 'te hēkona ruarua',\n ss: '%d hēkona',\n m: 'he meneti',\n mm: '%d meneti',\n h: 'te haora',\n hh: '%d haora',\n d: 'he ra',\n dd: '%d ra',\n M: 'he marama',\n MM: '%d marama',\n y: 'he tau',\n yy: '%d tau',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return mi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Macedonian [mk]\n//! author : Borislav Mickov : https://github.com/B0k0\n//! author : Sashko Todorov : https://github.com/bkyceh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mk = moment.defineLocale('mk', {\n months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'),\n weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Денес во] LT',\n nextDay: '[Утре во] LT',\n nextWeek: '[Во] dddd [во] LT',\n lastDay: '[Вчера во] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Изминатата] dddd [во] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Изминатиот] dddd [во] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пред %s',\n s: 'неколку секунди',\n ss: '%d секунди',\n m: 'една минута',\n mm: '%d минути',\n h: 'еден час',\n hh: '%d часа',\n d: 'еден ден',\n dd: '%d дена',\n M: 'еден месец',\n MM: '%d месеци',\n y: 'една година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return mk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malayalam [ml]\n//! author : Floyd Pink : https://github.com/floydpink\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ml = moment.defineLocale('ml', {\n months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split(\n '_'\n ),\n monthsShort:\n 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split(\n '_'\n ),\n weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),\n weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm -നു',\n LTS: 'A h:mm:ss -നു',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm -നു',\n LLLL: 'dddd, D MMMM YYYY, A h:mm -നു',\n },\n calendar: {\n sameDay: '[ഇന്ന്] LT',\n nextDay: '[നാളെ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ഇന്നലെ] LT',\n lastWeek: '[കഴിഞ്ഞ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s കഴിഞ്ഞ്',\n past: '%s മുൻപ്',\n s: 'അൽപ നിമിഷങ്ങൾ',\n ss: '%d സെക്കൻഡ്',\n m: 'ഒരു മിനിറ്റ്',\n mm: '%d മിനിറ്റ്',\n h: 'ഒരു മണിക്കൂർ',\n hh: '%d മണിക്കൂർ',\n d: 'ഒരു ദിവസം',\n dd: '%d ദിവസം',\n M: 'ഒരു മാസം',\n MM: '%d മാസം',\n y: 'ഒരു വർഷം',\n yy: '%d വർഷം',\n },\n meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'രാത്രി' && hour >= 4) ||\n meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||\n meridiem === 'വൈകുന്നേരം'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'രാത്രി';\n } else if (hour < 12) {\n return 'രാവിലെ';\n } else if (hour < 17) {\n return 'ഉച്ച കഴിഞ്ഞ്';\n } else if (hour < 20) {\n return 'വൈകുന്നേരം';\n } else {\n return 'രാത്രി';\n }\n },\n });\n\n return ml;\n\n})));\n","//! moment.js locale configuration\n//! locale : Mongolian [mn]\n//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key, isFuture) {\n switch (key) {\n case 's':\n return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';\n case 'ss':\n return number + (withoutSuffix ? ' секунд' : ' секундын');\n case 'm':\n case 'mm':\n return number + (withoutSuffix ? ' минут' : ' минутын');\n case 'h':\n case 'hh':\n return number + (withoutSuffix ? ' цаг' : ' цагийн');\n case 'd':\n case 'dd':\n return number + (withoutSuffix ? ' өдөр' : ' өдрийн');\n case 'M':\n case 'MM':\n return number + (withoutSuffix ? ' сар' : ' сарын');\n case 'y':\n case 'yy':\n return number + (withoutSuffix ? ' жил' : ' жилийн');\n default:\n return number;\n }\n }\n\n var mn = moment.defineLocale('mn', {\n months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split(\n '_'\n ),\n monthsShort:\n '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),\n weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),\n weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY оны MMMMын D',\n LLL: 'YYYY оны MMMMын D HH:mm',\n LLLL: 'dddd, YYYY оны MMMMын D HH:mm',\n },\n meridiemParse: /ҮӨ|ҮХ/i,\n isPM: function (input) {\n return input === 'ҮХ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ҮӨ';\n } else {\n return 'ҮХ';\n }\n },\n calendar: {\n sameDay: '[Өнөөдөр] LT',\n nextDay: '[Маргааш] LT',\n nextWeek: '[Ирэх] dddd LT',\n lastDay: '[Өчигдөр] LT',\n lastWeek: '[Өнгөрсөн] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s дараа',\n past: '%s өмнө',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2} өдөр/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + ' өдөр';\n default:\n return number;\n }\n },\n });\n\n return mn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Marathi [mr]\n//! author : Harshad Kale : https://github.com/kalehv\n//! author : Vivek Athalye : https://github.com/vnathalye\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n function relativeTimeMr(number, withoutSuffix, string, isFuture) {\n var output = '';\n if (withoutSuffix) {\n switch (string) {\n case 's':\n output = 'काही सेकंद';\n break;\n case 'ss':\n output = '%d सेकंद';\n break;\n case 'm':\n output = 'एक मिनिट';\n break;\n case 'mm':\n output = '%d मिनिटे';\n break;\n case 'h':\n output = 'एक तास';\n break;\n case 'hh':\n output = '%d तास';\n break;\n case 'd':\n output = 'एक दिवस';\n break;\n case 'dd':\n output = '%d दिवस';\n break;\n case 'M':\n output = 'एक महिना';\n break;\n case 'MM':\n output = '%d महिने';\n break;\n case 'y':\n output = 'एक वर्ष';\n break;\n case 'yy':\n output = '%d वर्षे';\n break;\n }\n } else {\n switch (string) {\n case 's':\n output = 'काही सेकंदां';\n break;\n case 'ss':\n output = '%d सेकंदां';\n break;\n case 'm':\n output = 'एका मिनिटा';\n break;\n case 'mm':\n output = '%d मिनिटां';\n break;\n case 'h':\n output = 'एका तासा';\n break;\n case 'hh':\n output = '%d तासां';\n break;\n case 'd':\n output = 'एका दिवसा';\n break;\n case 'dd':\n output = '%d दिवसां';\n break;\n case 'M':\n output = 'एका महिन्या';\n break;\n case 'MM':\n output = '%d महिन्यां';\n break;\n case 'y':\n output = 'एका वर्षा';\n break;\n case 'yy':\n output = '%d वर्षां';\n break;\n }\n }\n return output.replace(/%d/i, number);\n }\n\n var mr = moment.defineLocale('mr', {\n months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n '_'\n ),\n monthsShort:\n 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm वाजता',\n LTS: 'A h:mm:ss वाजता',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm वाजता',\n LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता',\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[उद्या] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[काल] LT',\n lastWeek: '[मागील] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमध्ये',\n past: '%sपूर्वी',\n s: relativeTimeMr,\n ss: relativeTimeMr,\n m: relativeTimeMr,\n mm: relativeTimeMr,\n h: relativeTimeMr,\n hh: relativeTimeMr,\n d: relativeTimeMr,\n dd: relativeTimeMr,\n M: relativeTimeMr,\n MM: relativeTimeMr,\n y: relativeTimeMr,\n yy: relativeTimeMr,\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'पहाटे' || meridiem === 'सकाळी') {\n return hour;\n } else if (\n meridiem === 'दुपारी' ||\n meridiem === 'सायंकाळी' ||\n meridiem === 'रात्री'\n ) {\n return hour >= 12 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour >= 0 && hour < 6) {\n return 'पहाटे';\n } else if (hour < 12) {\n return 'सकाळी';\n } else if (hour < 17) {\n return 'दुपारी';\n } else if (hour < 20) {\n return 'सायंकाळी';\n } else {\n return 'रात्री';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return mr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malay [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ms = moment.defineLocale('ms', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ms;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malay [ms-my]\n//! note : DEPRECATED, the correct one is [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var msMy = moment.defineLocale('ms-my', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return msMy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maltese (Malta) [mt]\n//! author : Alessandro Maruccia : https://github.com/alesma\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mt = moment.defineLocale('mt', {\n months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),\n weekdays:\n 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split(\n '_'\n ),\n weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),\n weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Illum fil-]LT',\n nextDay: '[Għada fil-]LT',\n nextWeek: 'dddd [fil-]LT',\n lastDay: '[Il-bieraħ fil-]LT',\n lastWeek: 'dddd [li għadda] [fil-]LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'f’ %s',\n past: '%s ilu',\n s: 'ftit sekondi',\n ss: '%d sekondi',\n m: 'minuta',\n mm: '%d minuti',\n h: 'siegħa',\n hh: '%d siegħat',\n d: 'ġurnata',\n dd: '%d ġranet',\n M: 'xahar',\n MM: '%d xhur',\n y: 'sena',\n yy: '%d sni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return mt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Burmese [my]\n//! author : Squar team, mysquar.com\n//! author : David Rossellat : https://github.com/gholadr\n//! author : Tin Aung Lin : https://github.com/thanyawzinmin\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '၁',\n 2: '၂',\n 3: '၃',\n 4: '၄',\n 5: '၅',\n 6: '၆',\n 7: '၇',\n 8: '၈',\n 9: '၉',\n 0: '၀',\n },\n numberMap = {\n '၁': '1',\n '၂': '2',\n '၃': '3',\n '၄': '4',\n '၅': '5',\n '၆': '6',\n '၇': '7',\n '၈': '8',\n '၉': '9',\n '၀': '0',\n };\n\n var my = moment.defineLocale('my', {\n months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split(\n '_'\n ),\n monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),\n weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split(\n '_'\n ),\n weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ယနေ.] LT [မှာ]',\n nextDay: '[မနက်ဖြန်] LT [မှာ]',\n nextWeek: 'dddd LT [မှာ]',\n lastDay: '[မနေ.က] LT [မှာ]',\n lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'လာမည့် %s မှာ',\n past: 'လွန်ခဲ့သော %s က',\n s: 'စက္ကန်.အနည်းငယ်',\n ss: '%d စက္ကန့်',\n m: 'တစ်မိနစ်',\n mm: '%d မိနစ်',\n h: 'တစ်နာရီ',\n hh: '%d နာရီ',\n d: 'တစ်ရက်',\n dd: '%d ရက်',\n M: 'တစ်လ',\n MM: '%d လ',\n y: 'တစ်နှစ်',\n yy: '%d နှစ်',\n },\n preparse: function (string) {\n return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return my;\n\n})));\n","//! moment.js locale configuration\n//! locale : Norwegian Bokmål [nb]\n//! authors : Espen Hovlandsdal : https://github.com/rexxars\n//! Sigurd Gartmann : https://github.com/sigurdga\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var nb = moment.defineLocale('nb', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[forrige] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'noen sekunder',\n ss: '%d sekunder',\n m: 'ett minutt',\n mm: '%d minutter',\n h: 'én time',\n hh: '%d timer',\n d: 'én dag',\n dd: '%d dager',\n w: 'én uke',\n ww: '%d uker',\n M: 'én måned',\n MM: '%d måneder',\n y: 'ett år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nb;\n\n})));\n","//! moment.js locale configuration\n//! locale : Nepalese [ne]\n//! author : suvash : https://github.com/suvash\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n var ne = moment.defineLocale('ne', {\n months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split(\n '_'\n ),\n monthsShort:\n 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split(\n '_'\n ),\n weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),\n weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'Aको h:mm बजे',\n LTS: 'Aको h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, Aको h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /राति|बिहान|दिउँसो|साँझ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राति') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'बिहान') {\n return hour;\n } else if (meridiem === 'दिउँसो') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'साँझ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 3) {\n return 'राति';\n } else if (hour < 12) {\n return 'बिहान';\n } else if (hour < 16) {\n return 'दिउँसो';\n } else if (hour < 20) {\n return 'साँझ';\n } else {\n return 'राति';\n }\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[भोलि] LT',\n nextWeek: '[आउँदो] dddd[,] LT',\n lastDay: '[हिजो] LT',\n lastWeek: '[गएको] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमा',\n past: '%s अगाडि',\n s: 'केही क्षण',\n ss: '%d सेकेण्ड',\n m: 'एक मिनेट',\n mm: '%d मिनेट',\n h: 'एक घण्टा',\n hh: '%d घण्टा',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महिना',\n MM: '%d महिना',\n y: 'एक बर्ष',\n yy: '%d बर्ष',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ne;\n\n})));\n","//! moment.js locale configuration\n//! locale : Dutch [nl]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots =\n 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots =\n 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n monthsParse = [\n /^jan/i,\n /^feb/i,\n /^(maart|mrt\\.?)$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\n monthsRegex =\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nl = moment.defineLocale('nl', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex:\n /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n weekdays:\n 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n w: 'één week',\n ww: '%d weken',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Dutch (Belgium) [nl-be]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots =\n 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots =\n 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n monthsParse = [\n /^jan/i,\n /^feb/i,\n /^(maart|mrt\\.?)$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\n monthsRegex =\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nlBe = moment.defineLocale('nl-be', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex:\n /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n weekdays:\n 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nlBe;\n\n})));\n","//! moment.js locale configuration\n//! locale : Nynorsk [nn]\n//! authors : https://github.com/mechuwind\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var nn = moment.defineLocale('nn', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'),\n weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[I dag klokka] LT',\n nextDay: '[I morgon klokka] LT',\n nextWeek: 'dddd [klokka] LT',\n lastDay: '[I går klokka] LT',\n lastWeek: '[Føregåande] dddd [klokka] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s sidan',\n s: 'nokre sekund',\n ss: '%d sekund',\n m: 'eit minutt',\n mm: '%d minutt',\n h: 'ein time',\n hh: '%d timar',\n d: 'ein dag',\n dd: '%d dagar',\n w: 'ei veke',\n ww: '%d veker',\n M: 'ein månad',\n MM: '%d månader',\n y: 'eit år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Occitan, lengadocian dialecte [oc-lnc]\n//! author : Quentin PAGÈS : https://github.com/Quenty31\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ocLnc = moment.defineLocale('oc-lnc', {\n months: {\n standalone:\n 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split(\n '_'\n ),\n format: \"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort:\n 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: '[uèi a] LT',\n nextDay: '[deman a] LT',\n nextWeek: 'dddd [a] LT',\n lastDay: '[ièr a] LT',\n lastWeek: 'dddd [passat a] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'unas segondas',\n ss: '%d segondas',\n m: 'una minuta',\n mm: '%d minutas',\n h: 'una ora',\n hh: '%d oras',\n d: 'un jorn',\n dd: '%d jorns',\n M: 'un mes',\n MM: '%d meses',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4,\n },\n });\n\n return ocLnc;\n\n})));\n","//! moment.js locale configuration\n//! locale : Punjabi (India) [pa-in]\n//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '੧',\n 2: '੨',\n 3: '੩',\n 4: '੪',\n 5: '੫',\n 6: '੬',\n 7: '੭',\n 8: '੮',\n 9: '੯',\n 0: '੦',\n },\n numberMap = {\n '੧': '1',\n '੨': '2',\n '੩': '3',\n '੪': '4',\n '੫': '5',\n '੬': '6',\n '੭': '7',\n '੮': '8',\n '੯': '9',\n '੦': '0',\n };\n\n var paIn = moment.defineLocale('pa-in', {\n // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.\n months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n monthsShort:\n 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split(\n '_'\n ),\n weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm ਵਜੇ',\n LTS: 'A h:mm:ss ਵਜੇ',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',\n LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ',\n },\n calendar: {\n sameDay: '[ਅਜ] LT',\n nextDay: '[ਕਲ] LT',\n nextWeek: '[ਅਗਲਾ] dddd, LT',\n lastDay: '[ਕਲ] LT',\n lastWeek: '[ਪਿਛਲੇ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ਵਿੱਚ',\n past: '%s ਪਿਛਲੇ',\n s: 'ਕੁਝ ਸਕਿੰਟ',\n ss: '%d ਸਕਿੰਟ',\n m: 'ਇਕ ਮਿੰਟ',\n mm: '%d ਮਿੰਟ',\n h: 'ਇੱਕ ਘੰਟਾ',\n hh: '%d ਘੰਟੇ',\n d: 'ਇੱਕ ਦਿਨ',\n dd: '%d ਦਿਨ',\n M: 'ਇੱਕ ਮਹੀਨਾ',\n MM: '%d ਮਹੀਨੇ',\n y: 'ਇੱਕ ਸਾਲ',\n yy: '%d ਸਾਲ',\n },\n preparse: function (string) {\n return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Punjabi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.\n meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ਰਾਤ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ਸਵੇਰ') {\n return hour;\n } else if (meridiem === 'ਦੁਪਹਿਰ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ਸ਼ਾਮ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ਰਾਤ';\n } else if (hour < 10) {\n return 'ਸਵੇਰ';\n } else if (hour < 17) {\n return 'ਦੁਪਹਿਰ';\n } else if (hour < 20) {\n return 'ਸ਼ਾਮ';\n } else {\n return 'ਰਾਤ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return paIn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Polish [pl]\n//! author : Rafal Hirsz : https://github.com/evoL\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsNominative =\n 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split(\n '_'\n ),\n monthsSubjective =\n 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split(\n '_'\n ),\n monthsParse = [\n /^sty/i,\n /^lut/i,\n /^mar/i,\n /^kwi/i,\n /^maj/i,\n /^cze/i,\n /^lip/i,\n /^sie/i,\n /^wrz/i,\n /^paź/i,\n /^lis/i,\n /^gru/i,\n ];\n function plural(n) {\n return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;\n }\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n return result + (plural(number) ? 'sekundy' : 'sekund');\n case 'm':\n return withoutSuffix ? 'minuta' : 'minutę';\n case 'mm':\n return result + (plural(number) ? 'minuty' : 'minut');\n case 'h':\n return withoutSuffix ? 'godzina' : 'godzinę';\n case 'hh':\n return result + (plural(number) ? 'godziny' : 'godzin');\n case 'ww':\n return result + (plural(number) ? 'tygodnie' : 'tygodni');\n case 'MM':\n return result + (plural(number) ? 'miesiące' : 'miesięcy');\n case 'yy':\n return result + (plural(number) ? 'lata' : 'lat');\n }\n }\n\n var pl = moment.defineLocale('pl', {\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return monthsNominative;\n } else if (/D MMMM/.test(format)) {\n return monthsSubjective[momentToFormat.month()];\n } else {\n return monthsNominative[momentToFormat.month()];\n }\n },\n monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays:\n 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),\n weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),\n weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Dziś o] LT',\n nextDay: '[Jutro o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W niedzielę o] LT';\n\n case 2:\n return '[We wtorek o] LT';\n\n case 3:\n return '[W środę o] LT';\n\n case 6:\n return '[W sobotę o] LT';\n\n default:\n return '[W] dddd [o] LT';\n }\n },\n lastDay: '[Wczoraj o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W zeszłą niedzielę o] LT';\n case 3:\n return '[W zeszłą środę o] LT';\n case 6:\n return '[W zeszłą sobotę o] LT';\n default:\n return '[W zeszły] dddd [o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: '%s temu',\n s: 'kilka sekund',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: '1 dzień',\n dd: '%d dni',\n w: 'tydzień',\n ww: translate,\n M: 'miesiąc',\n MM: translate,\n y: 'rok',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return pl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Portuguese [pt]\n//! author : Jefferson : https://github.com/jalex79\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var pt = moment.defineLocale('pt', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays:\n 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split(\n '_'\n ),\n weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [às] LT' // Saturday + Sunday\n : '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n w: 'uma semana',\n ww: '%d semanas',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return pt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Portuguese (Brazil) [pt-br]\n//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ptBr = moment.defineLocale('pt-br', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays:\n 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split(\n '_'\n ),\n weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),\n weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY [às] HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm',\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [às] LT' // Saturday + Sunday\n : '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'poucos segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n invalidDate: 'Data inválida',\n });\n\n return ptBr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Romanian [ro]\n//! author : Vlad Gurdiga : https://github.com/gurdiga\n//! author : Valentin Agachi : https://github.com/avaly\n//! author : Emanuel Cepoi : https://github.com/cepem\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: 'secunde',\n mm: 'minute',\n hh: 'ore',\n dd: 'zile',\n ww: 'săptămâni',\n MM: 'luni',\n yy: 'ani',\n },\n separator = ' ';\n if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {\n separator = ' de ';\n }\n return number + separator + format[key];\n }\n\n var ro = moment.defineLocale('ro', {\n months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split(\n '_'\n ),\n monthsShort:\n 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),\n weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[azi la] LT',\n nextDay: '[mâine la] LT',\n nextWeek: 'dddd [la] LT',\n lastDay: '[ieri la] LT',\n lastWeek: '[fosta] dddd [la] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'peste %s',\n past: '%s în urmă',\n s: 'câteva secunde',\n ss: relativeTimeWithPlural,\n m: 'un minut',\n mm: relativeTimeWithPlural,\n h: 'o oră',\n hh: relativeTimeWithPlural,\n d: 'o zi',\n dd: relativeTimeWithPlural,\n w: 'o săptămână',\n ww: relativeTimeWithPlural,\n M: 'o lună',\n MM: relativeTimeWithPlural,\n y: 'un an',\n yy: relativeTimeWithPlural,\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ro;\n\n})));\n","//! moment.js locale configuration\n//! locale : Russian [ru]\n//! author : Viktorminator : https://github.com/Viktorminator\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Коренберг Марк : https://github.com/socketpair\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n hh: 'час_часа_часов',\n dd: 'день_дня_дней',\n ww: 'неделя_недели_недель',\n MM: 'месяц_месяца_месяцев',\n yy: 'год_года_лет',\n };\n if (key === 'm') {\n return withoutSuffix ? 'минута' : 'минуту';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n var monthsParse = [\n /^янв/i,\n /^фев/i,\n /^мар/i,\n /^апр/i,\n /^ма[йя]/i,\n /^июн/i,\n /^июл/i,\n /^авг/i,\n /^сен/i,\n /^окт/i,\n /^ноя/i,\n /^дек/i,\n ];\n\n // http://new.gramota.ru/spravka/rules/139-prop : § 103\n // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\n var ru = moment.defineLocale('ru', {\n months: {\n format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split(\n '_'\n ),\n standalone:\n 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n '_'\n ),\n },\n monthsShort: {\n // по CLDR именно \"июл.\" и \"июн.\", но какой смысл менять букву на точку?\n format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split(\n '_'\n ),\n standalone:\n 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split(\n '_'\n ),\n },\n weekdays: {\n standalone:\n 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split(\n '_'\n ),\n format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split(\n '_'\n ),\n isFormat: /\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/,\n },\n weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки\n monthsRegex:\n /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // копия предыдущего\n monthsShortRegex:\n /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // полные названия с падежами\n monthsStrictRegex:\n /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,\n\n // Выражение, которое соответствует только сокращённым формам\n monthsShortStrictRegex:\n /^(янв\\.|февр?\\.|мар[т.]|апр\\.|ма[яй]|июн[ья.]|июл[ья.]|авг\\.|сент?\\.|окт\\.|нояб?\\.|дек\\.)/i,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., H:mm',\n LLLL: 'dddd, D MMMM YYYY г., H:mm',\n },\n calendar: {\n sameDay: '[Сегодня, в] LT',\n nextDay: '[Завтра, в] LT',\n lastDay: '[Вчера, в] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В следующее] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В следующий] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В следующую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n lastWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В прошлое] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В прошлый] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В прошлую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'через %s',\n past: '%s назад',\n s: 'несколько секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'час',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n w: 'неделя',\n ww: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночи|утра|дня|вечера/i,\n isPM: function (input) {\n return /^(дня|вечера)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночи';\n } else if (hour < 12) {\n return 'утра';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечера';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|я)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n return number + '-й';\n case 'D':\n return number + '-го';\n case 'w':\n case 'W':\n return number + '-я';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ru;\n\n})));\n","//! moment.js locale configuration\n//! locale : Sindhi [sd]\n//! author : Narain Sagar : https://github.com/narainsagar\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوري',\n 'فيبروري',\n 'مارچ',\n 'اپريل',\n 'مئي',\n 'جون',\n 'جولاءِ',\n 'آگسٽ',\n 'سيپٽمبر',\n 'آڪٽوبر',\n 'نومبر',\n 'ڊسمبر',\n ],\n days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];\n\n var sd = moment.defineLocale('sd', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[اڄ] LT',\n nextDay: '[سڀاڻي] LT',\n nextWeek: 'dddd [اڳين هفتي تي] LT',\n lastDay: '[ڪالهه] LT',\n lastWeek: '[گزريل هفتي] dddd [تي] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s پوء',\n past: '%s اڳ',\n s: 'چند سيڪنڊ',\n ss: '%d سيڪنڊ',\n m: 'هڪ منٽ',\n mm: '%d منٽ',\n h: 'هڪ ڪلاڪ',\n hh: '%d ڪلاڪ',\n d: 'هڪ ڏينهن',\n dd: '%d ڏينهن',\n M: 'هڪ مهينو',\n MM: '%d مهينا',\n y: 'هڪ سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sd;\n\n})));\n","//! moment.js locale configuration\n//! locale : Northern Sami [se]\n//! authors : Bård Rolstad Henriksen : https://github.com/karamell\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var se = moment.defineLocale('se', {\n months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split(\n '_'\n ),\n monthsShort:\n 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'),\n weekdays:\n 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split(\n '_'\n ),\n weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),\n weekdaysMin: 's_v_m_g_d_b_L'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'MMMM D. [b.] YYYY',\n LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',\n LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm',\n },\n calendar: {\n sameDay: '[otne ti] LT',\n nextDay: '[ihttin ti] LT',\n nextWeek: 'dddd [ti] LT',\n lastDay: '[ikte ti] LT',\n lastWeek: '[ovddit] dddd [ti] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s geažes',\n past: 'maŋit %s',\n s: 'moadde sekunddat',\n ss: '%d sekunddat',\n m: 'okta minuhta',\n mm: '%d minuhtat',\n h: 'okta diimmu',\n hh: '%d diimmut',\n d: 'okta beaivi',\n dd: '%d beaivvit',\n M: 'okta mánnu',\n MM: '%d mánut',\n y: 'okta jahki',\n yy: '%d jagit',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return se;\n\n})));\n","//! moment.js locale configuration\n//! locale : Sinhalese [si]\n//! author : Sampath Sitinamaluwa : https://github.com/sampathsris\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n /*jshint -W100*/\n var si = moment.defineLocale('si', {\n months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split(\n '_'\n ),\n monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split(\n '_'\n ),\n weekdays:\n 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split(\n '_'\n ),\n weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'),\n weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'a h:mm',\n LTS: 'a h:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY MMMM D',\n LLL: 'YYYY MMMM D, a h:mm',\n LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss',\n },\n calendar: {\n sameDay: '[අද] LT[ට]',\n nextDay: '[හෙට] LT[ට]',\n nextWeek: 'dddd LT[ට]',\n lastDay: '[ඊයේ] LT[ට]',\n lastWeek: '[පසුගිය] dddd LT[ට]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sකින්',\n past: '%sකට පෙර',\n s: 'තත්පර කිහිපය',\n ss: 'තත්පර %d',\n m: 'මිනිත්තුව',\n mm: 'මිනිත්තු %d',\n h: 'පැය',\n hh: 'පැය %d',\n d: 'දිනය',\n dd: 'දින %d',\n M: 'මාසය',\n MM: 'මාස %d',\n y: 'වසර',\n yy: 'වසර %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2} වැනි/,\n ordinal: function (number) {\n return number + ' වැනි';\n },\n meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,\n isPM: function (input) {\n return input === 'ප.ව.' || input === 'පස් වරු';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'ප.ව.' : 'පස් වරු';\n } else {\n return isLower ? 'පෙ.ව.' : 'පෙර වරු';\n }\n },\n });\n\n return si;\n\n})));\n","//! moment.js locale configuration\n//! locale : Slovak [sk]\n//! author : Martin Minka : https://github.com/k2s\n//! based on work of petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months =\n 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split(\n '_'\n ),\n monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n function plural(n) {\n return n > 1 && n < 5;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekúnd');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minúty' : 'minút');\n } else {\n return result + 'minútami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodín');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'deň' : 'dňom';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dni' : 'dní');\n } else {\n return result + 'dňami';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'mesiace' : 'mesiacov');\n } else {\n return result + 'mesiacmi';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokom';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'rokov');\n } else {\n return result + 'rokmi';\n }\n }\n }\n\n var sk = moment.defineLocale('sk', {\n months: months,\n monthsShort: monthsShort,\n weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),\n weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'),\n weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[dnes o] LT',\n nextDay: '[zajtra o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v nedeľu o] LT';\n case 1:\n case 2:\n return '[v] dddd [o] LT';\n case 3:\n return '[v stredu o] LT';\n case 4:\n return '[vo štvrtok o] LT';\n case 5:\n return '[v piatok o] LT';\n case 6:\n return '[v sobotu o] LT';\n }\n },\n lastDay: '[včera o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulú nedeľu o] LT';\n case 1:\n case 2:\n return '[minulý] dddd [o] LT';\n case 3:\n return '[minulú stredu o] LT';\n case 4:\n case 5:\n return '[minulý] dddd [o] LT';\n case 6:\n return '[minulú sobotu o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pred %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Slovenian [sl]\n//! author : Robert Sedovšek : https://github.com/sedovsek\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nekaj sekund'\n : 'nekaj sekundami';\n case 'ss':\n if (number === 1) {\n result += withoutSuffix ? 'sekundo' : 'sekundi';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n } else {\n result += 'sekund';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'ena minuta' : 'eno minuto';\n case 'mm':\n if (number === 1) {\n result += withoutSuffix ? 'minuta' : 'minuto';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n } else {\n result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'ena ura' : 'eno uro';\n case 'hh':\n if (number === 1) {\n result += withoutSuffix ? 'ura' : 'uro';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'uri' : 'urama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'ure' : 'urami';\n } else {\n result += withoutSuffix || isFuture ? 'ur' : 'urami';\n }\n return result;\n case 'd':\n return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n case 'dd':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n } else {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n }\n return result;\n case 'M':\n return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n case 'MM':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n } else {\n result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n }\n return result;\n case 'y':\n return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n case 'yy':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'leto' : 'letom';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'leta' : 'leti';\n } else {\n result += withoutSuffix || isFuture ? 'let' : 'leti';\n }\n return result;\n }\n }\n\n var sl = moment.defineLocale('sl', {\n months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),\n weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),\n weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD. MM. YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danes ob] LT',\n nextDay: '[jutri ob] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v] [nedeljo] [ob] LT';\n case 3:\n return '[v] [sredo] [ob] LT';\n case 6:\n return '[v] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[v] dddd [ob] LT';\n }\n },\n lastDay: '[včeraj ob] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prejšnjo] [nedeljo] [ob] LT';\n case 3:\n return '[prejšnjo] [sredo] [ob] LT';\n case 6:\n return '[prejšnjo] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prejšnji] dddd [ob] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'čez %s',\n past: 'pred %s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Albanian [sq]\n//! author : Flakërim Ismani : https://github.com/flakerimi\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Oerd Cukalla : https://github.com/oerd\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sq = moment.defineLocale('sq', {\n months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split(\n '_'\n ),\n monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),\n weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split(\n '_'\n ),\n weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\n weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /PD|MD/,\n isPM: function (input) {\n return input.charAt(0) === 'M';\n },\n meridiem: function (hours, minutes, isLower) {\n return hours < 12 ? 'PD' : 'MD';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Sot në] LT',\n nextDay: '[Nesër në] LT',\n nextWeek: 'dddd [në] LT',\n lastDay: '[Dje në] LT',\n lastWeek: 'dddd [e kaluar në] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'në %s',\n past: '%s më parë',\n s: 'disa sekonda',\n ss: '%d sekonda',\n m: 'një minutë',\n mm: '%d minuta',\n h: 'një orë',\n hh: '%d orë',\n d: 'një ditë',\n dd: '%d ditë',\n M: 'një muaj',\n MM: '%d muaj',\n y: 'një vit',\n yy: '%d vite',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sq;\n\n})));\n","//! moment.js locale configuration\n//! locale : Serbian [sr]\n//! author : Milan Janačković : https://github.com/milan-j\n//! author : Stefan Crnjaković : https://github.com/crnjakovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekunda', 'sekunde', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n d: ['jedan dan', 'jednog dana'],\n dd: ['dan', 'dana', 'dana'],\n M: ['jedan mesec', 'jednog meseca'],\n MM: ['mesec', 'meseca', 'meseci'],\n y: ['jednu godinu', 'jedne godine'],\n yy: ['godinu', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n if (\n number % 10 >= 1 &&\n number % 10 <= 4 &&\n (number % 100 < 10 || number % 100 >= 20)\n ) {\n return number % 10 === 1 ? wordKey[0] : wordKey[1];\n }\n return wordKey[2];\n },\n translate: function (number, withoutSuffix, key, isFuture) {\n var wordKey = translator.words[key],\n word;\n\n if (key.length === 1) {\n // Nominativ\n if (key === 'y' && withoutSuffix) return 'jedna godina';\n return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\n }\n\n word = translator.correctGrammaticalCase(number, wordKey);\n // Nominativ\n if (key === 'yy' && withoutSuffix && word === 'godinu') {\n return number + ' godina';\n }\n\n return number + ' ' + word;\n },\n };\n\n var sr = moment.defineLocale('sr', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedelju] [u] LT';\n case 3:\n return '[u] [sredu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[prošle] [nedelje] [u] LT',\n '[prošlog] [ponedeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pre %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: translator.translate,\n dd: translator.translate,\n M: translator.translate,\n MM: translator.translate,\n y: translator.translate,\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Serbian Cyrillic [sr-cyrl]\n//! author : Milan Janačković : https://github.com/milan-j\n//! author : Stefan Crnjaković : https://github.com/crnjakovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['секунда', 'секунде', 'секунди'],\n m: ['један минут', 'једног минута'],\n mm: ['минут', 'минута', 'минута'],\n h: ['један сат', 'једног сата'],\n hh: ['сат', 'сата', 'сати'],\n d: ['један дан', 'једног дана'],\n dd: ['дан', 'дана', 'дана'],\n M: ['један месец', 'једног месеца'],\n MM: ['месец', 'месеца', 'месеци'],\n y: ['једну годину', 'једне године'],\n yy: ['годину', 'године', 'година'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n if (\n number % 10 >= 1 &&\n number % 10 <= 4 &&\n (number % 100 < 10 || number % 100 >= 20)\n ) {\n return number % 10 === 1 ? wordKey[0] : wordKey[1];\n }\n return wordKey[2];\n },\n translate: function (number, withoutSuffix, key, isFuture) {\n var wordKey = translator.words[key],\n word;\n\n if (key.length === 1) {\n // Nominativ\n if (key === 'y' && withoutSuffix) return 'једна година';\n return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\n }\n\n word = translator.correctGrammaticalCase(number, wordKey);\n // Nominativ\n if (key === 'yy' && withoutSuffix && word === 'годину') {\n return number + ' година';\n }\n\n return number + ' ' + word;\n },\n };\n\n var srCyrl = moment.defineLocale('sr-cyrl', {\n months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split(\n '_'\n ),\n monthsShort:\n 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'),\n monthsParseExact: true,\n weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),\n weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),\n weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm',\n },\n calendar: {\n sameDay: '[данас у] LT',\n nextDay: '[сутра у] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[у] [недељу] [у] LT';\n case 3:\n return '[у] [среду] [у] LT';\n case 6:\n return '[у] [суботу] [у] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[у] dddd [у] LT';\n }\n },\n lastDay: '[јуче у] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[прошле] [недеље] [у] LT',\n '[прошлог] [понедељка] [у] LT',\n '[прошлог] [уторка] [у] LT',\n '[прошле] [среде] [у] LT',\n '[прошлог] [четвртка] [у] LT',\n '[прошлог] [петка] [у] LT',\n '[прошле] [суботе] [у] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пре %s',\n s: 'неколико секунди',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: translator.translate,\n dd: translator.translate,\n M: translator.translate,\n MM: translator.translate,\n y: translator.translate,\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return srCyrl;\n\n})));\n","//! moment.js locale configuration\n//! locale : siSwati [ss]\n//! author : Nicolai Davies : https://github.com/nicolaidavies\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ss = moment.defineLocale('ss', {\n months: \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split(\n '_'\n ),\n monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n weekdays:\n 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split(\n '_'\n ),\n weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Namuhla nga] LT',\n nextDay: '[Kusasa nga] LT',\n nextWeek: 'dddd [nga] LT',\n lastDay: '[Itolo nga] LT',\n lastWeek: 'dddd [leliphelile] [nga] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'nga %s',\n past: 'wenteka nga %s',\n s: 'emizuzwana lomcane',\n ss: '%d mzuzwana',\n m: 'umzuzu',\n mm: '%d emizuzu',\n h: 'lihora',\n hh: '%d emahora',\n d: 'lilanga',\n dd: '%d emalanga',\n M: 'inyanga',\n MM: '%d tinyanga',\n y: 'umnyaka',\n yy: '%d iminyaka',\n },\n meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'ekuseni';\n } else if (hours < 15) {\n return 'emini';\n } else if (hours < 19) {\n return 'entsambama';\n } else {\n return 'ebusuku';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ekuseni') {\n return hour;\n } else if (meridiem === 'emini') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n if (hour === 0) {\n return 0;\n }\n return hour + 12;\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: '%d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ss;\n\n})));\n","//! moment.js locale configuration\n//! locale : Swedish [sv]\n//! author : Jens Alm : https://github.com/ulmus\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sv = moment.defineLocale('sv', {\n months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'),\n weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Idag] LT',\n nextDay: '[Imorgon] LT',\n lastDay: '[Igår] LT',\n nextWeek: '[På] dddd LT',\n lastWeek: '[I] dddd[s] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: 'för %s sedan',\n s: 'några sekunder',\n ss: '%d sekunder',\n m: 'en minut',\n mm: '%d minuter',\n h: 'en timme',\n hh: '%d timmar',\n d: 'en dag',\n dd: '%d dagar',\n M: 'en månad',\n MM: '%d månader',\n y: 'ett år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(\\:e|\\:a)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? ':e'\n : b === 1\n ? ':a'\n : b === 2\n ? ':a'\n : b === 3\n ? ':e'\n : ':e';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Swahili [sw]\n//! author : Fahad Kassim : https://github.com/fadsel\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sw = moment.defineLocale('sw', {\n months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),\n weekdays:\n 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split(\n '_'\n ),\n weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),\n weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'hh:mm A',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[leo saa] LT',\n nextDay: '[kesho saa] LT',\n nextWeek: '[wiki ijayo] dddd [saat] LT',\n lastDay: '[jana] LT',\n lastWeek: '[wiki iliyopita] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s baadaye',\n past: 'tokea %s',\n s: 'hivi punde',\n ss: 'sekunde %d',\n m: 'dakika moja',\n mm: 'dakika %d',\n h: 'saa limoja',\n hh: 'masaa %d',\n d: 'siku moja',\n dd: 'siku %d',\n M: 'mwezi mmoja',\n MM: 'miezi %d',\n y: 'mwaka mmoja',\n yy: 'miaka %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sw;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tamil [ta]\n//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '௧',\n 2: '௨',\n 3: '௩',\n 4: '௪',\n 5: '௫',\n 6: '௬',\n 7: '௭',\n 8: '௮',\n 9: '௯',\n 0: '௦',\n },\n numberMap = {\n '௧': '1',\n '௨': '2',\n '௩': '3',\n '௪': '4',\n '௫': '5',\n '௬': '6',\n '௭': '7',\n '௮': '8',\n '௯': '9',\n '௦': '0',\n };\n\n var ta = moment.defineLocale('ta', {\n months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n monthsShort:\n 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n weekdays:\n 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split(\n '_'\n ),\n weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split(\n '_'\n ),\n weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, HH:mm',\n LLLL: 'dddd, D MMMM YYYY, HH:mm',\n },\n calendar: {\n sameDay: '[இன்று] LT',\n nextDay: '[நாளை] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[நேற்று] LT',\n lastWeek: '[கடந்த வாரம்] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s இல்',\n past: '%s முன்',\n s: 'ஒரு சில விநாடிகள்',\n ss: '%d விநாடிகள்',\n m: 'ஒரு நிமிடம்',\n mm: '%d நிமிடங்கள்',\n h: 'ஒரு மணி நேரம்',\n hh: '%d மணி நேரம்',\n d: 'ஒரு நாள்',\n dd: '%d நாட்கள்',\n M: 'ஒரு மாதம்',\n MM: '%d மாதங்கள்',\n y: 'ஒரு வருடம்',\n yy: '%d ஆண்டுகள்',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}வது/,\n ordinal: function (number) {\n return number + 'வது';\n },\n preparse: function (string) {\n return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // refer http://ta.wikipedia.org/s/1er1\n meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,\n meridiem: function (hour, minute, isLower) {\n if (hour < 2) {\n return ' யாமம்';\n } else if (hour < 6) {\n return ' வைகறை'; // வைகறை\n } else if (hour < 10) {\n return ' காலை'; // காலை\n } else if (hour < 14) {\n return ' நண்பகல்'; // நண்பகல்\n } else if (hour < 18) {\n return ' எற்பாடு'; // எற்பாடு\n } else if (hour < 22) {\n return ' மாலை'; // மாலை\n } else {\n return ' யாமம்';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'யாமம்') {\n return hour < 2 ? hour : hour + 12;\n } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n return hour;\n } else if (meridiem === 'நண்பகல்') {\n return hour >= 10 ? hour : hour + 12;\n } else {\n return hour + 12;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ta;\n\n})));\n","//! moment.js locale configuration\n//! locale : Telugu [te]\n//! author : Krishna Chaitanya Thota : https://github.com/kcthota\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var te = moment.defineLocale('te', {\n months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split(\n '_'\n ),\n monthsShort:\n 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split(\n '_'\n ),\n weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),\n weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[నేడు] LT',\n nextDay: '[రేపు] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[నిన్న] LT',\n lastWeek: '[గత] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s లో',\n past: '%s క్రితం',\n s: 'కొన్ని క్షణాలు',\n ss: '%d సెకన్లు',\n m: 'ఒక నిమిషం',\n mm: '%d నిమిషాలు',\n h: 'ఒక గంట',\n hh: '%d గంటలు',\n d: 'ఒక రోజు',\n dd: '%d రోజులు',\n M: 'ఒక నెల',\n MM: '%d నెలలు',\n y: 'ఒక సంవత్సరం',\n yy: '%d సంవత్సరాలు',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}వ/,\n ordinal: '%dవ',\n meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'రాత్రి') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ఉదయం') {\n return hour;\n } else if (meridiem === 'మధ్యాహ్నం') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'సాయంత్రం') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'రాత్రి';\n } else if (hour < 10) {\n return 'ఉదయం';\n } else if (hour < 17) {\n return 'మధ్యాహ్నం';\n } else if (hour < 20) {\n return 'సాయంత్రం';\n } else {\n return 'రాత్రి';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return te;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tetun Dili (East Timor) [tet]\n//! author : Joshua Brooks : https://github.com/joshbrooks\n//! author : Onorio De J. Afonso : https://github.com/marobo\n//! author : Sonia Simoes : https://github.com/soniasimoes\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tet = moment.defineLocale('tet', {\n months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Ohin iha] LT',\n nextDay: '[Aban iha] LT',\n nextWeek: 'dddd [iha] LT',\n lastDay: '[Horiseik iha] LT',\n lastWeek: 'dddd [semana kotuk] [iha] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'iha %s',\n past: '%s liuba',\n s: 'segundu balun',\n ss: 'segundu %d',\n m: 'minutu ida',\n mm: 'minutu %d',\n h: 'oras ida',\n hh: 'oras %d',\n d: 'loron ida',\n dd: 'loron %d',\n M: 'fulan ida',\n MM: 'fulan %d',\n y: 'tinan ida',\n yy: 'tinan %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tet;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tajik [tg]\n//! author : Orif N. Jr. : https://github.com/orif-jr\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ум',\n 1: '-ум',\n 2: '-юм',\n 3: '-юм',\n 4: '-ум',\n 5: '-ум',\n 6: '-ум',\n 7: '-ум',\n 8: '-ум',\n 9: '-ум',\n 10: '-ум',\n 12: '-ум',\n 13: '-ум',\n 20: '-ум',\n 30: '-юм',\n 40: '-ум',\n 50: '-ум',\n 60: '-ум',\n 70: '-ум',\n 80: '-ум',\n 90: '-ум',\n 100: '-ум',\n };\n\n var tg = moment.defineLocale('tg', {\n months: {\n format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split(\n '_'\n ),\n standalone:\n 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n },\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split(\n '_'\n ),\n weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),\n weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Имрӯз соати] LT',\n nextDay: '[Фардо соати] LT',\n lastDay: '[Дирӯз соати] LT',\n nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT',\n lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'баъди %s',\n past: '%s пеш',\n s: 'якчанд сония',\n m: 'як дақиқа',\n mm: '%d дақиқа',\n h: 'як соат',\n hh: '%d соат',\n d: 'як рӯз',\n dd: '%d рӯз',\n M: 'як моҳ',\n MM: '%d моҳ',\n y: 'як сол',\n yy: '%d сол',\n },\n meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'шаб') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'субҳ') {\n return hour;\n } else if (meridiem === 'рӯз') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'бегоҳ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'шаб';\n } else if (hour < 11) {\n return 'субҳ';\n } else if (hour < 16) {\n return 'рӯз';\n } else if (hour < 19) {\n return 'бегоҳ';\n } else {\n return 'шаб';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ум|юм)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1th is the first week of the year.\n },\n });\n\n return tg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Thai [th]\n//! author : Kridsada Thanabulpong : https://github.com/sirn\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var th = moment.defineLocale('th', {\n months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split(\n '_'\n ),\n monthsShort:\n 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference\n weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY เวลา H:mm',\n LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm',\n },\n meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\n isPM: function (input) {\n return input === 'หลังเที่ยง';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ก่อนเที่ยง';\n } else {\n return 'หลังเที่ยง';\n }\n },\n calendar: {\n sameDay: '[วันนี้ เวลา] LT',\n nextDay: '[พรุ่งนี้ เวลา] LT',\n nextWeek: 'dddd[หน้า เวลา] LT',\n lastDay: '[เมื่อวานนี้ เวลา] LT',\n lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'อีก %s',\n past: '%sที่แล้ว',\n s: 'ไม่กี่วินาที',\n ss: '%d วินาที',\n m: '1 นาที',\n mm: '%d นาที',\n h: '1 ชั่วโมง',\n hh: '%d ชั่วโมง',\n d: '1 วัน',\n dd: '%d วัน',\n w: '1 สัปดาห์',\n ww: '%d สัปดาห์',\n M: '1 เดือน',\n MM: '%d เดือน',\n y: '1 ปี',\n yy: '%d ปี',\n },\n });\n\n return th;\n\n})));\n","//! moment.js locale configuration\n//! locale : Turkmen [tk]\n//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inji\",\n 5: \"'inji\",\n 8: \"'inji\",\n 70: \"'inji\",\n 80: \"'inji\",\n 2: \"'nji\",\n 7: \"'nji\",\n 20: \"'nji\",\n 50: \"'nji\",\n 3: \"'ünji\",\n 4: \"'ünji\",\n 100: \"'ünji\",\n 6: \"'njy\",\n 9: \"'unjy\",\n 10: \"'unjy\",\n 30: \"'unjy\",\n 60: \"'ynjy\",\n 90: \"'ynjy\",\n };\n\n var tk = moment.defineLocale('tk', {\n months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'),\n weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split(\n '_'\n ),\n weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'),\n weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün sagat] LT',\n nextDay: '[ertir sagat] LT',\n nextWeek: '[indiki] dddd [sagat] LT',\n lastDay: '[düýn] LT',\n lastWeek: '[geçen] dddd [sagat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s soň',\n past: '%s öň',\n s: 'birnäçe sekunt',\n m: 'bir minut',\n mm: '%d minut',\n h: 'bir sagat',\n hh: '%d sagat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir aý',\n MM: '%d aý',\n y: 'bir ýyl',\n yy: '%d ýyl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'unjy\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tagalog (Philippines) [tl-ph]\n//! author : Dan Hagman : https://github.com/hagmandan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tlPh = moment.defineLocale('tl-ph', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlPh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Klingon [tlh]\n//! author : Dominika Kruk : https://github.com/amaranthrose\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n\n function translateFuture(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'leS'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'waQ'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'nem'\n : time + ' pIq';\n return time;\n }\n\n function translatePast(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'Hu’'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'wen'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'ben'\n : time + ' ret';\n return time;\n }\n\n function translate(number, withoutSuffix, string, isFuture) {\n var numberNoun = numberAsNoun(number);\n switch (string) {\n case 'ss':\n return numberNoun + ' lup';\n case 'mm':\n return numberNoun + ' tup';\n case 'hh':\n return numberNoun + ' rep';\n case 'dd':\n return numberNoun + ' jaj';\n case 'MM':\n return numberNoun + ' jar';\n case 'yy':\n return numberNoun + ' DIS';\n }\n }\n\n function numberAsNoun(number) {\n var hundred = Math.floor((number % 1000) / 100),\n ten = Math.floor((number % 100) / 10),\n one = number % 10,\n word = '';\n if (hundred > 0) {\n word += numbersNouns[hundred] + 'vatlh';\n }\n if (ten > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';\n }\n if (one > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[one];\n }\n return word === '' ? 'pagh' : word;\n }\n\n var tlh = moment.defineLocale('tlh', {\n months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split(\n '_'\n ),\n monthsShort:\n 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n weekdaysShort:\n 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n weekdaysMin:\n 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[DaHjaj] LT',\n nextDay: '[wa’leS] LT',\n nextWeek: 'LLL',\n lastDay: '[wa’Hu’] LT',\n lastWeek: 'LLL',\n sameElse: 'L',\n },\n relativeTime: {\n future: translateFuture,\n past: translatePast,\n s: 'puS lup',\n ss: translate,\n m: 'wa’ tup',\n mm: translate,\n h: 'wa’ rep',\n hh: translate,\n d: 'wa’ jaj',\n dd: translate,\n M: 'wa’ jar',\n MM: translate,\n y: 'wa’ DIS',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Turkish [tr]\n//! authors : Erhan Gundogan : https://github.com/erhangundogan,\n//! Burak Yiğit Kaya: https://github.com/BYK\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inci\",\n 5: \"'inci\",\n 8: \"'inci\",\n 70: \"'inci\",\n 80: \"'inci\",\n 2: \"'nci\",\n 7: \"'nci\",\n 20: \"'nci\",\n 50: \"'nci\",\n 3: \"'üncü\",\n 4: \"'üncü\",\n 100: \"'üncü\",\n 6: \"'ncı\",\n 9: \"'uncu\",\n 10: \"'uncu\",\n 30: \"'uncu\",\n 60: \"'ıncı\",\n 90: \"'ıncı\",\n };\n\n var tr = moment.defineLocale('tr', {\n months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split(\n '_'\n ),\n monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split(\n '_'\n ),\n weekdaysShort: 'Paz_Pzt_Sal_Çar_Per_Cum_Cmt'.split('_'),\n weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'öö' : 'ÖÖ';\n } else {\n return isLower ? 'ös' : 'ÖS';\n }\n },\n meridiemParse: /öö|ÖÖ|ös|ÖS/,\n isPM: function (input) {\n return input === 'ös' || input === 'ÖS';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[yarın saat] LT',\n nextWeek: '[gelecek] dddd [saat] LT',\n lastDay: '[dün] LT',\n lastWeek: '[geçen] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s önce',\n s: 'birkaç saniye',\n ss: '%d saniye',\n m: 'bir dakika',\n mm: '%d dakika',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n w: 'bir hafta',\n ww: '%d hafta',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir yıl',\n yy: '%d yıl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'ıncı\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Talossan [tzl]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n//! author : Iustì Canun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.\n // This is currently too difficult (maybe even impossible) to add.\n var tzl = moment.defineLocale('tzl', {\n months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),\n weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),\n weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),\n weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM [dallas] YYYY',\n LLL: 'D. MMMM [dallas] YYYY HH.mm',\n LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm',\n },\n meridiemParse: /d\\'o|d\\'a/i,\n isPM: function (input) {\n return \"d'o\" === input.toLowerCase();\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? \"d'o\" : \"D'O\";\n } else {\n return isLower ? \"d'a\" : \"D'A\";\n }\n },\n calendar: {\n sameDay: '[oxhi à] LT',\n nextDay: '[demà à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[ieiri à] LT',\n lastWeek: '[sür el] dddd [lasteu à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'osprei %s',\n past: 'ja%s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['viensas secunds', \"'iensas secunds\"],\n ss: [number + ' secunds', '' + number + ' secunds'],\n m: [\"'n míut\", \"'iens míut\"],\n mm: [number + ' míuts', '' + number + ' míuts'],\n h: [\"'n þora\", \"'iensa þora\"],\n hh: [number + ' þoras', '' + number + ' þoras'],\n d: [\"'n ziua\", \"'iensa ziua\"],\n dd: [number + ' ziuas', '' + number + ' ziuas'],\n M: [\"'n mes\", \"'iens mes\"],\n MM: [number + ' mesen', '' + number + ' mesen'],\n y: [\"'n ar\", \"'iens ar\"],\n yy: [number + ' ars', '' + number + ' ars'],\n };\n return isFuture\n ? format[key][0]\n : withoutSuffix\n ? format[key][0]\n : format[key][1];\n }\n\n return tzl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Central Atlas Tamazight [tzm]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tzm = moment.defineLocale('tzm', {\n months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n '_'\n ),\n monthsShort:\n 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n '_'\n ),\n weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',\n nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',\n nextWeek: 'dddd [ⴴ] LT',\n lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',\n lastWeek: 'dddd [ⴴ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',\n past: 'ⵢⴰⵏ %s',\n s: 'ⵉⵎⵉⴽ',\n ss: '%d ⵉⵎⵉⴽ',\n m: 'ⵎⵉⵏⵓⴺ',\n mm: '%d ⵎⵉⵏⵓⴺ',\n h: 'ⵙⴰⵄⴰ',\n hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',\n d: 'ⴰⵙⵙ',\n dd: '%d oⵙⵙⴰⵏ',\n M: 'ⴰⵢoⵓⵔ',\n MM: '%d ⵉⵢⵢⵉⵔⵏ',\n y: 'ⴰⵙⴳⴰⵙ',\n yy: '%d ⵉⵙⴳⴰⵙⵏ',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return tzm;\n\n})));\n","//! moment.js locale configuration\n//! locale : Central Atlas Tamazight Latin [tzm-latn]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tzmLatn = moment.defineLocale('tzm-latn', {\n months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n monthsShort:\n 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[asdkh g] LT',\n nextDay: '[aska g] LT',\n nextWeek: 'dddd [g] LT',\n lastDay: '[assant g] LT',\n lastWeek: 'dddd [g] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dadkh s yan %s',\n past: 'yan %s',\n s: 'imik',\n ss: '%d imik',\n m: 'minuḍ',\n mm: '%d minuḍ',\n h: 'saɛa',\n hh: '%d tassaɛin',\n d: 'ass',\n dd: '%d ossan',\n M: 'ayowr',\n MM: '%d iyyirn',\n y: 'asgas',\n yy: '%d isgasn',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return tzmLatn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Uyghur (China) [ug-cn]\n//! author: boyaq : https://github.com/boyaq\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ugCn = moment.defineLocale('ug-cn', {\n months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n monthsShort:\n 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(\n '_'\n ),\n weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',\n LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n },\n meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n meridiem === 'يېرىم كېچە' ||\n meridiem === 'سەھەر' ||\n meridiem === 'چۈشتىن بۇرۇن'\n ) {\n return hour;\n } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {\n return hour + 12;\n } else {\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return 'يېرىم كېچە';\n } else if (hm < 900) {\n return 'سەھەر';\n } else if (hm < 1130) {\n return 'چۈشتىن بۇرۇن';\n } else if (hm < 1230) {\n return 'چۈش';\n } else if (hm < 1800) {\n return 'چۈشتىن كېيىن';\n } else {\n return 'كەچ';\n }\n },\n calendar: {\n sameDay: '[بۈگۈن سائەت] LT',\n nextDay: '[ئەتە سائەت] LT',\n nextWeek: '[كېلەركى] dddd [سائەت] LT',\n lastDay: '[تۆنۈگۈن] LT',\n lastWeek: '[ئالدىنقى] dddd [سائەت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s كېيىن',\n past: '%s بۇرۇن',\n s: 'نەچچە سېكونت',\n ss: '%d سېكونت',\n m: 'بىر مىنۇت',\n mm: '%d مىنۇت',\n h: 'بىر سائەت',\n hh: '%d سائەت',\n d: 'بىر كۈن',\n dd: '%d كۈن',\n M: 'بىر ئاي',\n MM: '%d ئاي',\n y: 'بىر يىل',\n yy: '%d يىل',\n },\n\n dayOfMonthOrdinalParse: /\\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '-كۈنى';\n case 'w':\n case 'W':\n return number + '-ھەپتە';\n default:\n return number;\n }\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return ugCn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Ukrainian [uk]\n//! author : zemlanin : https://github.com/zemlanin\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',\n mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n dd: 'день_дні_днів',\n MM: 'місяць_місяці_місяців',\n yy: 'рік_роки_років',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвилина' : 'хвилину';\n } else if (key === 'h') {\n return withoutSuffix ? 'година' : 'годину';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n function weekdaysCaseReplace(m, format) {\n var weekdays = {\n nominative:\n 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split(\n '_'\n ),\n accusative:\n 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split(\n '_'\n ),\n genitive:\n 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split(\n '_'\n ),\n },\n nounCase;\n\n if (m === true) {\n return weekdays['nominative']\n .slice(1, 7)\n .concat(weekdays['nominative'].slice(0, 1));\n }\n if (!m) {\n return weekdays['nominative'];\n }\n\n nounCase = /(\\[[ВвУу]\\]) ?dddd/.test(format)\n ? 'accusative'\n : /\\[?(?:минулої|наступної)? ?\\] ?dddd/.test(format)\n ? 'genitive'\n : 'nominative';\n return weekdays[nounCase][m.day()];\n }\n function processHoursFunction(str) {\n return function () {\n return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n };\n }\n\n var uk = moment.defineLocale('uk', {\n months: {\n format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split(\n '_'\n ),\n standalone:\n 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split(\n '_'\n ),\n },\n monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split(\n '_'\n ),\n weekdays: weekdaysCaseReplace,\n weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY р.',\n LLL: 'D MMMM YYYY р., HH:mm',\n LLLL: 'dddd, D MMMM YYYY р., HH:mm',\n },\n calendar: {\n sameDay: processHoursFunction('[Сьогодні '),\n nextDay: processHoursFunction('[Завтра '),\n lastDay: processHoursFunction('[Вчора '),\n nextWeek: processHoursFunction('[У] dddd ['),\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return processHoursFunction('[Минулої] dddd [').call(this);\n case 1:\n case 2:\n case 4:\n return processHoursFunction('[Минулого] dddd [').call(this);\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: '%s тому',\n s: 'декілька секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'годину',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n M: 'місяць',\n MM: relativeTimeWithPlural,\n y: 'рік',\n yy: relativeTimeWithPlural,\n },\n // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n meridiemParse: /ночі|ранку|дня|вечора/,\n isPM: function (input) {\n return /^(дня|вечора)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночі';\n } else if (hour < 12) {\n return 'ранку';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечора';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return number + '-й';\n case 'D':\n return number + '-го';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Urdu [ur]\n//! author : Sawood Alam : https://github.com/ibnesayeed\n//! author : Zack : https://github.com/ZackVision\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوری',\n 'فروری',\n 'مارچ',\n 'اپریل',\n 'مئی',\n 'جون',\n 'جولائی',\n 'اگست',\n 'ستمبر',\n 'اکتوبر',\n 'نومبر',\n 'دسمبر',\n ],\n days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ'];\n\n var ur = moment.defineLocale('ur', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[آج بوقت] LT',\n nextDay: '[کل بوقت] LT',\n nextWeek: 'dddd [بوقت] LT',\n lastDay: '[گذشتہ روز بوقت] LT',\n lastWeek: '[گذشتہ] dddd [بوقت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s بعد',\n past: '%s قبل',\n s: 'چند سیکنڈ',\n ss: '%d سیکنڈ',\n m: 'ایک منٹ',\n mm: '%d منٹ',\n h: 'ایک گھنٹہ',\n hh: '%d گھنٹے',\n d: 'ایک دن',\n dd: '%d دن',\n M: 'ایک ماہ',\n MM: '%d ماہ',\n y: 'ایک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ur;\n\n})));\n","//! moment.js locale configuration\n//! locale : Uzbek [uz]\n//! author : Sardor Muminov : https://github.com/muminoff\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uz = moment.defineLocale('uz', {\n months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\n weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\n weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Бугун соат] LT [да]',\n nextDay: '[Эртага] LT [да]',\n nextWeek: 'dddd [куни соат] LT [да]',\n lastDay: '[Кеча соат] LT [да]',\n lastWeek: '[Утган] dddd [куни соат] LT [да]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Якин %s ичида',\n past: 'Бир неча %s олдин',\n s: 'фурсат',\n ss: '%d фурсат',\n m: 'бир дакика',\n mm: '%d дакика',\n h: 'бир соат',\n hh: '%d соат',\n d: 'бир кун',\n dd: '%d кун',\n M: 'бир ой',\n MM: '%d ой',\n y: 'бир йил',\n yy: '%d йил',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return uz;\n\n})));\n","//! moment.js locale configuration\n//! locale : Uzbek Latin [uz-latn]\n//! author : Rasulbek Mirzayev : github.com/Rasulbeeek\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uzLatn = moment.defineLocale('uz-latn', {\n months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n weekdays:\n 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split(\n '_'\n ),\n weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Bugun soat] LT [da]',\n nextDay: '[Ertaga] LT [da]',\n nextWeek: 'dddd [kuni soat] LT [da]',\n lastDay: '[Kecha soat] LT [da]',\n lastWeek: \"[O'tgan] dddd [kuni soat] LT [da]\",\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Yaqin %s ichida',\n past: 'Bir necha %s oldin',\n s: 'soniya',\n ss: '%d soniya',\n m: 'bir daqiqa',\n mm: '%d daqiqa',\n h: 'bir soat',\n hh: '%d soat',\n d: 'bir kun',\n dd: '%d kun',\n M: 'bir oy',\n MM: '%d oy',\n y: 'bir yil',\n yy: '%d yil',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uzLatn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Vietnamese [vi]\n//! author : Bang Nguyen : https://github.com/bangnk\n//! author : Chien Kira : https://github.com/chienkira\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var vi = moment.defineLocale('vi', {\n months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split(\n '_'\n ),\n monthsShort:\n 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split(\n '_'\n ),\n weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /sa|ch/i,\n isPM: function (input) {\n return /^ch$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'sa' : 'SA';\n } else {\n return isLower ? 'ch' : 'CH';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [năm] YYYY',\n LLL: 'D MMMM [năm] YYYY HH:mm',\n LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',\n l: 'DD/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hôm nay lúc] LT',\n nextDay: '[Ngày mai lúc] LT',\n nextWeek: 'dddd [tuần tới lúc] LT',\n lastDay: '[Hôm qua lúc] LT',\n lastWeek: 'dddd [tuần trước lúc] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s tới',\n past: '%s trước',\n s: 'vài giây',\n ss: '%d giây',\n m: 'một phút',\n mm: '%d phút',\n h: 'một giờ',\n hh: '%d giờ',\n d: 'một ngày',\n dd: '%d ngày',\n w: 'một tuần',\n ww: '%d tuần',\n M: 'một tháng',\n MM: '%d tháng',\n y: 'một năm',\n yy: '%d năm',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return vi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Pseudo [x-pseudo]\n//! author : Andrew Hood : https://github.com/andrewhood125\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var xPseudo = moment.defineLocale('x-pseudo', {\n months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split(\n '_'\n ),\n monthsShort:\n 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split(\n '_'\n ),\n weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),\n weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[T~ódá~ý át] LT',\n nextDay: '[T~ómó~rró~w át] LT',\n nextWeek: 'dddd [át] LT',\n lastDay: '[Ý~ést~érdá~ý át] LT',\n lastWeek: '[L~ást] dddd [át] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'í~ñ %s',\n past: '%s á~gó',\n s: 'á ~féw ~sécó~ñds',\n ss: '%d s~écóñ~ds',\n m: 'á ~míñ~úté',\n mm: '%d m~íñú~tés',\n h: 'á~ñ hó~úr',\n hh: '%d h~óúrs',\n d: 'á ~dáý',\n dd: '%d d~áýs',\n M: 'á ~móñ~th',\n MM: '%d m~óñt~hs',\n y: 'á ~ýéár',\n yy: '%d ý~éárs',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return xPseudo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Yoruba Nigeria [yo]\n//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var yo = moment.defineLocale('yo', {\n months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split(\n '_'\n ),\n monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),\n weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),\n weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),\n weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Ònì ni] LT',\n nextDay: '[Ọ̀la ni] LT',\n nextWeek: \"dddd [Ọsẹ̀ tón'bọ] [ni] LT\",\n lastDay: '[Àna ni] LT',\n lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ní %s',\n past: '%s kọjá',\n s: 'ìsẹjú aayá die',\n ss: 'aayá %d',\n m: 'ìsẹjú kan',\n mm: 'ìsẹjú %d',\n h: 'wákati kan',\n hh: 'wákati %d',\n d: 'ọjọ́ kan',\n dd: 'ọjọ́ %d',\n M: 'osù kan',\n MM: 'osù %d',\n y: 'ọdún kan',\n yy: 'ọdún %d',\n },\n dayOfMonthOrdinalParse: /ọjọ́\\s\\d{1,2}/,\n ordinal: 'ọjọ́ %d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return yo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (China) [zh-cn]\n//! author : suupic : https://github.com/suupic\n//! author : Zeno Zeng : https://github.com/zenozeng\n//! author : uu109 : https://github.com/uu109\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhCn = moment.defineLocale('zh-cn', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日Ah点mm分',\n LLLL: 'YYYY年M月D日ddddAh点mm分',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n } else {\n // '中午'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[下]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n lastDay: '[昨天]LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[上]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|周)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '周';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s后',\n past: '%s前',\n s: '几秒',\n ss: '%d 秒',\n m: '1 分钟',\n mm: '%d 分钟',\n h: '1 小时',\n hh: '%d 小时',\n d: '1 天',\n dd: '%d 天',\n w: '1 周',\n ww: '%d 周',\n M: '1 个月',\n MM: '%d 个月',\n y: '1 年',\n yy: '%d 年',\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return zhCn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Hong Kong) [zh-hk]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Konstantin : https://github.com/skfd\n//! author : Anthony : https://github.com/anthonylau\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhHk = moment.defineLocale('zh-hk', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1200) {\n return '上午';\n } else if (hm === 1200) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: '[下]ddddLT',\n lastDay: '[昨天]LT',\n lastWeek: '[上]ddddLT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhHk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Macau) [zh-mo]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Tan Yuanhong : https://github.com/le0tan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhMo = moment.defineLocale('zh-mo', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'D/M/YYYY',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s內',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhMo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Taiwan) [zh-tw]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhTw = moment.defineLocale('zh-tw', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhTw;\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\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, RefObject } 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 HandlerStateChangeEvent,\n scheduleFlushOperations,\n UserSelect,\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 { TouchEventType } from '../../TouchEventType';\nimport { ComposedGesture } from './gestureComposition';\nimport { ActionType } from '../../ActionType';\nimport { isFabric, REACT_NATIVE_VERSION, tagMessage } from '../../utils';\nimport { getShadowNodeFromRef } from '../../getShadowNodeFromRef';\nimport { Platform } from 'react-native';\nimport type RNGestureHandlerModuleWeb from '../../RNGestureHandlerModule.web';\nimport { onGestureHandlerEvent } from './eventReceiver';\nimport { RNRenderer } from '../../RNRenderer';\nimport { isExperimentalWebImplementationEnabled } from '../../EnableExperimentalWebImplementation';\n\ndeclare const global: {\n isFormsStackingContext: (node: unknown) => boolean | null; // JSI function\n};\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 useReanimatedHook: 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, handler.config.testId);\n }\n\n scheduleFlushOperations();\n}\n\nfunction checkGestureCallbacksForWorklets(gesture: GestureType) {\n // if a gesture is explicitly marked to run on the JS thread there is no need to check\n // if callbacks are worklets as the user is aware they will be ran on the JS thread\n if (gesture.config.runOnJS) {\n return;\n }\n\n const areSomeNotWorklets = gesture.handlers.isWorklet.includes(false);\n const areSomeWorklets = gesture.handlers.isWorklet.includes(true);\n\n // if some of the callbacks are worklets and some are not, and the gesture is not\n // explicitly marked with `.runOnJS(true)` show an error\n if (areSomeNotWorklets && areSomeWorklets) {\n console.error(\n tagMessage(\n `Some of the callbacks in the gesture are worklets and some are not. Either make sure that all calbacks are marked as 'worklet' if you wish to run them on the UI thread or use '.runOnJS(true)' modifier on the gesture explicitly to run all callbacks on the JS thread.`\n )\n );\n }\n}\n\ninterface WebEventHandler {\n onGestureHandlerEvent: (event: HandlerStateChangeEvent) => void;\n onGestureHandlerStateChange?: (\n event: HandlerStateChangeEvent\n ) => void;\n}\n\ninterface AttachHandlersConfig {\n preparedGesture: GestureConfigReference;\n gestureConfig: ComposedGesture | GestureType;\n gesture: GestureType[];\n viewTag: number;\n webEventHandlersRef: React.RefObject;\n}\n\nfunction attachHandlers({\n preparedGesture,\n gestureConfig,\n gesture,\n viewTag,\n webEventHandlersRef,\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 checkGestureCallbacksForWorklets(handler);\n RNGestureHandlerModule.createGestureHandler(\n handler.handlerName,\n handler.handlerTag,\n filterConfig(handler.config, ALLOWED_PROPS)\n );\n\n registerHandler(handler.handlerTag, handler, handler.config.testId);\n }\n\n // use setImmediate to extract handlerTags, because all refs should be initialized\n // when it's ran\n setImmediate(() => {\n for (const handler of gesture) {\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 scheduleFlushOperations();\n });\n\n preparedGesture.config = gesture;\n\n for (const gesture of preparedGesture.config) {\n const actionType = gesture.shouldUseReanimated\n ? ActionType.REANIMATED_WORKLET\n : ActionType.JS_FUNCTION_NEW_API;\n\n if (Platform.OS === 'web') {\n (\n RNGestureHandlerModule.attachGestureHandler as typeof RNGestureHandlerModuleWeb.attachGestureHandler\n )(\n gesture.handlerTag,\n viewTag,\n ActionType.JS_FUNCTION_OLD_API, // ignored on web\n webEventHandlersRef\n );\n } else {\n RNGestureHandlerModule.attachGestureHandler(\n gesture.handlerTag,\n viewTag,\n actionType\n );\n }\n }\n\n if (preparedGesture.animatedHandlers) {\n const isAnimatedGesture = (g: GestureType) => g.shouldUseReanimated;\n\n preparedGesture.animatedHandlers.value = gesture\n .filter(isAnimatedGesture)\n .map((g) => g.handlers) as unknown as HandlerCallbacks<\n Record\n >[];\n }\n}\n\nfunction updateHandlers(\n preparedGesture: GestureConfigReference,\n gestureConfig: ComposedGesture | GestureType,\n gesture: GestureType[],\n mountedRef: RefObject\n) {\n gestureConfig.prepare();\n\n for (let i = 0; i < gesture.length; i++) {\n const handler = preparedGesture.config[i];\n checkGestureCallbacksForWorklets(handler);\n\n // only update handlerTag when it's actually different, it may be the same\n // if gesture config object is wrapped with useMemo\n if (gesture[i].handlerTag !== handler.handlerTag) {\n gesture[i].handlerTag = handler.handlerTag;\n gesture[i].handlers.handlerTag = handler.handlerTag;\n }\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 if (!mountedRef.current) {\n return;\n }\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\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, handler.config.testId);\n }\n\n if (preparedGesture.animatedHandlers) {\n const previousHandlersValue =\n preparedGesture.animatedHandlers.value ?? [];\n const newHandlersValue = preparedGesture.config\n .filter((g) => g.shouldUseReanimated) // ignore gestures that shouldn't run on UI\n .map((g) => g.handlers) as unknown as HandlerCallbacks<\n Record\n >[];\n\n // if amount of gesture configs changes, we need to update the callbacks in shared value\n let shouldUpdateSharedValue =\n previousHandlersValue.length !== newHandlersValue.length;\n\n if (!shouldUpdateSharedValue) {\n // if the amount is the same, we need to check if any of the configs inside has changed\n for (let i = 0; i < newHandlersValue.length; i++) {\n if (\n // we can use the `gestureId` prop as it's unique for every config instance\n newHandlersValue[i].gestureId !== previousHandlersValue[i].gestureId\n ) {\n shouldUpdateSharedValue = true;\n break;\n }\n }\n }\n\n if (shouldUpdateSharedValue) {\n preparedGesture.animatedHandlers.value = newHandlersValue;\n }\n }\n\n scheduleFlushOperations();\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 (\n gesture[i].handlerName !== preparedGesture.config[i].handlerName ||\n gesture[i].shouldUseReanimated !==\n preparedGesture.config[i].shouldUseReanimated\n ) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction 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\nfunction isTouchEvent(\n event: GestureUpdateEvent | GestureStateChangeEvent | GestureTouchEvent\n): event is GestureTouchEvent {\n 'worklet';\n return event.eventType != null;\n}\n\nfunction 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\nfunction touchEventTypeToCallbackType(\n eventType: TouchEventType\n): CALLBACK_TYPE {\n 'worklet';\n switch (eventType) {\n case TouchEventType.TOUCHES_DOWN:\n return CALLBACK_TYPE.TOUCHES_DOWN;\n case TouchEventType.TOUCHES_MOVE:\n return CALLBACK_TYPE.TOUCHES_MOVE;\n case TouchEventType.TOUCHES_UP:\n return CALLBACK_TYPE.TOUCHES_UP;\n case TouchEventType.TOUCHES_CANCELLED:\n return CALLBACK_TYPE.TOUCHES_CANCELLED;\n }\n return CALLBACK_TYPE.UNDEFINED;\n}\n\nfunction 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(tagMessage('Animated gesture callback must be a worklet'));\n }\n}\n\nfunction useAnimatedGesture(\n preparedGesture: GestureConfigReference,\n needsRebuild: boolean\n) {\n if (!Reanimated) {\n return;\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 !== TouchEventType.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 needsRebuild\n );\n\n preparedGesture.animatedEventHandler = event;\n preparedGesture.animatedHandlers = sharedHandlersCallbacks;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction validateDetectorChildren(ref: any) {\n // finds the first native view under the Wrap component and traverses the fiber tree upwards\n // to check whether there is more than one native view as a pseudo-direct child of GestureDetector\n // i.e. this is not ok:\n // Wrap\n // |\n // / \\\n // / \\\n // / \\\n // / \\\n // NativeView NativeView\n //\n // but this is fine:\n // Wrap\n // |\n // NativeView\n // |\n // / \\\n // / \\\n // / \\\n // / \\\n // NativeView NativeView\n if (__DEV__ && Platform.OS !== 'web') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const wrapType =\n REACT_NATIVE_VERSION.minor > 63 || REACT_NATIVE_VERSION.major > 0\n ? // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n ref._reactInternals.elementType\n : // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n ref._reactInternalFiber.elementType;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n let instance =\n RNRenderer.findHostInstance_DEPRECATED(\n ref\n )._internalFiberInstanceHandleDEV;\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n while (instance && instance.elementType !== wrapType) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (instance.sibling) {\n throw new Error(\n 'GestureDetector has more than one native view as its children. This can happen if you are using a custom component that renders multiple views, like React.Fragment. You should wrap content of GestureDetector with a or .'\n );\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n instance = instance.return;\n }\n }\n}\n\nconst applyUserSelectProp = (\n userSelect: UserSelect,\n gesture: ComposedGesture | GestureType\n): void => {\n for (const g of gesture.toGestureArray()) {\n g.config.userSelect = userSelect;\n }\n};\n\ninterface GestureDetectorProps {\n gesture: ComposedGesture | GestureType;\n userSelect?: UserSelect;\n children?: React.ReactNode;\n}\nexport const GestureDetector = (props: GestureDetectorProps) => {\n const gestureConfig = props.gesture;\n\n if (props.userSelect) {\n applyUserSelectProp(props.userSelect, gestureConfig);\n }\n\n const gesture = gestureConfig.toGestureArray();\n const useReanimatedHook = gesture.some((g) => g.shouldUseReanimated);\n const viewRef = useRef(null);\n const firstRenderRef = useRef(true);\n const mountedRef = useRef(false);\n const webEventHandlersRef = useRef({\n onGestureHandlerEvent: (e: HandlerStateChangeEvent) => {\n onGestureHandlerEvent(e.nativeEvent);\n },\n onGestureHandlerStateChange: isExperimentalWebImplementationEnabled()\n ? (e: HandlerStateChangeEvent) => {\n onGestureHandlerEvent(e.nativeEvent);\n }\n : undefined,\n });\n\n const preparedGesture = React.useRef({\n config: gesture,\n animatedEventHandler: null,\n animatedHandlers: null,\n firstExecution: true,\n useReanimatedHook: useReanimatedHook,\n }).current;\n\n if (useReanimatedHook !== preparedGesture.useReanimatedHook) {\n throw new Error(\n tagMessage(\n 'You cannot change the thread the callbacks are ran on while the app is running'\n )\n );\n }\n\n // Reanimated event should be rebuilt only when gestures are reattached, otherwise\n // config update will be enough as all necessary items are stored in shared values anyway\n const needsToRebuildReanimatedEvent =\n preparedGesture.firstExecution || needsToReattach(preparedGesture, gesture);\n\n if (preparedGesture.firstExecution) {\n gestureConfig.initialize();\n }\n\n if (useReanimatedHook) {\n // Whether animatedGesture or gesture is used shouldn't change while the app is running\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useAnimatedGesture(preparedGesture, needsToRebuildReanimatedEvent);\n }\n\n useEffect(() => {\n firstRenderRef.current = true;\n mountedRef.current = true;\n const viewTag = findNodeHandle(viewRef.current) as number;\n\n validateDetectorChildren(viewRef.current);\n attachHandlers({\n preparedGesture,\n gestureConfig,\n gesture,\n viewTag,\n webEventHandlersRef,\n });\n\n return () => {\n mountedRef.current = false;\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 validateDetectorChildren(viewRef.current);\n dropHandlers(preparedGesture);\n attachHandlers({\n preparedGesture,\n gestureConfig,\n gesture,\n viewTag,\n webEventHandlersRef,\n });\n } else {\n updateHandlers(preparedGesture, gestureConfig, gesture, mountedRef);\n }\n } else {\n firstRenderRef.current = false;\n }\n }, [props]);\n\n const refFunction = (ref: unknown) => {\n if (ref !== null) {\n //@ts-ignore Just setting the ref\n viewRef.current = ref;\n\n if (isFabric()) {\n const node = getShadowNodeFromRef(ref);\n if (global.isFormsStackingContext(node) === false) {\n console.error(\n tagMessage(\n 'GestureDetector has received a child that may get view-flattened. ' +\n '\\nTo prevent it from misbehaving you need to wrap the child with a ``.'\n )\n );\n }\n }\n }\n };\n\n if (useReanimatedHook) {\n return (\n \n {props.children}\n \n );\n } else {\n return {props.children};\n }\n};\n\nclass Wrap extends React.Component<{\n onGestureHandlerEvent?: unknown;\n // implicit `children` prop has been removed in @types/react^18.0.0\n children?: React.ReactNode;\n}> {\n render() {\n try {\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 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 } catch (e) {\n throw new Error(\n tagMessage(\n `GestureDetector got more than one view as a child. If you want the gesture to work on multiple views, wrap them with a common parent and attach the gesture to that view.`\n )\n );\n }\n }\n}\n\nconst AnimatedWrap = Reanimated?.default?.createAnimatedComponent(Wrap) ?? Wrap;\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 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 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","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, 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 { 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';\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 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 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","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","/* 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","module.exports = \"data:font/ttf;base64,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eWJvYXJkCGNhbGVuZGFyC3BsYXktY2lyY2xlDG1pbnVzLXNxdWFyZQxjaGVjay1zcXVhcmUMc2hhcmUtc3F1YXJlB2NvbXBhc3MRY2FyZXQtc3F1YXJlLWRvd24PY2FyZXQtc3F1YXJlLXVwEmNhcmV0LXNxdWFyZS1yaWdodARmaWxlCGZpbGUtYWx0CXRodW1icy11cAt0aHVtYnMtZG93bgNzdW4EbW9vbhFjYXJldC1zcXVhcmUtbGVmdApkb3QtY2lyY2xlCGJ1aWxkaW5nCGZpbGUtcGRmCWZpbGUtd29yZApmaWxlLWV4Y2VsD2ZpbGUtcG93ZXJwb2ludApmaWxlLWltYWdlDGZpbGUtYXJjaGl2ZQpmaWxlLWF1ZGlvCmZpbGUtdmlkZW8JZmlsZS1jb2RlCWxpZmUtcmluZwtwYXBlci1wbGFuZQZmdXRib2wJbmV3c3BhcGVyCmJlbGwtc2xhc2gRY2xvc2VkLWNhcHRpb25pbmcMb2JqZWN0LWdyb3VwDm9iamVjdC11bmdyb3VwC3N0aWNreS1ub3RlBWNsb25lCWhvdXJnbGFzcwloYW5kLXJvY2sKaGFuZC1wYXBlcg1oYW5kLXNjaXNzb3JzC2hhbmQtbGl6YXJkCmhhbmQtc3BvY2sMaGFuZC1wb2ludGVyCmhhbmQtcGVhY2UNY2FsZW5kYXItcGx1cw5jYWxlbmRhci1taW51cw5jYWxlbmRhci10aW1lcw5jYWxlbmRhci1jaGVjawNtYXALY29tbWVudC1hbHQMcGF1c2UtY2lyY2xlC3N0b3AtY2lyY2xlCWhhbmRzaGFrZQ1lbnZlbG9wZS1vcGVuDGFkZHJlc3MtYm9vawxhZGRyZXNzLWNhcmQLdXNlci1jaXJjbGUIaWQtYmFkZ2UHaWQtY2FyZA93aW5kb3ctbWF4aW1pemUPd2luZG93LW1pbmltaXplDndpbmRvdy1yZXN0b3JlCXNub3dmbGFrZQl0cmFzaC1hbHQGaW1hZ2VzCWNsaXBib2FyZBVhcnJvdy1hbHQtY2lyY2xlLWRvd24VYXJyb3ctYWx0LWNpcmNsZS1sZWZ0FmFycm93LWFsdC1jaXJjbGUtcmlnaHQTYXJyb3ctYWx0LWNpcmNsZS11cANnZW0ObW9uZXktYmlsbC1hbHQMd2luZG93LWNsb3NlDGNvbW1lbnQtZG90cwpzbWlsZS13aW5rBWFuZ3J5BWRpenp5B2ZsdXNoZWQKZnJvd24tb3BlbgdncmltYWNlBGdyaW4IZ3Jpbi1hbHQJZ3Jpbi1iZWFtD2dyaW4tYmVhbS1zd2VhdAtncmluLWhlYXJ0cwtncmluLXNxdWludBFncmluLXNxdWludC10ZWFycwpncmluLXN0YXJzCmdyaW4tdGVhcnMLZ3Jpbi10b25ndWUSZ3Jpbi10b25ndWUtc3F1aW50EGdyaW4tdG9uZ3VlLXdpbmsJZ3Jpbi13aW5rBGtpc3MJa2lzcy1iZWFtD2tpc3Mtd2luay1oZWFydAVsYXVnaApsYXVnaC1iZWFtDGxhdWdoLXNxdWludApsYXVnaC13aW5rCW1laC1ibGFuaxBtZWgtcm9sbGluZy1leWVzB3NhZC1jcnkIc2FkLXRlYXIKc21pbGUtYmVhbQhzdXJwcmlzZQV0aXJlZAAAAAAB//8AAgABAAAADAAAABYAAAACAAEAAwCZAAIABAAAAAIAAAAAAAAAAQAAAADb2GbUAAAAANx2e/IAAAAA3HZ7+A==\"","/* 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","import FontAwesome from './build/FontAwesome';\nexport default FontAwesome;\n","import Feather from './build/Feather';\nexport default Feather;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useClipboard = void 0;\nvar Clipboard_1 = require(\"./Clipboard\");\nvar useClipboard_1 = require(\"./useClipboard\");\nObject.defineProperty(exports, \"useClipboard\", { enumerable: true, get: function () { return useClipboard_1.useClipboard; } });\nexports.default = Clipboard_1.Clipboard;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Clipboard = void 0;\nexports.Clipboard = {\n getString: function () {\n if (navigator && navigator.clipboard) {\n return navigator.clipboard.readText();\n }\n else {\n var el = document.createElement('textarea');\n document.body.appendChild(el);\n el.select();\n document.execCommand('paste');\n var value = el.innerText;\n document.body.removeChild(el);\n return Promise.resolve(value);\n }\n },\n setString: function (content) {\n if (navigator && navigator.clipboard) {\n navigator.clipboard.writeText(content);\n }\n else {\n var el = document.createElement('textarea');\n el.value = content;\n document.body.appendChild(el);\n el.select();\n document.execCommand('copy');\n document.body.removeChild(el);\n }\n },\n};\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { I18nManager, Platform, StyleSheet, TextInput, View } from 'react-native';\nimport color from 'color';\nimport ActivityIndicator from './ActivityIndicator';\nimport Divider from './Divider';\nimport IconButton from './IconButton/IconButton';\nimport MaterialCommunityIcon from './MaterialCommunityIcon';\nimport Surface from './Surface';\nimport { useInternalTheme } from '../core/theming';\nimport { forwardRef } from '../utils/forwardRef';\n/**\n * Searchbar is a simple input box where users can type search queries.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Searchbar } from 'react-native-paper';\n *\n * const MyComponent = () => {\n * const [searchQuery, setSearchQuery] = React.useState('');\n *\n * return (\n * \n * );\n * };\n *\n * export default MyComponent;\n\n * ```\n */\nconst Searchbar = forwardRef((_ref, ref) => {\n var _theme$colors, _theme$colors2;\n let {\n icon,\n iconColor: customIconColor,\n rippleColor: customRippleColor,\n onIconPress,\n searchAccessibilityLabel = 'search',\n clearIcon,\n clearAccessibilityLabel = 'clear',\n onClearIconPress,\n traileringIcon,\n traileringIconColor,\n traileringIconAccessibilityLabel,\n traileringRippleColor: customTraileringRippleColor,\n onTraileringIconPress,\n right,\n mode = 'bar',\n showDivider = true,\n inputStyle,\n placeholder,\n elevation = 0,\n style,\n theme: themeOverrides,\n value,\n loading = false,\n testID = 'search-bar',\n ...rest\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const root = React.useRef(null);\n React.useImperativeHandle(ref, () => {\n const input = root.current;\n if (input) {\n return {\n focus: () => input.focus(),\n clear: () => input.clear(),\n setNativeProps: args => input.setNativeProps(args),\n isFocused: () => input.isFocused(),\n blur: () => input.blur()\n };\n }\n const noop = () => {\n throw new Error('TextInput is not available');\n };\n return {\n focus: noop,\n clear: noop,\n setNativeProps: noop,\n isFocused: noop,\n blur: noop\n };\n });\n const handleClearPress = e => {\n var _root$current, _rest$onChangeText;\n (_root$current = root.current) === null || _root$current === void 0 ? void 0 : _root$current.clear();\n (_rest$onChangeText = rest.onChangeText) === null || _rest$onChangeText === void 0 ? void 0 : _rest$onChangeText.call(rest, '');\n onClearIconPress === null || onClearIconPress === void 0 ? void 0 : onClearIconPress(e);\n };\n const {\n roundness,\n dark,\n isV3,\n fonts\n } = theme;\n const placeholderTextColor = isV3 ? theme.colors.onSurface : (_theme$colors = theme.colors) === null || _theme$colors === void 0 ? void 0 : _theme$colors.placeholder;\n const textColor = isV3 ? theme.colors.onSurfaceVariant : theme.colors.text;\n const md2IconColor = dark ? textColor : color(textColor).alpha(0.54).rgb().string();\n const iconColor = customIconColor || (isV3 ? theme.colors.onSurfaceVariant : md2IconColor);\n const rippleColor = customRippleColor || color(textColor).alpha(0.32).rgb().string();\n const traileringRippleColor = customTraileringRippleColor || color(textColor).alpha(0.32).rgb().string();\n const font = isV3 ? {\n ...fonts.bodyLarge,\n lineHeight: Platform.select({\n ios: 0,\n default: fonts.bodyLarge.lineHeight\n })\n } : theme.fonts.regular;\n const isBarMode = isV3 && mode === 'bar';\n const shouldRenderTraileringIcon = isBarMode && traileringIcon && !loading && (!value || right !== undefined);\n return /*#__PURE__*/React.createElement(Surface, _extends({\n style: [{\n borderRadius: roundness\n }, !isV3 && styles.elevation, isV3 && {\n backgroundColor: theme.colors.elevation.level3,\n borderRadius: roundness * (isBarMode ? 7 : 0)\n }, styles.container, style],\n testID: `${testID}-container`\n }, theme.isV3 && {\n elevation\n }, {\n theme: theme\n }), /*#__PURE__*/React.createElement(IconButton, {\n accessibilityRole: \"button\",\n borderless: true,\n rippleColor: rippleColor,\n onPress: onIconPress,\n iconColor: iconColor,\n icon: icon || (_ref2 => {\n let {\n size,\n color\n } = _ref2;\n return /*#__PURE__*/React.createElement(MaterialCommunityIcon, {\n name: \"magnify\",\n color: color,\n size: size,\n direction: I18nManager.getConstants().isRTL ? 'rtl' : 'ltr'\n });\n }),\n theme: theme,\n accessibilityLabel: searchAccessibilityLabel,\n testID: `${testID}-icon`\n }), /*#__PURE__*/React.createElement(TextInput, _extends({\n style: [styles.input, {\n color: textColor,\n ...font,\n ...Platform.select({\n web: {\n outline: 'none'\n }\n })\n }, isV3 && (isBarMode ? styles.barModeInput : styles.viewModeInput), inputStyle],\n placeholder: placeholder || '',\n placeholderTextColor: placeholderTextColor,\n selectionColor: (_theme$colors2 = theme.colors) === null || _theme$colors2 === void 0 ? void 0 : _theme$colors2.primary,\n underlineColorAndroid: \"transparent\",\n returnKeyType: \"search\",\n keyboardAppearance: dark ? 'dark' : 'light',\n accessibilityRole: \"search\",\n ref: root,\n value: value,\n testID: testID\n }, rest)), loading ? /*#__PURE__*/React.createElement(ActivityIndicator, {\n testID: \"activity-indicator\",\n style: isV3 ? styles.v3Loader : styles.loader\n }) :\n /*#__PURE__*/\n // Clear icon should be always rendered within Searchbar – it's transparent,\n // without touch events, when there is no value. It's done to avoid issues\n // with the abruptly stopping ripple effect and changing bar width on web,\n // when clearing the value.\n React.createElement(View, {\n pointerEvents: value ? 'auto' : 'none',\n testID: `${testID}-icon-wrapper`,\n style: [isV3 && !value && styles.v3ClearIcon, isV3 && right !== undefined && styles.v3ClearIconHidden]\n }, /*#__PURE__*/React.createElement(IconButton, {\n borderless: true,\n accessibilityLabel: clearAccessibilityLabel,\n iconColor: value ? iconColor : 'rgba(255, 255, 255, 0)',\n rippleColor: rippleColor,\n onPress: handleClearPress,\n icon: clearIcon || (_ref3 => {\n let {\n size,\n color\n } = _ref3;\n return /*#__PURE__*/React.createElement(MaterialCommunityIcon, {\n name: isV3 ? 'close' : 'close-circle-outline',\n color: color,\n size: size,\n direction: I18nManager.getConstants().isRTL ? 'rtl' : 'ltr'\n });\n }),\n testID: `${testID}-clear-icon`,\n accessibilityRole: \"button\",\n theme: theme\n })), shouldRenderTraileringIcon ? /*#__PURE__*/React.createElement(IconButton, {\n accessibilityRole: \"button\",\n borderless: true,\n onPress: onTraileringIconPress,\n iconColor: traileringIconColor || theme.colors.onSurfaceVariant,\n rippleColor: traileringRippleColor,\n icon: traileringIcon,\n accessibilityLabel: traileringIconAccessibilityLabel,\n testID: `${testID}-trailering-icon`\n }) : null, isBarMode && (right === null || right === void 0 ? void 0 : right({\n color: textColor,\n style: styles.rightStyle,\n testID\n })), isV3 && !isBarMode && showDivider && /*#__PURE__*/React.createElement(Divider, {\n bold: true,\n style: [styles.divider, {\n backgroundColor: theme.colors.outline\n }],\n testID: `${testID}-divider`\n }));\n});\nconst styles = StyleSheet.create({\n container: {\n flexDirection: 'row',\n alignItems: 'center'\n },\n input: {\n flex: 1,\n fontSize: 18,\n paddingLeft: 8,\n alignSelf: 'stretch',\n textAlign: I18nManager.getConstants().isRTL ? 'right' : 'left',\n minWidth: 0\n },\n barModeInput: {\n paddingLeft: 0,\n minHeight: 56\n },\n viewModeInput: {\n paddingLeft: 0,\n minHeight: 72\n },\n elevation: {\n elevation: 4\n },\n loader: {\n margin: 10\n },\n v3Loader: {\n marginHorizontal: 16\n },\n rightStyle: {\n marginRight: 16\n },\n v3ClearIcon: {\n position: 'absolute',\n right: 0,\n marginLeft: 16\n },\n v3ClearIconHidden: {\n display: 'none'\n },\n divider: {\n position: 'absolute',\n bottom: 0,\n width: '100%'\n }\n});\nexport default Searchbar;\n//# sourceMappingURL=Searchbar.js.map","const ECLevel = require('./error-correction-level')\r\n\r\nconst EC_BLOCKS_TABLE = [\r\n// L M Q H\r\n 1, 1, 1, 1,\r\n 1, 1, 1, 1,\r\n 1, 1, 2, 2,\r\n 1, 2, 2, 4,\r\n 1, 2, 4, 4,\r\n 2, 4, 4, 4,\r\n 2, 4, 6, 5,\r\n 2, 4, 6, 6,\r\n 2, 5, 8, 8,\r\n 4, 5, 8, 8,\r\n 4, 5, 8, 11,\r\n 4, 8, 10, 11,\r\n 4, 9, 12, 16,\r\n 4, 9, 16, 16,\r\n 6, 10, 12, 18,\r\n 6, 10, 17, 16,\r\n 6, 11, 16, 19,\r\n 6, 13, 18, 21,\r\n 7, 14, 21, 25,\r\n 8, 16, 20, 25,\r\n 8, 17, 23, 25,\r\n 9, 17, 23, 34,\r\n 9, 18, 25, 30,\r\n 10, 20, 27, 32,\r\n 12, 21, 29, 35,\r\n 12, 23, 34, 37,\r\n 12, 25, 34, 40,\r\n 13, 26, 35, 42,\r\n 14, 28, 38, 45,\r\n 15, 29, 40, 48,\r\n 16, 31, 43, 51,\r\n 17, 33, 45, 54,\r\n 18, 35, 48, 57,\r\n 19, 37, 51, 60,\r\n 19, 38, 53, 63,\r\n 20, 40, 56, 66,\r\n 21, 43, 59, 70,\r\n 22, 45, 62, 74,\r\n 24, 47, 65, 77,\r\n 25, 49, 68, 81\r\n]\r\n\r\nconst EC_CODEWORDS_TABLE = [\r\n// L M Q H\r\n 7, 10, 13, 17,\r\n 10, 16, 22, 28,\r\n 15, 26, 36, 44,\r\n 20, 36, 52, 64,\r\n 26, 48, 72, 88,\r\n 36, 64, 96, 112,\r\n 40, 72, 108, 130,\r\n 48, 88, 132, 156,\r\n 60, 110, 160, 192,\r\n 72, 130, 192, 224,\r\n 80, 150, 224, 264,\r\n 96, 176, 260, 308,\r\n 104, 198, 288, 352,\r\n 120, 216, 320, 384,\r\n 132, 240, 360, 432,\r\n 144, 280, 408, 480,\r\n 168, 308, 448, 532,\r\n 180, 338, 504, 588,\r\n 196, 364, 546, 650,\r\n 224, 416, 600, 700,\r\n 224, 442, 644, 750,\r\n 252, 476, 690, 816,\r\n 270, 504, 750, 900,\r\n 300, 560, 810, 960,\r\n 312, 588, 870, 1050,\r\n 336, 644, 952, 1110,\r\n 360, 700, 1020, 1200,\r\n 390, 728, 1050, 1260,\r\n 420, 784, 1140, 1350,\r\n 450, 812, 1200, 1440,\r\n 480, 868, 1290, 1530,\r\n 510, 924, 1350, 1620,\r\n 540, 980, 1440, 1710,\r\n 570, 1036, 1530, 1800,\r\n 570, 1064, 1590, 1890,\r\n 600, 1120, 1680, 1980,\r\n 630, 1204, 1770, 2100,\r\n 660, 1260, 1860, 2220,\r\n 720, 1316, 1950, 2310,\r\n 750, 1372, 2040, 2430\r\n]\r\n\r\n/**\r\n * Returns the number of error correction block that the QR Code should contain\r\n * for the specified version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction blocks\r\n */\r\nexports.getBlocksCount = function getBlocksCount (version, errorCorrectionLevel) {\r\n switch (errorCorrectionLevel) {\r\n case ECLevel.L:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 0]\r\n case ECLevel.M:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 1]\r\n case ECLevel.Q:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 2]\r\n case ECLevel.H:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 3]\r\n default:\r\n return undefined\r\n }\r\n}\r\n\r\n/**\r\n * Returns the number of error correction codewords to use for the specified\r\n * version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction codewords\r\n */\r\nexports.getTotalCodewordsCount = function getTotalCodewordsCount (version, errorCorrectionLevel) {\r\n switch (errorCorrectionLevel) {\r\n case ECLevel.L:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 0]\r\n case ECLevel.M:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 1]\r\n case ECLevel.Q:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 2]\r\n case ECLevel.H:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 3]\r\n default:\r\n return undefined\r\n }\r\n}\r\n","/**\n * Check if QR Code version is valid\n *\n * @param {Number} version QR Code version\n * @return {Boolean} true if valid version, false otherwise\n */\nexports.isValid = function isValid (version) {\n return !isNaN(version) && version >= 1 && version <= 40\n}\n","const numeric = '[0-9]+'\nconst alphanumeric = '[A-Z $%*+\\\\-./:]+'\nlet kanji = '(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|' +\n '[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|' +\n '[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|' +\n '[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+'\nkanji = kanji.replace(/u/g, '\\\\u')\n\nconst byte = '(?:(?![A-Z0-9 $%*+\\\\-./:]|' + kanji + ')(?:.|[\\r\\n]))+'\n\nexports.KANJI = new RegExp(kanji, 'g')\nexports.BYTE_KANJI = new RegExp('[^A-Z0-9 $%*+\\\\-./:]+', 'g')\nexports.BYTE = new RegExp(byte, 'g')\nexports.NUMERIC = new RegExp(numeric, 'g')\nexports.ALPHANUMERIC = new RegExp(alphanumeric, 'g')\n\nconst TEST_KANJI = new RegExp('^' + kanji + '$')\nconst TEST_NUMERIC = new RegExp('^' + numeric + '$')\nconst TEST_ALPHANUMERIC = new RegExp('^[A-Z0-9 $%*+\\\\-./:]+$')\n\nexports.testKanji = function testKanji (str) {\n return TEST_KANJI.test(str)\n}\n\nexports.testNumeric = function testNumeric (str) {\n return TEST_NUMERIC.test(str)\n}\n\nexports.testAlphanumeric = function testAlphanumeric (str) {\n return TEST_ALPHANUMERIC.test(str)\n}\n","function hex2rgba (hex) {\n if (typeof hex === 'number') {\n hex = hex.toString()\n }\n\n if (typeof hex !== 'string') {\n throw new Error('Color should be defined as hex string')\n }\n\n let hexCode = hex.slice().replace('#', '').split('')\n if (hexCode.length < 3 || hexCode.length === 5 || hexCode.length > 8) {\n throw new Error('Invalid hex color: ' + hex)\n }\n\n // Convert from short to long form (fff -> ffffff)\n if (hexCode.length === 3 || hexCode.length === 4) {\n hexCode = Array.prototype.concat.apply([], hexCode.map(function (c) {\n return [c, c]\n }))\n }\n\n // Add default alpha value\n if (hexCode.length === 6) hexCode.push('F', 'F')\n\n const hexValue = parseInt(hexCode.join(''), 16)\n\n return {\n r: (hexValue >> 24) & 255,\n g: (hexValue >> 16) & 255,\n b: (hexValue >> 8) & 255,\n a: hexValue & 255,\n hex: '#' + hexCode.slice(0, 6).join('')\n }\n}\n\nexports.getOptions = function getOptions (options) {\n if (!options) options = {}\n if (!options.color) options.color = {}\n\n const margin = typeof options.margin === 'undefined' ||\n options.margin === null ||\n options.margin < 0\n ? 4\n : options.margin\n\n const width = options.width && options.width >= 21 ? options.width : undefined\n const scale = options.scale || 4\n\n return {\n width: width,\n scale: width ? 4 : scale,\n margin: margin,\n color: {\n dark: hex2rgba(options.color.dark || '#000000ff'),\n light: hex2rgba(options.color.light || '#ffffffff')\n },\n type: options.type,\n rendererOpts: options.rendererOpts || {}\n }\n}\n\nexports.getScale = function getScale (qrSize, opts) {\n return opts.width && opts.width >= qrSize + opts.margin * 2\n ? opts.width / (qrSize + opts.margin * 2)\n : opts.scale\n}\n\nexports.getImageWidth = function getImageWidth (qrSize, opts) {\n const scale = exports.getScale(qrSize, opts)\n return Math.floor((qrSize + opts.margin * 2) * scale)\n}\n\nexports.qrToImageData = function qrToImageData (imgData, qr, opts) {\n const size = qr.modules.size\n const data = qr.modules.data\n const scale = exports.getScale(size, opts)\n const symbolSize = Math.floor((size + opts.margin * 2) * scale)\n const scaledMargin = opts.margin * scale\n const palette = [opts.color.light, opts.color.dark]\n\n for (let i = 0; i < symbolSize; i++) {\n for (let j = 0; j < symbolSize; j++) {\n let posDst = (i * symbolSize + j) * 4\n let pxColor = opts.color.light\n\n if (i >= scaledMargin && j >= scaledMargin &&\n i < symbolSize - scaledMargin && j < symbolSize - scaledMargin) {\n const iSrc = Math.floor((i - scaledMargin) / scale)\n const jSrc = Math.floor((j - scaledMargin) / scale)\n pxColor = palette[data[iSrc * size + jSrc] ? 1 : 0]\n }\n\n imgData[posDst++] = pxColor.r\n imgData[posDst++] = pxColor.g\n imgData[posDst++] = pxColor.b\n imgData[posDst] = pxColor.a\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","export let AdornmentType = /*#__PURE__*/function (AdornmentType) {\n AdornmentType[\"Icon\"] = \"icon\";\n AdornmentType[\"Affix\"] = \"affix\";\n return AdornmentType;\n}({});\nexport let AdornmentSide = /*#__PURE__*/function (AdornmentSide) {\n AdornmentSide[\"Right\"] = \"right\";\n AdornmentSide[\"Left\"] = \"left\";\n return AdornmentSide;\n}({});\nexport let InputMode = /*#__PURE__*/function (InputMode) {\n InputMode[\"Outlined\"] = \"outlined\";\n InputMode[\"Flat\"] = \"flat\";\n return InputMode;\n}({});\n//# sourceMappingURL=enums.js.map","import { Platform } from 'react-native';\nimport color from 'color';\nimport { AdornmentSide, AdornmentType } from './Adornment/enums';\nimport { MIN_WIDTH, ADORNMENT_SIZE, MD2_ADORNMENT_OFFSET, MD2_AFFIX_OFFSET, MD2_FLAT_INPUT_OFFSET, MD2_ICON_OFFSET, MD2_INPUT_PADDING_HORIZONTAL, MD2_LABEL_PADDING_HORIZONTAL, MD2_LABEL_PADDING_TOP, MD2_MIN_HEIGHT, MD2_OUTLINED_INPUT_OFFSET, MD3_ADORNMENT_OFFSET, MD3_AFFIX_OFFSET, MD3_FLAT_INPUT_OFFSET, MD3_ICON_OFFSET, MD3_INPUT_PADDING_HORIZONTAL, MD3_LABEL_PADDING_HORIZONTAL, MD3_LABEL_PADDING_TOP, MD3_MIN_HEIGHT, MD3_OUTLINED_INPUT_OFFSET } from './constants';\nexport const calculateLabelTopPosition = function (labelHeight) {\n let height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n let optionalPadding = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n const customHeight = height > 0 ? height : 0;\n return Math.floor((customHeight - labelHeight) / 2 + optionalPadding);\n};\nexport const calculateInputHeight = function (labelHeight) {\n let height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n let minHeight = arguments.length > 2 ? arguments[2] : undefined;\n const finalHeight = height > 0 ? height : labelHeight;\n if (height > 0) return height;\n return finalHeight < minHeight ? minHeight : finalHeight;\n};\nexport const calculatePadding = props => {\n const {\n height,\n multiline = false\n } = props;\n let result = 0;\n if (multiline) {\n if (height && multiline) {\n result = calculateTextAreaPadding(props);\n } else {\n result = calculateInputPadding(props);\n }\n }\n return Math.max(0, result);\n};\nconst calculateTextAreaPadding = props => {\n const {\n dense\n } = props;\n return dense ? 10 : 20;\n};\nconst calculateInputPadding = _ref => {\n let {\n topPosition,\n fontSize,\n multiline,\n scale,\n dense,\n offset,\n isAndroid\n } = _ref;\n const refFontSize = scale * fontSize;\n let result = Math.floor(topPosition / 2);\n result = result + Math.floor((refFontSize - fontSize) / 2) - (scale < 1 ? offset / 2 : 0);\n if (multiline && isAndroid) result = Math.min(dense ? offset / 2 : offset, result);\n return result;\n};\nexport const adjustPaddingOut = _ref2 => {\n let {\n pad,\n multiline,\n label,\n scale,\n height,\n fontSize,\n lineHeight,\n dense,\n offset,\n isAndroid\n } = _ref2;\n const fontHeight = lineHeight ?? fontSize;\n const refFontHeight = scale * fontSize;\n let result = pad;\n if (height && !multiline) {\n return {\n paddingTop: Math.max(0, (height - fontHeight) / 2),\n paddingBottom: Math.max(0, (height - fontHeight) / 2)\n };\n }\n if (!isAndroid && multiline) {\n if (dense) {\n if (label) {\n result += scale < 1 ? Math.min(offset, refFontHeight / 2 * scale) : 0;\n } else {\n result += 0;\n }\n }\n if (!dense) {\n if (label) {\n result += scale < 1 ? Math.min(offset, refFontHeight * scale) : Math.min(offset / 2, refFontHeight * scale);\n } else {\n result += scale < 1 ? Math.min(offset / 2, refFontHeight * scale) : 0;\n }\n }\n result = Math.floor(result);\n }\n return {\n paddingTop: result,\n paddingBottom: result\n };\n};\nexport const adjustPaddingFlat = _ref3 => {\n let {\n pad,\n scale,\n multiline,\n label,\n height,\n offset,\n dense,\n fontSize,\n isAndroid,\n styles\n } = _ref3;\n let result = pad;\n let topResult = result;\n let bottomResult = result;\n const {\n paddingTop,\n paddingBottom\n } = styles;\n const refFontSize = scale * fontSize;\n if (!multiline) {\n // do not modify padding if input is not multiline\n if (label) {\n // return const style for flat input with label\n return {\n paddingTop,\n paddingBottom\n };\n }\n // return pad for flat input without label\n return {\n paddingTop: result,\n paddingBottom: result\n };\n }\n if (label) {\n // add paddings passed from styles\n topResult = paddingTop;\n bottomResult = paddingBottom;\n\n // adjust top padding for iOS\n if (!isAndroid) {\n if (dense) {\n topResult += scale < 1 ? Math.min(result, refFontSize * scale) - result / 2 : Math.min(result, refFontSize * scale) - result / 2;\n }\n if (!dense) {\n topResult += scale < 1 ? Math.min(offset / 2, refFontSize * scale) : Math.min(result, refFontSize * scale) - offset / 2;\n }\n }\n topResult = Math.floor(topResult);\n } else {\n if (height) {\n // center text when height is passed\n return {\n paddingTop: Math.max(0, (height - fontSize) / 2),\n paddingBottom: Math.max(0, (height - fontSize) / 2)\n };\n }\n // adjust paddings for iOS if no label\n if (!isAndroid) {\n if (dense) {\n result += scale < 1 ? Math.min(offset / 2, fontSize / 2 * scale) : Math.min(offset / 2, scale);\n }\n if (!dense) {\n result += scale < 1 ? Math.min(offset, fontSize * scale) : Math.min(fontSize, offset / 2 * scale);\n }\n result = Math.floor(result);\n topResult = result;\n bottomResult = result;\n }\n }\n return {\n paddingTop: Math.max(0, topResult),\n paddingBottom: Math.max(0, bottomResult)\n };\n};\nexport function calculateFlatAffixTopPosition(_ref4) {\n let {\n height,\n paddingTop,\n paddingBottom,\n affixHeight\n } = _ref4;\n const inputHeightWithoutPadding = height - paddingTop - paddingBottom;\n const halfOfTheInputHeightDecreasedByAffixHeight = (inputHeightWithoutPadding - affixHeight) / 2;\n return paddingTop + halfOfTheInputHeightDecreasedByAffixHeight;\n}\nexport function calculateOutlinedIconAndAffixTopPosition(_ref5) {\n let {\n height,\n affixHeight,\n labelYOffset\n } = _ref5;\n return (height - affixHeight + labelYOffset) / 2;\n}\nexport const calculateFlatInputHorizontalPadding = _ref6 => {\n let {\n adornmentConfig,\n isV3\n } = _ref6;\n const {\n LABEL_PADDING_HORIZONTAL,\n ADORNMENT_OFFSET,\n FLAT_INPUT_OFFSET\n } = getConstants(isV3);\n let paddingLeft = LABEL_PADDING_HORIZONTAL;\n let paddingRight = LABEL_PADDING_HORIZONTAL;\n adornmentConfig.forEach(_ref7 => {\n let {\n type,\n side\n } = _ref7;\n if (type === AdornmentType.Icon && side === AdornmentSide.Left) {\n paddingLeft = ADORNMENT_SIZE + ADORNMENT_OFFSET + FLAT_INPUT_OFFSET;\n } else if (side === AdornmentSide.Right) {\n if (type === AdornmentType.Affix) {\n paddingRight = ADORNMENT_SIZE + ADORNMENT_OFFSET + FLAT_INPUT_OFFSET;\n } else if (type === AdornmentType.Icon) {\n paddingRight = ADORNMENT_SIZE + ADORNMENT_OFFSET + FLAT_INPUT_OFFSET;\n }\n }\n });\n return {\n paddingLeft,\n paddingRight\n };\n};\nconst getInputTextColor = _ref8 => {\n let {\n theme,\n textColor,\n disabled\n } = _ref8;\n if (textColor) {\n return textColor;\n }\n if (theme.isV3) {\n if (disabled) {\n return theme.colors.onSurfaceDisabled;\n }\n return theme.colors.onSurface;\n }\n if (disabled) {\n return color(theme.colors.text).alpha(0.54).rgb().string();\n }\n return theme.colors.text;\n};\nconst getActiveColor = _ref9 => {\n let {\n theme,\n disabled,\n error,\n activeUnderlineColor,\n activeOutlineColor,\n mode\n } = _ref9;\n const isFlat = mode === 'flat';\n const modeColor = isFlat ? activeUnderlineColor : activeOutlineColor;\n if (error) {\n return theme.colors.error;\n }\n if (modeColor) {\n return modeColor;\n }\n if (disabled) {\n if (theme.isV3) {\n return theme.colors.onSurfaceDisabled;\n }\n return color(theme.colors.text).alpha(0.54).rgb().string();\n }\n return theme.colors.primary;\n};\nconst getPlaceholderColor = _ref10 => {\n let {\n theme,\n disabled\n } = _ref10;\n if (theme.isV3) {\n if (disabled) {\n return theme.colors.onSurfaceDisabled;\n }\n return theme.colors.onSurfaceVariant;\n }\n if (disabled) {\n return theme.colors.disabled;\n }\n return theme.colors.placeholder;\n};\nconst getSelectionColor = _ref11 => {\n let {\n activeColor,\n customSelectionColor\n } = _ref11;\n if (typeof customSelectionColor !== 'undefined') {\n return customSelectionColor;\n }\n if (Platform.OS === 'android') {\n return color(activeColor).alpha(0.54).rgb().string();\n }\n return activeColor;\n};\nconst getFlatBackgroundColor = _ref12 => {\n var _theme$colors, _theme$colors2;\n let {\n theme,\n disabled\n } = _ref12;\n if (theme.isV3) {\n if (disabled) {\n return color(theme.colors.onSurface).alpha(0.04).rgb().string();\n } else {\n return theme.colors.surfaceVariant;\n }\n }\n if (disabled) {\n return undefined;\n }\n return theme.dark ? color((_theme$colors = theme.colors) === null || _theme$colors === void 0 ? void 0 : _theme$colors.background).lighten(0.24).rgb().string() : color((_theme$colors2 = theme.colors) === null || _theme$colors2 === void 0 ? void 0 : _theme$colors2.background).darken(0.06).rgb().string();\n};\nconst getFlatUnderlineColor = _ref13 => {\n let {\n theme,\n disabled,\n underlineColor\n } = _ref13;\n if (!disabled && underlineColor) {\n return underlineColor;\n }\n if (theme.isV3) {\n if (disabled) {\n return theme.colors.onSurfaceDisabled;\n }\n return theme.colors.onSurfaceVariant;\n }\n if (disabled) {\n return 'transparent';\n }\n return theme.colors.disabled;\n};\nconst getOutlinedOutlineInputColor = _ref14 => {\n let {\n theme,\n disabled,\n customOutlineColor\n } = _ref14;\n const isTransparent = color(customOutlineColor).alpha() === 0;\n if (!disabled && customOutlineColor) {\n return customOutlineColor;\n }\n if (theme.isV3) {\n if (disabled) {\n if (theme.dark) {\n return 'transparent';\n }\n return theme.colors.surfaceDisabled;\n }\n return theme.colors.outline;\n }\n if (disabled) {\n if (isTransparent) {\n return customOutlineColor;\n }\n return theme.colors.disabled;\n }\n return theme.colors.placeholder;\n};\nexport const getFlatInputColors = _ref15 => {\n let {\n underlineColor,\n activeUnderlineColor,\n customSelectionColor,\n textColor,\n disabled,\n error,\n theme\n } = _ref15;\n const baseFlatColorProps = {\n theme,\n disabled\n };\n const activeColor = getActiveColor({\n ...baseFlatColorProps,\n error,\n activeUnderlineColor,\n mode: 'flat'\n });\n return {\n inputTextColor: getInputTextColor({\n ...baseFlatColorProps,\n textColor\n }),\n activeColor,\n underlineColorCustom: getFlatUnderlineColor({\n ...baseFlatColorProps,\n underlineColor\n }),\n placeholderColor: getPlaceholderColor(baseFlatColorProps),\n selectionColor: getSelectionColor({\n activeColor,\n customSelectionColor\n }),\n errorColor: theme.colors.error,\n backgroundColor: getFlatBackgroundColor(baseFlatColorProps)\n };\n};\nexport const getOutlinedInputColors = _ref16 => {\n let {\n activeOutlineColor,\n customOutlineColor,\n customSelectionColor,\n textColor,\n disabled,\n error,\n theme\n } = _ref16;\n const baseOutlinedColorProps = {\n theme,\n disabled\n };\n const activeColor = getActiveColor({\n ...baseOutlinedColorProps,\n error,\n activeOutlineColor,\n mode: 'outlined'\n });\n return {\n inputTextColor: getInputTextColor({\n ...baseOutlinedColorProps,\n textColor\n }),\n activeColor,\n outlineColor: getOutlinedOutlineInputColor({\n ...baseOutlinedColorProps,\n customOutlineColor\n }),\n placeholderColor: getPlaceholderColor(baseOutlinedColorProps),\n selectionColor: getSelectionColor({\n activeColor,\n customSelectionColor\n }),\n errorColor: theme.colors.error\n };\n};\nexport const getConstants = isV3 => {\n // Text input affix\n let AFFIX_OFFSET;\n // Text input icon\n let ICON_OFFSET;\n //Text input flat\n let LABEL_PADDING_TOP;\n let LABEL_PADDING_HORIZONTAL;\n let FLAT_INPUT_OFFSET;\n let MIN_HEIGHT;\n // Text input outlined;\n let INPUT_PADDING_HORIZONTAL;\n let ADORNMENT_OFFSET;\n let OUTLINED_INPUT_OFFSET;\n if (isV3) {\n AFFIX_OFFSET = MD3_AFFIX_OFFSET;\n ICON_OFFSET = MD3_ICON_OFFSET;\n LABEL_PADDING_TOP = MD3_LABEL_PADDING_TOP;\n LABEL_PADDING_HORIZONTAL = MD3_LABEL_PADDING_HORIZONTAL;\n FLAT_INPUT_OFFSET = MD3_FLAT_INPUT_OFFSET;\n MIN_HEIGHT = MD3_MIN_HEIGHT;\n INPUT_PADDING_HORIZONTAL = MD3_INPUT_PADDING_HORIZONTAL;\n ADORNMENT_OFFSET = MD3_ADORNMENT_OFFSET;\n OUTLINED_INPUT_OFFSET = MD3_OUTLINED_INPUT_OFFSET;\n } else {\n AFFIX_OFFSET = MD2_AFFIX_OFFSET;\n ICON_OFFSET = MD2_ICON_OFFSET;\n LABEL_PADDING_TOP = MD2_LABEL_PADDING_TOP;\n LABEL_PADDING_HORIZONTAL = MD2_LABEL_PADDING_HORIZONTAL;\n FLAT_INPUT_OFFSET = MD2_FLAT_INPUT_OFFSET;\n MIN_HEIGHT = MD2_MIN_HEIGHT;\n INPUT_PADDING_HORIZONTAL = MD2_INPUT_PADDING_HORIZONTAL;\n ADORNMENT_OFFSET = MD2_ADORNMENT_OFFSET;\n OUTLINED_INPUT_OFFSET = MD2_OUTLINED_INPUT_OFFSET;\n }\n return {\n AFFIX_OFFSET,\n ICON_OFFSET,\n LABEL_PADDING_TOP,\n LABEL_PADDING_HORIZONTAL,\n FLAT_INPUT_OFFSET,\n MIN_HEIGHT,\n INPUT_PADDING_HORIZONTAL,\n ADORNMENT_OFFSET,\n OUTLINED_INPUT_OFFSET,\n MIN_WIDTH\n };\n};\n//# sourceMappingURL=helpers.js.map","export const MAXIMIZED_LABEL_FONT_SIZE = 16;\nexport const MINIMIZED_LABEL_FONT_SIZE = 12;\nexport const LABEL_WIGGLE_X_OFFSET = 4;\nexport const ADORNMENT_SIZE = 24;\nexport const MIN_WIDTH = 100;\n\n//Text input affix offset\nexport const MD2_AFFIX_OFFSET = 12;\nexport const MD3_AFFIX_OFFSET = 16;\n\n// Text input icon\nexport const ICON_SIZE = 24;\nexport const MD2_ICON_OFFSET = 12;\nexport const MD3_ICON_OFFSET = 16;\n\n// Text input common\nexport const MD2_MIN_HEIGHT = 64;\nexport const MD3_MIN_HEIGHT = 56;\nexport const MD3_ADORNMENT_OFFSET = 16;\nexport const MD2_ADORNMENT_OFFSET = 12;\nexport const LABEL_PADDING_TOP_DENSE = 24;\nexport const LABEL_PADDING_TOP = 8;\n\n// Text input flat\nexport const MD2_LABEL_PADDING_TOP = 30;\nexport const MD3_LABEL_PADDING_TOP = 26;\nexport const MD2_LABEL_PADDING_HORIZONTAL = 12;\nexport const MD3_LABEL_PADDING_HORIZONTAL = 16;\nexport const MD2_FLAT_INPUT_OFFSET = 8;\nexport const MD3_FLAT_INPUT_OFFSET = 16;\nexport const MINIMIZED_LABEL_Y_OFFSET = -18;\nexport const MIN_DENSE_HEIGHT_WL = 52;\nexport const MIN_DENSE_HEIGHT = 40;\n\n// Text input outlined\nexport const MD2_INPUT_PADDING_HORIZONTAL = 14;\nexport const MD3_INPUT_PADDING_HORIZONTAL = 16;\n\n// extra space to avoid overlapping input's text and icon\nexport const MD2_OUTLINED_INPUT_OFFSET = 8;\nexport const MD3_OUTLINED_INPUT_OFFSET = 16;\nexport const OUTLINE_MINIMIZED_LABEL_Y_OFFSET = -6;\nexport const MIN_DENSE_HEIGHT_OUTLINED = 48;\n//# sourceMappingURL=constants.js.map","import React from 'react';\nimport { Animated, Pressable, StyleSheet, Text } from 'react-native';\nimport { AdornmentSide } from './enums';\nimport { getTextColor } from './utils';\nimport { useInternalTheme } from '../../../core/theming';\nimport { getConstants } from '../helpers';\nconst AffixContext = /*#__PURE__*/React.createContext({\n textStyle: {\n fontFamily: '',\n color: ''\n },\n topPosition: null,\n side: AdornmentSide.Left\n});\nconst AffixAdornment = _ref => {\n let {\n affix,\n side,\n textStyle,\n topPosition,\n onLayout,\n visible,\n paddingHorizontal,\n maxFontSizeMultiplier,\n testID,\n disabled\n } = _ref;\n return /*#__PURE__*/React.createElement(AffixContext.Provider, {\n value: {\n side,\n textStyle,\n topPosition,\n onLayout,\n visible,\n paddingHorizontal,\n maxFontSizeMultiplier,\n testID,\n disabled\n }\n }, affix);\n};\n\n/**\n * A component to render a leading / trailing text in the TextInput\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { TextInput } from 'react-native-paper';\n *\n * const MyComponent = () => {\n * const [text, setText] = React.useState('');\n *\n * return (\n * }\n * />\n * );\n * };\n *\n * export default MyComponent;\n * ```\n */\n\nconst TextInputAffix = _ref2 => {\n let {\n text,\n textStyle: labelStyle,\n theme: themeOverrides,\n onLayout: onTextLayout,\n onPress,\n accessibilityLabel = text\n } = _ref2;\n const theme = useInternalTheme(themeOverrides);\n const {\n AFFIX_OFFSET\n } = getConstants(theme.isV3);\n const {\n textStyle,\n onLayout,\n topPosition,\n side,\n visible,\n paddingHorizontal,\n maxFontSizeMultiplier,\n testID,\n disabled\n } = React.useContext(AffixContext);\n const offset = typeof paddingHorizontal === 'number' ? paddingHorizontal : AFFIX_OFFSET;\n const style = {\n top: topPosition,\n [side]: offset\n };\n const textColor = getTextColor({\n theme,\n disabled\n });\n const affix = /*#__PURE__*/React.createElement(Animated.View, {\n style: [styles.container, style, {\n opacity: (visible === null || visible === void 0 ? void 0 : visible.interpolate({\n inputRange: [0, 1],\n outputRange: [1, 0]\n })) || 1\n }],\n onLayout: onLayout,\n testID: testID\n }, /*#__PURE__*/React.createElement(Text, {\n maxFontSizeMultiplier: maxFontSizeMultiplier,\n style: [{\n color: textColor\n }, textStyle, labelStyle],\n onLayout: onTextLayout,\n testID: `${testID}-text`\n }, text));\n if (onPress) {\n return /*#__PURE__*/React.createElement(Pressable, {\n onPress: onPress,\n accessibilityRole: \"button\",\n accessibilityLabel: accessibilityLabel,\n style: styles.container\n }, affix);\n }\n return affix;\n};\nTextInputAffix.displayName = 'TextInput.Affix';\nconst styles = StyleSheet.create({\n container: {\n position: 'absolute',\n justifyContent: 'center',\n alignItems: 'center'\n }\n});\nexport default TextInputAffix;\n\n// @component-docs ignore-next-line\nexport { TextInputAffix, AffixAdornment };\n//# sourceMappingURL=TextInputAffix.js.map","import color from 'color';\nexport function getTextColor(_ref) {\n var _theme$colors;\n let {\n theme,\n disabled\n } = _ref;\n if (theme.isV3) {\n if (disabled) {\n return theme.colors.onSurfaceDisabled;\n }\n return theme.colors.onSurfaceVariant;\n }\n return color((_theme$colors = theme.colors) === null || _theme$colors === void 0 ? void 0 : _theme$colors.text).alpha(theme.dark ? 0.7 : 0.54).rgb().string();\n}\nexport function getIconColor(_ref2) {\n let {\n theme,\n isTextInputFocused,\n disabled,\n customColor\n } = _ref2;\n if (typeof customColor === 'function') {\n return customColor(isTextInputFocused);\n }\n if (customColor) {\n return customColor;\n }\n if (!theme.isV3) {\n return theme.colors.text;\n }\n if (disabled) {\n return theme.colors.onSurfaceDisabled;\n }\n return theme.colors.onSurfaceVariant;\n}\n//# sourceMappingURL=utils.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { getIconColor } from './utils';\nimport { useInternalTheme } from '../../../core/theming';\nimport IconButton from '../../IconButton/IconButton';\nimport { ICON_SIZE } from '../constants';\nimport { getConstants } from '../helpers';\nconst StyleContext = /*#__PURE__*/React.createContext({\n style: {},\n isTextInputFocused: false,\n forceFocus: () => {},\n testID: ''\n});\nconst IconAdornment = _ref => {\n let {\n icon,\n topPosition,\n side,\n isTextInputFocused,\n forceFocus,\n testID,\n theme: themeOverrides,\n disabled\n } = _ref;\n const {\n isV3\n } = useInternalTheme(themeOverrides);\n const {\n ICON_OFFSET\n } = getConstants(isV3);\n const style = {\n top: topPosition,\n [side]: ICON_OFFSET\n };\n const contextState = {\n style,\n isTextInputFocused,\n forceFocus,\n testID,\n disabled\n };\n return /*#__PURE__*/React.createElement(StyleContext.Provider, {\n value: contextState\n }, icon);\n};\n\n/**\n * A component to render a leading / trailing icon in the TextInput\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { TextInput } from 'react-native-paper';\n *\n * const MyComponent = () => {\n * const [text, setText] = React.useState('');\n *\n * return (\n * }\n * />\n * );\n * };\n *\n * export default MyComponent;\n * ```\n */\n\nconst TextInputIcon = _ref2 => {\n let {\n icon,\n onPress,\n forceTextInputFocus,\n color: customColor,\n theme: themeOverrides,\n rippleColor,\n ...rest\n } = _ref2;\n const {\n style,\n isTextInputFocused,\n forceFocus,\n testID,\n disabled\n } = React.useContext(StyleContext);\n const onPressWithFocusControl = React.useCallback(e => {\n if (forceTextInputFocus && !isTextInputFocused) {\n forceFocus();\n }\n onPress === null || onPress === void 0 ? void 0 : onPress(e);\n }, [forceTextInputFocus, forceFocus, isTextInputFocused, onPress]);\n const theme = useInternalTheme(themeOverrides);\n const iconColor = getIconColor({\n theme,\n disabled,\n isTextInputFocused,\n customColor\n });\n return /*#__PURE__*/React.createElement(View, {\n style: [styles.container, style]\n }, /*#__PURE__*/React.createElement(IconButton, _extends({\n icon: icon,\n style: styles.iconButton,\n size: ICON_SIZE,\n onPress: onPressWithFocusControl,\n iconColor: iconColor,\n testID: testID,\n theme: themeOverrides,\n rippleColor: rippleColor\n }, rest)));\n};\nTextInputIcon.displayName = 'TextInput.Icon';\nTextInputIcon.defaultProps = {\n forceTextInputFocus: true\n};\nconst styles = StyleSheet.create({\n container: {\n position: 'absolute',\n width: ICON_SIZE,\n height: ICON_SIZE,\n justifyContent: 'center',\n alignItems: 'center'\n },\n iconButton: {\n margin: 0\n }\n});\nexport default TextInputIcon;\n\n// @component-docs ignore-next-line\nexport { IconAdornment };\n//# sourceMappingURL=TextInputIcon.js.map","import * as React from 'react';\nimport { Animated, StyleSheet } from 'react-native';\nimport { useInternalTheme } from '../../../core/theming';\nexport const Underline = _ref => {\n let {\n parentState,\n error,\n colors,\n activeColor,\n underlineColorCustom,\n hasActiveOutline,\n style,\n theme: themeOverrides\n } = _ref;\n const {\n isV3\n } = useInternalTheme(themeOverrides);\n let backgroundColor = parentState.focused ? activeColor : underlineColorCustom;\n if (error) backgroundColor = colors === null || colors === void 0 ? void 0 : colors.error;\n const activeScale = isV3 ? 2 : 1;\n return /*#__PURE__*/React.createElement(Animated.View, {\n testID: \"text-input-underline\",\n style: [styles.underline, isV3 && styles.md3Underline, {\n backgroundColor,\n // Underlines is thinner when input is not focused\n transform: [{\n scaleY: (isV3 ? hasActiveOutline : parentState.focused) ? activeScale : 0.5\n }]\n }, style]\n });\n};\nconst styles = StyleSheet.create({\n underline: {\n position: 'absolute',\n left: 0,\n right: 0,\n bottom: 0,\n height: 2,\n zIndex: 1\n },\n md3Underline: {\n height: 1\n }\n});\n//# sourceMappingURL=Underline.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport React from 'react';\nimport { AdornmentSide, AdornmentType, InputMode } from './enums';\nimport TextInputAffix, { AffixAdornment } from './TextInputAffix';\nimport TextInputIcon, { IconAdornment } from './TextInputIcon';\nimport { getConstants } from '../helpers';\nexport function getAdornmentConfig(_ref) {\n let {\n left,\n right\n } = _ref;\n let adornmentConfig = [];\n if (left || right) {\n [{\n side: AdornmentSide.Left,\n adornment: left\n }, {\n side: AdornmentSide.Right,\n adornment: right\n }].forEach(_ref2 => {\n let {\n side,\n adornment\n } = _ref2;\n if (adornment && /*#__PURE__*/React.isValidElement(adornment)) {\n let type;\n if (adornment.type === TextInputAffix) {\n type = AdornmentType.Affix;\n } else if (adornment.type === TextInputIcon) {\n type = AdornmentType.Icon;\n }\n adornmentConfig.push({\n side,\n type\n });\n }\n });\n }\n return adornmentConfig;\n}\nexport function getAdornmentStyleAdjustmentForNativeInput(_ref3) {\n let {\n adornmentConfig,\n leftAffixWidth,\n rightAffixWidth,\n paddingHorizontal,\n inputOffset = 0,\n mode,\n isV3\n } = _ref3;\n const {\n OUTLINED_INPUT_OFFSET,\n ADORNMENT_OFFSET\n } = getConstants(isV3);\n if (adornmentConfig.length) {\n const adornmentStyleAdjustmentForNativeInput = adornmentConfig.map(_ref4 => {\n let {\n type,\n side\n } = _ref4;\n const isLeftSide = side === AdornmentSide.Left;\n const inputModeAdornemntOffset = mode === InputMode.Outlined ? ADORNMENT_OFFSET + OUTLINED_INPUT_OFFSET : ADORNMENT_OFFSET;\n const paddingKey = `padding${captalize(side)}`;\n const affixWidth = isLeftSide ? leftAffixWidth : rightAffixWidth;\n const padding = typeof paddingHorizontal === 'number' ? paddingHorizontal : inputModeAdornemntOffset;\n const offset = affixWidth + padding;\n const isAffix = type === AdornmentType.Affix;\n const marginKey = `margin${captalize(side)}`;\n return {\n [marginKey]: isAffix ? 0 : offset,\n [paddingKey]: isAffix ? offset : inputOffset\n };\n });\n const allStyleAdjustmentsMerged = adornmentStyleAdjustmentForNativeInput.reduce((mergedStyles, currentStyle) => {\n return {\n ...mergedStyles,\n ...currentStyle\n };\n }, {});\n return allStyleAdjustmentsMerged;\n } else {\n return [{}];\n }\n}\nconst captalize = text => text.charAt(0).toUpperCase() + text.slice(1);\nconst TextInputAdornment = _ref5 => {\n let {\n adornmentConfig,\n left,\n right,\n onAffixChange,\n textStyle,\n visible,\n topPosition,\n isTextInputFocused,\n forceFocus,\n paddingHorizontal,\n maxFontSizeMultiplier,\n theme,\n disabled\n } = _ref5;\n if (adornmentConfig.length) {\n return /*#__PURE__*/React.createElement(React.Fragment, null, adornmentConfig.map(_ref6 => {\n let {\n type,\n side\n } = _ref6;\n let inputAdornmentComponent;\n if (side === AdornmentSide.Left) {\n inputAdornmentComponent = left;\n } else if (side === AdornmentSide.Right) {\n inputAdornmentComponent = right;\n }\n const commonProps = {\n side: side,\n testID: `${side}-${type}-adornment`,\n isTextInputFocused,\n paddingHorizontal,\n disabled\n };\n if (type === AdornmentType.Icon) {\n return /*#__PURE__*/React.createElement(IconAdornment, _extends({}, commonProps, {\n theme: theme,\n key: side,\n icon: inputAdornmentComponent,\n topPosition: topPosition[AdornmentType.Icon],\n forceFocus: forceFocus\n }));\n } else if (type === AdornmentType.Affix) {\n return /*#__PURE__*/React.createElement(AffixAdornment, _extends({}, commonProps, {\n key: side,\n topPosition: topPosition[AdornmentType.Affix][side],\n affix: inputAdornmentComponent,\n textStyle: textStyle,\n onLayout: onAffixChange[side],\n visible: visible,\n maxFontSizeMultiplier: maxFontSizeMultiplier\n }));\n } else {\n return null;\n }\n }));\n } else {\n return null;\n }\n};\nexport default TextInputAdornment;\n//# sourceMappingURL=TextInputAdornment.js.map","import React from 'react';\nimport { Animated, Platform, StyleSheet, useWindowDimensions } from 'react-native';\nimport AnimatedText from '../../Typography/AnimatedText';\nimport { getConstants } from '../helpers';\nconst InputLabel = props => {\n const {\n labeled,\n wiggle,\n error,\n focused,\n opacity,\n labelLayoutWidth,\n labelBackground,\n label,\n labelError,\n onLayoutAnimatedText,\n onLabelTextLayout,\n hasActiveOutline,\n activeColor,\n placeholderStyle,\n baseLabelTranslateX,\n baseLabelTranslateY,\n font,\n fontSize,\n lineHeight,\n fontWeight,\n placeholderOpacity,\n wiggleOffsetX,\n labelScale,\n topPosition,\n paddingLeft,\n paddingRight,\n backgroundColor,\n roundness,\n placeholderColor,\n errorColor,\n labelTranslationXOffset,\n maxFontSizeMultiplier,\n testID,\n isV3,\n inputContainerLayout\n } = props;\n const {\n INPUT_PADDING_HORIZONTAL\n } = getConstants(isV3);\n const {\n width\n } = useWindowDimensions();\n const paddingOffset = paddingLeft && paddingRight ? {\n paddingLeft,\n paddingRight\n } : {};\n const labelTranslationX = {\n transform: [{\n // Offset label scale since RN doesn't support transform origin\n translateX: labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [baseLabelTranslateX, labelTranslationXOffset || 0]\n })\n }]\n };\n const labelStyle = {\n ...font,\n fontSize,\n lineHeight,\n fontWeight,\n opacity: labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [hasActiveOutline ? 1 : 0, 0]\n }),\n transform: [{\n // Wiggle the label when there's an error\n translateX: wiggle ? error.interpolate({\n inputRange: [0, 0.5, 1],\n outputRange: [0, wiggleOffsetX, 0]\n }) : 0\n }, {\n // Move label to top\n translateY: baseLabelTranslateY !== 0 ? labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [baseLabelTranslateY, 0]\n }) : 0\n }, {\n // Make label smaller\n scale: labelScale !== 0 ? labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [labelScale, 1]\n }) : labeled\n }]\n };\n const commonStyles = [placeholderStyle, {\n top: topPosition,\n maxWidth: inputContainerLayout.width + INPUT_PADDING_HORIZONTAL / 2\n }, labelStyle, paddingOffset || {}];\n const textColor = labelError && errorColor ? errorColor : placeholderColor;\n return (\n /*#__PURE__*/\n // Position colored placeholder and gray placeholder on top of each other and crossfade them\n // This gives the effect of animating the color, but allows us to use native driver\n React.createElement(Animated.View, {\n pointerEvents: \"none\",\n style: [StyleSheet.absoluteFill, styles.labelContainer, Platform.OS !== 'web' && {\n width\n }, {\n opacity\n }, labelTranslationX]\n }, labelBackground === null || labelBackground === void 0 ? void 0 : labelBackground({\n labeled,\n labelLayoutWidth,\n labelStyle,\n placeholderStyle,\n baseLabelTranslateX,\n topPosition,\n label,\n backgroundColor,\n roundness,\n maxFontSizeMultiplier: maxFontSizeMultiplier,\n testID\n }), /*#__PURE__*/React.createElement(AnimatedText, {\n variant: \"bodySmall\",\n onLayout: onLayoutAnimatedText,\n onTextLayout: onLabelTextLayout,\n style: [commonStyles, {\n color: activeColor\n }],\n numberOfLines: 1,\n maxFontSizeMultiplier: maxFontSizeMultiplier,\n testID: `${testID}-label-active`\n }, label), /*#__PURE__*/React.createElement(AnimatedText, {\n variant: focused ? 'bodyLarge' : 'bodySmall',\n style: [commonStyles, {\n color: textColor,\n opacity: placeholderOpacity\n }],\n numberOfLines: 1,\n maxFontSizeMultiplier: maxFontSizeMultiplier,\n testID: `${testID}-label-inactive`\n }, label))\n );\n};\nconst styles = StyleSheet.create({\n labelContainer: {\n zIndex: 3\n }\n});\nexport default /*#__PURE__*/React.memo(InputLabel);\n//# sourceMappingURL=InputLabel.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { I18nManager, Platform, StyleSheet, TextInput as NativeTextInput, View, Animated } from 'react-native';\nimport { Underline } from './Addons/Underline';\nimport { AdornmentSide, AdornmentType, InputMode } from './Adornment/enums';\nimport TextInputAdornment from './Adornment/TextInputAdornment';\nimport { getAdornmentConfig, getAdornmentStyleAdjustmentForNativeInput } from './Adornment/TextInputAdornment';\nimport { ADORNMENT_SIZE, LABEL_PADDING_TOP_DENSE, LABEL_WIGGLE_X_OFFSET, MAXIMIZED_LABEL_FONT_SIZE, MINIMIZED_LABEL_FONT_SIZE, MINIMIZED_LABEL_Y_OFFSET, MIN_DENSE_HEIGHT, MIN_DENSE_HEIGHT_WL } from './constants';\nimport { adjustPaddingFlat, calculateFlatAffixTopPosition, calculateFlatInputHorizontalPadding, calculateInputHeight, calculateLabelTopPosition, calculatePadding, getConstants, getFlatInputColors } from './helpers';\nimport InputLabel from './Label/InputLabel';\nconst TextInputFlat = _ref => {\n let {\n disabled = false,\n editable = true,\n label,\n error = false,\n selectionColor: customSelectionColor,\n cursorColor,\n underlineColor,\n underlineStyle,\n activeUnderlineColor,\n textColor,\n dense,\n style,\n theme,\n render = props => /*#__PURE__*/React.createElement(NativeTextInput, props),\n multiline = false,\n parentState,\n innerRef,\n onFocus,\n forceFocus,\n onBlur,\n onChangeText,\n onLayoutAnimatedText,\n onLabelTextLayout,\n onLeftAffixLayoutChange,\n onRightAffixLayoutChange,\n onInputLayout,\n left,\n right,\n placeholderTextColor,\n testID = 'text-input-flat',\n contentStyle,\n ...rest\n } = _ref;\n const isAndroid = Platform.OS === 'android';\n const {\n colors,\n isV3,\n roundness\n } = theme;\n const font = isV3 ? theme.fonts.bodyLarge : theme.fonts.regular;\n const hasActiveOutline = parentState.focused || error;\n const {\n LABEL_PADDING_TOP,\n FLAT_INPUT_OFFSET,\n MIN_HEIGHT,\n MIN_WIDTH\n } = getConstants(isV3);\n const {\n fontSize: fontSizeStyle,\n lineHeight: lineHeightStyle,\n fontWeight,\n height,\n paddingHorizontal,\n textAlign,\n ...viewStyle\n } = StyleSheet.flatten(style) || {};\n const fontSize = fontSizeStyle || MAXIMIZED_LABEL_FONT_SIZE;\n const lineHeight = lineHeightStyle || (Platform.OS === 'web' ? fontSize * 1.2 : undefined);\n const isPaddingHorizontalPassed = paddingHorizontal !== undefined && typeof paddingHorizontal === 'number';\n const adornmentConfig = getAdornmentConfig({\n left,\n right\n });\n let {\n paddingLeft,\n paddingRight\n } = calculateFlatInputHorizontalPadding({\n adornmentConfig,\n isV3\n });\n if (isPaddingHorizontalPassed) {\n paddingLeft = paddingHorizontal;\n paddingRight = paddingHorizontal;\n }\n const {\n leftLayout,\n rightLayout\n } = parentState;\n const rightAffixWidth = right ? rightLayout.width || ADORNMENT_SIZE : ADORNMENT_SIZE;\n const leftAffixWidth = left ? leftLayout.width || ADORNMENT_SIZE : ADORNMENT_SIZE;\n const adornmentStyleAdjustmentForNativeInput = getAdornmentStyleAdjustmentForNativeInput({\n adornmentConfig,\n rightAffixWidth,\n leftAffixWidth,\n paddingHorizontal,\n inputOffset: FLAT_INPUT_OFFSET,\n mode: InputMode.Flat,\n isV3\n });\n const {\n inputTextColor,\n activeColor,\n underlineColorCustom,\n placeholderColor,\n errorColor,\n backgroundColor,\n selectionColor\n } = getFlatInputColors({\n underlineColor,\n activeUnderlineColor,\n customSelectionColor,\n textColor,\n disabled,\n error,\n theme\n });\n const containerStyle = {\n backgroundColor,\n borderTopLeftRadius: theme.roundness,\n borderTopRightRadius: theme.roundness\n };\n const labelScale = MINIMIZED_LABEL_FONT_SIZE / fontSize;\n const fontScale = MAXIMIZED_LABEL_FONT_SIZE / fontSize;\n const labelWidth = parentState.labelLayout.width;\n const labelHeight = parentState.labelLayout.height;\n const labelHalfWidth = labelWidth / 2;\n const labelHalfHeight = labelHeight / 2;\n const baseLabelTranslateX = (I18nManager.getConstants().isRTL ? 1 : -1) * (labelHalfWidth - labelScale * labelWidth / 2) + (1 - labelScale) * (I18nManager.getConstants().isRTL ? -1 : 1) * paddingLeft;\n const minInputHeight = dense ? (label ? MIN_DENSE_HEIGHT_WL : MIN_DENSE_HEIGHT) - LABEL_PADDING_TOP_DENSE : MIN_HEIGHT - LABEL_PADDING_TOP;\n const inputHeight = calculateInputHeight(labelHeight, height, minInputHeight);\n const topPosition = calculateLabelTopPosition(labelHeight, inputHeight, multiline && height ? 0 : !height ? minInputHeight / 2 : 0);\n if (height && typeof height !== 'number') {\n // eslint-disable-next-line\n console.warn('Currently we support only numbers in height prop');\n }\n const paddingSettings = {\n height: height ? +height : null,\n labelHalfHeight,\n offset: FLAT_INPUT_OFFSET,\n multiline: multiline ? multiline : null,\n dense: dense ? dense : null,\n topPosition,\n fontSize,\n lineHeight,\n label,\n scale: fontScale,\n isAndroid,\n styles: StyleSheet.flatten(dense ? styles.inputFlatDense : styles.inputFlat)\n };\n const pad = calculatePadding(paddingSettings);\n const paddingFlat = adjustPaddingFlat({\n ...paddingSettings,\n pad\n });\n const baseLabelTranslateY = -labelHalfHeight - (topPosition + MINIMIZED_LABEL_Y_OFFSET);\n const {\n current: placeholderOpacityAnims\n } = React.useRef([new Animated.Value(0), new Animated.Value(1)]);\n const placeholderOpacity = hasActiveOutline ? parentState.labeled : placeholderOpacityAnims[parentState.labelLayout.measured ? 1 : 0];\n const minHeight = height || (dense ? label ? MIN_DENSE_HEIGHT_WL : MIN_DENSE_HEIGHT : MIN_HEIGHT);\n const flatHeight = inputHeight + (!height ? dense ? LABEL_PADDING_TOP_DENSE : LABEL_PADDING_TOP : 0);\n const iconTopPosition = (flatHeight - ADORNMENT_SIZE) / 2;\n const leftAffixTopPosition = leftLayout.height ? calculateFlatAffixTopPosition({\n height: flatHeight,\n ...paddingFlat,\n affixHeight: leftLayout.height\n }) : null;\n const rightAffixTopPosition = rightLayout.height ? calculateFlatAffixTopPosition({\n height: flatHeight,\n ...paddingFlat,\n affixHeight: rightLayout.height\n }) : null;\n const labelProps = {\n label,\n onLayoutAnimatedText,\n onLabelTextLayout,\n placeholderOpacity,\n labelError: error,\n placeholderStyle: styles.placeholder,\n baseLabelTranslateY,\n baseLabelTranslateX,\n font,\n fontSize,\n lineHeight,\n fontWeight,\n labelScale,\n wiggleOffsetX: LABEL_WIGGLE_X_OFFSET,\n topPosition,\n paddingLeft: isAndroid ? I18nManager.isRTL ? paddingRight : paddingLeft : paddingLeft,\n paddingRight: isAndroid ? I18nManager.isRTL ? paddingLeft : paddingRight : paddingRight,\n hasActiveOutline,\n activeColor,\n placeholderColor,\n errorColor,\n roundness,\n maxFontSizeMultiplier: rest.maxFontSizeMultiplier,\n testID,\n contentStyle,\n inputContainerLayout: parentState.inputContainerLayout,\n labelTextLayout: parentState.labelTextLayout,\n opacity: parentState.value || parentState.focused ? parentState.labelLayout.measured ? 1 : 0 : 1,\n isV3\n };\n const affixTopPosition = {\n [AdornmentSide.Left]: leftAffixTopPosition,\n [AdornmentSide.Right]: rightAffixTopPosition\n };\n const onAffixChange = {\n [AdornmentSide.Left]: onLeftAffixLayoutChange,\n [AdornmentSide.Right]: onRightAffixLayoutChange\n };\n let adornmentProps = {\n paddingHorizontal,\n adornmentConfig,\n forceFocus,\n topPosition: {\n [AdornmentType.Affix]: affixTopPosition,\n [AdornmentType.Icon]: iconTopPosition\n },\n onAffixChange,\n isTextInputFocused: parentState.focused,\n maxFontSizeMultiplier: rest.maxFontSizeMultiplier,\n disabled\n };\n if (adornmentConfig.length) {\n adornmentProps = {\n ...adornmentProps,\n left,\n right,\n textStyle: {\n ...font,\n fontSize,\n lineHeight,\n fontWeight\n },\n visible: parentState.labeled\n };\n }\n return /*#__PURE__*/React.createElement(View, {\n style: [containerStyle, viewStyle]\n }, /*#__PURE__*/React.createElement(Underline, {\n style: underlineStyle,\n hasActiveOutline: hasActiveOutline,\n parentState: parentState,\n underlineColorCustom: underlineColorCustom,\n error: error,\n colors: colors,\n activeColor: activeColor,\n theme: theme\n }), /*#__PURE__*/React.createElement(View, {\n onLayout: onInputLayout,\n style: [styles.labelContainer, {\n minHeight\n }]\n }, !isAndroid && multiline && !!label && !disabled &&\n /*#__PURE__*/\n // Workaround for: https://github.com/callstack/react-native-paper/issues/2799\n // Patch for a multiline TextInput with fixed height, which allow to avoid covering input label with its value.\n React.createElement(View, {\n testID: \"patch-container\",\n pointerEvents: \"none\",\n style: [StyleSheet.absoluteFill, dense ? styles.densePatchContainer : styles.patchContainer, {\n backgroundColor: viewStyle.backgroundColor || containerStyle.backgroundColor,\n left: paddingLeft,\n right: paddingRight\n }]\n }), label ? /*#__PURE__*/React.createElement(InputLabel, _extends({\n labeled: parentState.labeled,\n error: parentState.error,\n focused: parentState.focused,\n wiggle: Boolean(parentState.value && labelProps.labelError),\n labelLayoutMeasured: parentState.labelLayout.measured,\n labelLayoutWidth: parentState.labelLayout.width\n }, labelProps)) : null, render === null || render === void 0 ? void 0 : render({\n ...rest,\n ref: innerRef,\n onChangeText,\n placeholder: label ? parentState.placeholder : rest.placeholder,\n editable: !disabled && editable,\n selectionColor,\n cursorColor: typeof cursorColor === 'undefined' ? activeColor : cursorColor,\n placeholderTextColor: placeholderTextColor ?? placeholderColor,\n onFocus,\n onBlur,\n underlineColorAndroid: 'transparent',\n multiline,\n style: [styles.input, !multiline || multiline && height ? {\n height: flatHeight\n } : {}, paddingFlat, {\n paddingLeft,\n paddingRight,\n ...font,\n fontSize,\n lineHeight,\n fontWeight,\n color: inputTextColor,\n textAlignVertical: multiline ? 'top' : 'center',\n textAlign: textAlign ? textAlign : I18nManager.getConstants().isRTL ? 'right' : 'left',\n minWidth: Math.min(parentState.labelTextLayout.width + 2 * FLAT_INPUT_OFFSET, MIN_WIDTH)\n }, Platform.OS === 'web' && {\n outline: 'none'\n }, adornmentStyleAdjustmentForNativeInput, contentStyle],\n testID\n })), /*#__PURE__*/React.createElement(TextInputAdornment, adornmentProps));\n};\nexport default TextInputFlat;\nconst styles = StyleSheet.create({\n placeholder: {\n position: 'absolute',\n left: 0\n },\n labelContainer: {\n paddingTop: 0,\n paddingBottom: 0\n },\n input: {\n margin: 0\n },\n inputFlat: {\n paddingTop: 24,\n paddingBottom: 4\n },\n inputFlatDense: {\n paddingTop: 22,\n paddingBottom: 2\n },\n patchContainer: {\n height: 24,\n zIndex: 2\n },\n densePatchContainer: {\n height: 22,\n zIndex: 2\n }\n});\n//# sourceMappingURL=TextInputFlat.js.map","import * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nexport const Outline = _ref => {\n let {\n isV3,\n label,\n activeColor,\n backgroundColor,\n hasActiveOutline,\n focused,\n outlineColor,\n roundness,\n style\n } = _ref;\n return /*#__PURE__*/React.createElement(View, {\n testID: \"text-input-outline\",\n pointerEvents: \"none\",\n style: [styles.outline, !label && styles.noLabelOutline,\n // eslint-disable-next-line react-native/no-inline-styles\n {\n backgroundColor,\n borderRadius: roundness,\n borderWidth: (isV3 ? hasActiveOutline : focused) ? 2 : 1,\n borderColor: hasActiveOutline ? activeColor : outlineColor\n }, style]\n });\n};\nconst styles = StyleSheet.create({\n outline: {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 6,\n bottom: 0\n },\n noLabelOutline: {\n top: 0\n }\n});\n//# sourceMappingURL=Outline.js.map","import * as React from 'react';\nimport { Animated, StyleSheet } from 'react-native';\nimport AnimatedText from '../../Typography/AnimatedText';\nconst LabelBackground = _ref => {\n let {\n labeled,\n labelLayoutWidth,\n placeholderStyle,\n baseLabelTranslateX,\n topPosition,\n label,\n backgroundColor,\n roundness,\n labelStyle,\n maxFontSizeMultiplier,\n testID\n } = _ref;\n const opacity = labeled.interpolate({\n inputRange: [0, 0.6],\n outputRange: [1, 0]\n });\n const labelTranslationX = {\n translateX: labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [-baseLabelTranslateX, 0]\n })\n };\n const labelTextScaleY = {\n scaleY: labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [0.2, 1]\n })\n };\n const labelTextTransform = [...labelStyle.transform, labelTextScaleY];\n const isRounded = roundness > 6;\n const roundedEdgeCover = isRounded ? /*#__PURE__*/React.createElement(Animated.View, {\n key: \"labelBackground-view\",\n pointerEvents: \"none\",\n style: [StyleSheet.absoluteFill, styles.view, {\n backgroundColor,\n maxHeight: Math.max(roundness / 3, 2),\n bottom: Math.max(roundness, 2),\n transform: [labelTranslationX],\n opacity\n }]\n }) : null;\n return [roundedEdgeCover, /*#__PURE__*/React.createElement(AnimatedText, {\n key: \"labelBackground-text\",\n testID: `${testID}-label-background`,\n style: [placeholderStyle, labelStyle, styles.outlinedLabel, {\n top: topPosition + 1,\n width: labelLayoutWidth - placeholderStyle.paddingHorizontal,\n backgroundColor,\n opacity,\n transform: labelTextTransform\n }],\n numberOfLines: 1,\n maxFontSizeMultiplier: maxFontSizeMultiplier\n }, typeof label === 'string' ? label : label === null || label === void 0 ? void 0 : label.props.children)];\n};\nexport default LabelBackground;\nconst styles = StyleSheet.create({\n view: {\n position: 'absolute',\n top: 6,\n left: 10,\n width: 12\n },\n // eslint-disable-next-line react-native/no-color-literals\n outlinedLabel: {\n position: 'absolute',\n left: 8,\n paddingHorizontal: 0,\n color: 'transparent'\n }\n});\n//# sourceMappingURL=LabelBackground.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { Animated, View, TextInput as NativeTextInput, StyleSheet, I18nManager, Platform } from 'react-native';\nimport { Outline } from './Addons/Outline';\nimport { AdornmentType, AdornmentSide } from './Adornment/enums';\nimport TextInputAdornment, { getAdornmentConfig, getAdornmentStyleAdjustmentForNativeInput } from './Adornment/TextInputAdornment';\nimport { MAXIMIZED_LABEL_FONT_SIZE, MINIMIZED_LABEL_FONT_SIZE, LABEL_WIGGLE_X_OFFSET, ADORNMENT_SIZE, OUTLINE_MINIMIZED_LABEL_Y_OFFSET, LABEL_PADDING_TOP, MIN_DENSE_HEIGHT_OUTLINED, LABEL_PADDING_TOP_DENSE } from './constants';\nimport { calculateLabelTopPosition, calculateInputHeight, calculatePadding, adjustPaddingOut, calculateOutlinedIconAndAffixTopPosition, getOutlinedInputColors, getConstants } from './helpers';\nimport InputLabel from './Label/InputLabel';\nimport LabelBackground from './Label/LabelBackground';\nconst TextInputOutlined = _ref => {\n let {\n disabled = false,\n editable = true,\n label,\n error = false,\n selectionColor: customSelectionColor,\n cursorColor,\n underlineColor: _underlineColor,\n outlineColor: customOutlineColor,\n activeOutlineColor,\n outlineStyle,\n textColor,\n dense,\n style,\n theme,\n render = props => /*#__PURE__*/React.createElement(NativeTextInput, props),\n multiline = false,\n parentState,\n innerRef,\n onFocus,\n forceFocus,\n onBlur,\n onChangeText,\n onLayoutAnimatedText,\n onLabelTextLayout,\n onLeftAffixLayoutChange,\n onRightAffixLayoutChange,\n onInputLayout,\n onLayout,\n left,\n right,\n placeholderTextColor,\n testID = 'text-input-outlined',\n contentStyle,\n ...rest\n } = _ref;\n const adornmentConfig = getAdornmentConfig({\n left,\n right\n });\n const {\n colors,\n isV3,\n roundness\n } = theme;\n const font = isV3 ? theme.fonts.bodyLarge : theme.fonts.regular;\n const hasActiveOutline = parentState.focused || error;\n const {\n INPUT_PADDING_HORIZONTAL,\n MIN_HEIGHT,\n ADORNMENT_OFFSET,\n MIN_WIDTH\n } = getConstants(isV3);\n const {\n fontSize: fontSizeStyle,\n fontWeight,\n lineHeight: lineHeightStyle,\n height,\n backgroundColor = colors === null || colors === void 0 ? void 0 : colors.background,\n textAlign,\n ...viewStyle\n } = StyleSheet.flatten(style) || {};\n const fontSize = fontSizeStyle || MAXIMIZED_LABEL_FONT_SIZE;\n const lineHeight = lineHeightStyle || (Platform.OS === 'web' ? fontSize * 1.2 : undefined);\n const {\n inputTextColor,\n activeColor,\n outlineColor,\n placeholderColor,\n errorColor,\n selectionColor\n } = getOutlinedInputColors({\n activeOutlineColor,\n customOutlineColor,\n customSelectionColor,\n textColor,\n disabled,\n error,\n theme\n });\n const densePaddingTop = label ? LABEL_PADDING_TOP_DENSE : 0;\n const paddingTop = label ? LABEL_PADDING_TOP : 0;\n const yOffset = label ? OUTLINE_MINIMIZED_LABEL_Y_OFFSET : 0;\n const labelScale = MINIMIZED_LABEL_FONT_SIZE / fontSize;\n const fontScale = MAXIMIZED_LABEL_FONT_SIZE / fontSize;\n const labelWidth = parentState.labelLayout.width;\n const labelHeight = parentState.labelLayout.height;\n const labelHalfWidth = labelWidth / 2;\n const labelHalfHeight = labelHeight / 2;\n const baseLabelTranslateX = (I18nManager.getConstants().isRTL ? 1 : -1) * (labelHalfWidth - labelScale * labelWidth / 2 - (fontSize - MINIMIZED_LABEL_FONT_SIZE) * labelScale);\n let labelTranslationXOffset = 0;\n const isAdornmentLeftIcon = adornmentConfig.some(_ref2 => {\n let {\n side,\n type\n } = _ref2;\n return side === AdornmentSide.Left && type === AdornmentType.Icon;\n });\n const isAdornmentRightIcon = adornmentConfig.some(_ref3 => {\n let {\n side,\n type\n } = _ref3;\n return side === AdornmentSide.Right && type === AdornmentType.Icon;\n });\n if (isAdornmentLeftIcon) {\n labelTranslationXOffset = (I18nManager.getConstants().isRTL ? -1 : 1) * (ADORNMENT_SIZE + ADORNMENT_OFFSET - (isV3 ? 0 : 8));\n }\n const minInputHeight = (dense ? MIN_DENSE_HEIGHT_OUTLINED : MIN_HEIGHT) - paddingTop;\n const inputHeight = calculateInputHeight(labelHeight, height, minInputHeight);\n const topPosition = calculateLabelTopPosition(labelHeight, inputHeight, paddingTop);\n if (height && typeof height !== 'number') {\n // eslint-disable-next-line\n console.warn('Currently we support only numbers in height prop');\n }\n const paddingSettings = {\n height: height ? +height : null,\n labelHalfHeight,\n offset: paddingTop,\n multiline: multiline ? multiline : null,\n dense: dense ? dense : null,\n topPosition,\n fontSize,\n lineHeight,\n label,\n scale: fontScale,\n isAndroid: Platform.OS === 'android',\n styles: StyleSheet.flatten(dense ? styles.inputOutlinedDense : styles.inputOutlined)\n };\n const pad = calculatePadding(paddingSettings);\n const paddingOut = adjustPaddingOut({\n ...paddingSettings,\n pad\n });\n const baseLabelTranslateY = -labelHalfHeight - (topPosition + yOffset);\n const {\n current: placeholderOpacityAnims\n } = React.useRef([new Animated.Value(0), new Animated.Value(1)]);\n const placeholderOpacity = hasActiveOutline ? parentState.labeled : placeholderOpacityAnims[parentState.labelLayout.measured ? 1 : 0];\n const placeholderStyle = {\n position: 'absolute',\n left: 0,\n paddingHorizontal: INPUT_PADDING_HORIZONTAL\n };\n const labelBackgroundColor = backgroundColor === 'transparent' ? theme.colors.background : backgroundColor;\n const labelProps = {\n label,\n onLayoutAnimatedText,\n onLabelTextLayout,\n placeholderOpacity,\n labelError: error,\n placeholderStyle,\n baseLabelTranslateY,\n baseLabelTranslateX,\n font,\n fontSize,\n lineHeight,\n fontWeight,\n labelScale,\n wiggleOffsetX: LABEL_WIGGLE_X_OFFSET,\n topPosition,\n hasActiveOutline,\n activeColor,\n placeholderColor,\n backgroundColor: labelBackgroundColor,\n errorColor,\n labelTranslationXOffset,\n roundness,\n maxFontSizeMultiplier: rest.maxFontSizeMultiplier,\n testID,\n contentStyle,\n inputContainerLayout: {\n width: parentState.inputContainerLayout.width + (isAdornmentRightIcon || isAdornmentLeftIcon ? INPUT_PADDING_HORIZONTAL : 0)\n },\n opacity: parentState.value || parentState.focused ? parentState.labelLayout.measured ? 1 : 0 : 1,\n isV3\n };\n const onLayoutChange = React.useCallback(e => {\n onInputLayout(e);\n onLayout === null || onLayout === void 0 ? void 0 : onLayout(e);\n }, [onLayout, onInputLayout]);\n const minHeight = height || (dense ? MIN_DENSE_HEIGHT_OUTLINED : MIN_HEIGHT);\n const outlinedHeight = inputHeight + (!height ? dense ? densePaddingTop / 2 : paddingTop : 0);\n const {\n leftLayout,\n rightLayout\n } = parentState;\n const leftAffixTopPosition = calculateOutlinedIconAndAffixTopPosition({\n height: outlinedHeight,\n affixHeight: leftLayout.height || 0,\n labelYOffset: -yOffset\n });\n const rightAffixTopPosition = calculateOutlinedIconAndAffixTopPosition({\n height: outlinedHeight,\n affixHeight: rightLayout.height || 0,\n labelYOffset: -yOffset\n });\n const iconTopPosition = calculateOutlinedIconAndAffixTopPosition({\n height: outlinedHeight,\n affixHeight: ADORNMENT_SIZE,\n labelYOffset: -yOffset\n });\n const rightAffixWidth = right ? rightLayout.width || ADORNMENT_SIZE : ADORNMENT_SIZE;\n const leftAffixWidth = left ? leftLayout.width || ADORNMENT_SIZE : ADORNMENT_SIZE;\n const adornmentStyleAdjustmentForNativeInput = getAdornmentStyleAdjustmentForNativeInput({\n adornmentConfig,\n rightAffixWidth,\n leftAffixWidth,\n mode: 'outlined',\n isV3\n });\n const affixTopPosition = {\n [AdornmentSide.Left]: leftAffixTopPosition,\n [AdornmentSide.Right]: rightAffixTopPosition\n };\n const onAffixChange = {\n [AdornmentSide.Left]: onLeftAffixLayoutChange,\n [AdornmentSide.Right]: onRightAffixLayoutChange\n };\n let adornmentProps = {\n adornmentConfig,\n forceFocus,\n topPosition: {\n [AdornmentType.Icon]: iconTopPosition,\n [AdornmentType.Affix]: affixTopPosition\n },\n onAffixChange,\n isTextInputFocused: parentState.focused,\n maxFontSizeMultiplier: rest.maxFontSizeMultiplier,\n disabled\n };\n if (adornmentConfig.length) {\n adornmentProps = {\n ...adornmentProps,\n left,\n right,\n textStyle: {\n ...font,\n fontSize,\n lineHeight,\n fontWeight\n },\n visible: parentState.labeled\n };\n }\n return /*#__PURE__*/React.createElement(View, {\n style: viewStyle\n }, /*#__PURE__*/React.createElement(Outline, {\n isV3: isV3,\n style: outlineStyle,\n label: label,\n roundness: roundness,\n hasActiveOutline: hasActiveOutline,\n focused: parentState.focused,\n activeColor: activeColor,\n outlineColor: outlineColor,\n backgroundColor: backgroundColor\n }), /*#__PURE__*/React.createElement(View, {\n style: [styles.labelContainer, {\n paddingTop,\n minHeight\n }]\n }, label ? /*#__PURE__*/React.createElement(InputLabel, _extends({\n labeled: parentState.labeled,\n error: parentState.error,\n focused: parentState.focused,\n wiggle: Boolean(parentState.value && labelProps.labelError),\n labelLayoutMeasured: parentState.labelLayout.measured,\n labelLayoutWidth: parentState.labelLayout.width\n }, labelProps, {\n labelBackground: LabelBackground,\n maxFontSizeMultiplier: rest.maxFontSizeMultiplier\n })) : null, render === null || render === void 0 ? void 0 : render({\n ...rest,\n ref: innerRef,\n onLayout: onLayoutChange,\n onChangeText,\n placeholder: label ? parentState.placeholder : rest.placeholder,\n editable: !disabled && editable,\n selectionColor,\n cursorColor: typeof cursorColor === 'undefined' ? activeColor : cursorColor,\n placeholderTextColor: placeholderTextColor || placeholderColor,\n onFocus,\n onBlur,\n underlineColorAndroid: 'transparent',\n multiline,\n style: [styles.input, !multiline || multiline && height ? {\n height: inputHeight\n } : {}, paddingOut, {\n ...font,\n fontSize,\n lineHeight,\n fontWeight,\n color: inputTextColor,\n textAlignVertical: multiline ? 'top' : 'center',\n textAlign: textAlign ? textAlign : I18nManager.getConstants().isRTL ? 'right' : 'left',\n paddingHorizontal: INPUT_PADDING_HORIZONTAL,\n minWidth: Math.min(parentState.labelTextLayout.width + 2 * INPUT_PADDING_HORIZONTAL, MIN_WIDTH)\n }, Platform.OS === 'web' && {\n outline: 'none'\n }, adornmentStyleAdjustmentForNativeInput, contentStyle],\n testID\n })), /*#__PURE__*/React.createElement(TextInputAdornment, adornmentProps));\n};\nexport default TextInputOutlined;\nconst styles = StyleSheet.create({\n labelContainer: {\n paddingBottom: 0\n },\n input: {\n margin: 0\n },\n inputOutlined: {\n paddingTop: 8,\n paddingBottom: 8\n },\n inputOutlinedDense: {\n paddingTop: 4,\n paddingBottom: 4\n }\n});\n//# sourceMappingURL=TextInputOutlined.js.map","export const roundLayoutSize = size => Math.round(size * 1000) / 1000;\n//# sourceMappingURL=roundLayoutSize.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { Animated, TextInput as NativeTextInput } from 'react-native';\nimport TextInputAffix from './Adornment/TextInputAffix';\nimport TextInputIcon from './Adornment/TextInputIcon';\nimport TextInputFlat from './TextInputFlat';\nimport TextInputOutlined from './TextInputOutlined';\nimport { useInternalTheme } from '../../core/theming';\nimport { forwardRef } from '../../utils/forwardRef';\nimport { roundLayoutSize } from '../../utils/roundLayoutSize';\nconst BLUR_ANIMATION_DURATION = 180;\nconst FOCUS_ANIMATION_DURATION = 150;\nconst DefaultRenderer = props => /*#__PURE__*/React.createElement(NativeTextInput, props);\n\n/**\n * A component to allow users to input text.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { TextInput } from 'react-native-paper';\n *\n * const MyComponent = () => {\n * const [text, setText] = React.useState(\"\");\n *\n * return (\n * setText(text)}\n * />\n * );\n * };\n *\n * export default MyComponent;\n * ```\n *\n * @extends TextInput props https://reactnative.dev/docs/textinput#props\n */\nconst TextInput = forwardRef((_ref, ref) => {\n let {\n mode = 'flat',\n dense = false,\n disabled = false,\n error: errorProp = false,\n multiline = false,\n editable = true,\n contentStyle,\n render = DefaultRenderer,\n theme: themeOverrides,\n ...rest\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const isControlled = rest.value !== undefined;\n const validInputValue = isControlled ? rest.value : rest.defaultValue;\n const {\n current: labeled\n } = React.useRef(new Animated.Value(validInputValue ? 0 : 1));\n const {\n current: error\n } = React.useRef(new Animated.Value(errorProp ? 1 : 0));\n const [focused, setFocused] = React.useState(false);\n const [placeholder, setPlaceholder] = React.useState(' ');\n const [uncontrolledValue, setUncontrolledValue] = React.useState(validInputValue);\n // Use value from props instead of local state when input is controlled\n const value = isControlled ? rest.value : uncontrolledValue;\n const [labelTextLayout, setLabelTextLayout] = React.useState({\n width: 33\n });\n const [inputContainerLayout, setInputContainerLayout] = React.useState({\n width: 65\n });\n const [labelLayout, setLabelLayout] = React.useState({\n measured: false,\n width: 0,\n height: 0\n });\n const [leftLayout, setLeftLayout] = React.useState({\n width: null,\n height: null\n });\n const [rightLayout, setRightLayout] = React.useState({\n width: null,\n height: null\n });\n const timer = React.useRef();\n const root = React.useRef();\n const {\n scale\n } = theme.animation;\n React.useImperativeHandle(ref, () => ({\n focus: () => {\n var _root$current;\n return (_root$current = root.current) === null || _root$current === void 0 ? void 0 : _root$current.focus();\n },\n clear: () => {\n var _root$current2;\n return (_root$current2 = root.current) === null || _root$current2 === void 0 ? void 0 : _root$current2.clear();\n },\n setNativeProps: args => {\n var _root$current3;\n return (_root$current3 = root.current) === null || _root$current3 === void 0 ? void 0 : _root$current3.setNativeProps(args);\n },\n isFocused: () => {\n var _root$current4;\n return ((_root$current4 = root.current) === null || _root$current4 === void 0 ? void 0 : _root$current4.isFocused()) || false;\n },\n blur: () => {\n var _root$current5;\n return (_root$current5 = root.current) === null || _root$current5 === void 0 ? void 0 : _root$current5.blur();\n },\n forceFocus: () => {\n var _root$current6;\n return (_root$current6 = root.current) === null || _root$current6 === void 0 ? void 0 : _root$current6.focus();\n }\n }));\n React.useEffect(() => {\n // When the input has an error, we wiggle the label and apply error styles\n if (errorProp) {\n // show error\n Animated.timing(error, {\n toValue: 1,\n duration: FOCUS_ANIMATION_DURATION * scale,\n // To prevent this - https://github.com/callstack/react-native-paper/issues/941\n useNativeDriver: true\n }).start();\n } else {\n // hide error\n {\n Animated.timing(error, {\n toValue: 0,\n duration: BLUR_ANIMATION_DURATION * scale,\n // To prevent this - https://github.com/callstack/react-native-paper/issues/941\n useNativeDriver: true\n }).start();\n }\n }\n }, [errorProp, scale, error]);\n React.useEffect(() => {\n // Show placeholder text only if the input is focused, or there's no label\n // We don't show placeholder if there's a label because the label acts as placeholder\n // When focused, the label moves up, so we can show a placeholder\n if (focused || !rest.label) {\n // If the user wants to use the contextMenu, when changing the placeholder, the contextMenu is closed\n // This is a workaround to mitigate this behavior in scenarios where the placeholder is not specified.\n if (rest.placeholder) {\n // Set the placeholder in a delay to offset the label animation\n // If we show it immediately, they'll overlap and look ugly\n timer.current = setTimeout(() => setPlaceholder(rest.placeholder), 50);\n }\n } else {\n // hidePlaceholder\n\n // Issue: https://github.com/callstack/react-native-paper/issues/3138\n // Description: Changing the placeholder text value dynamically,\n // within multiline input on iOS, doesn't work properly –\n // the placeholder is not displayed initially.\n // Root cause: Placeholder initial value, which has length 0.\n // More context: The issue was also reproduced in react-native, using its own TextInput.\n // Workaround: Set an empty space character in the default value.\n setPlaceholder(' ');\n }\n return () => {\n if (timer.current) {\n clearTimeout(timer.current);\n }\n };\n }, [focused, rest.label, rest.placeholder]);\n React.useEffect(() => {\n labeled.stopAnimation();\n // The label should be minimized if the text input is focused, or has text\n // In minimized mode, the label moves up and becomes small\n // workaround for animated regression for react native > 0.61\n // https://github.com/callstack/react-native-paper/pull/1440\n if (value || focused) {\n // minimize label\n Animated.timing(labeled, {\n toValue: 0,\n duration: BLUR_ANIMATION_DURATION * scale,\n // To prevent this - https://github.com/callstack/react-native-paper/issues/941\n useNativeDriver: true\n }).start();\n } else {\n // restore label\n Animated.timing(labeled, {\n toValue: 1,\n duration: FOCUS_ANIMATION_DURATION * scale,\n // To prevent this - https://github.com/callstack/react-native-paper/issues/941\n useNativeDriver: true\n }).start();\n }\n }, [focused, value, labeled, scale]);\n const onLeftAffixLayoutChange = React.useCallback(event => {\n const height = roundLayoutSize(event.nativeEvent.layout.height);\n const width = roundLayoutSize(event.nativeEvent.layout.width);\n if (width !== leftLayout.width || height !== leftLayout.height) {\n setLeftLayout({\n width,\n height\n });\n }\n }, [leftLayout.height, leftLayout.width]);\n const onRightAffixLayoutChange = React.useCallback(event => {\n const width = roundLayoutSize(event.nativeEvent.layout.width);\n const height = roundLayoutSize(event.nativeEvent.layout.height);\n if (width !== rightLayout.width || height !== rightLayout.height) {\n setRightLayout({\n width,\n height\n });\n }\n }, [rightLayout.height, rightLayout.width]);\n const handleFocus = args => {\n var _rest$onFocus;\n if (disabled || !editable) {\n return;\n }\n setFocused(true);\n (_rest$onFocus = rest.onFocus) === null || _rest$onFocus === void 0 ? void 0 : _rest$onFocus.call(rest, args);\n };\n const handleBlur = args => {\n var _rest$onBlur;\n if (!editable) {\n return;\n }\n setFocused(false);\n (_rest$onBlur = rest.onBlur) === null || _rest$onBlur === void 0 ? void 0 : _rest$onBlur.call(rest, args);\n };\n const handleChangeText = value => {\n var _rest$onChangeText;\n if (!editable || disabled) {\n return;\n }\n if (!isControlled) {\n // Keep track of value in local state when input is not controlled\n setUncontrolledValue(value);\n }\n (_rest$onChangeText = rest.onChangeText) === null || _rest$onChangeText === void 0 ? void 0 : _rest$onChangeText.call(rest, value);\n };\n const handleLayoutAnimatedText = React.useCallback(e => {\n const width = roundLayoutSize(e.nativeEvent.layout.width);\n const height = roundLayoutSize(e.nativeEvent.layout.height);\n if (width !== labelLayout.width || height !== labelLayout.height) {\n setLabelLayout({\n width,\n height,\n measured: true\n });\n }\n }, [labelLayout.height, labelLayout.width]);\n const handleLabelTextLayout = React.useCallback(_ref2 => {\n let {\n nativeEvent\n } = _ref2;\n setLabelTextLayout({\n width: nativeEvent.lines.reduce((acc, line) => acc + Math.ceil(line.width), 0)\n });\n }, []);\n const handleInputContainerLayout = React.useCallback(_ref3 => {\n let {\n nativeEvent: {\n layout\n }\n } = _ref3;\n setInputContainerLayout({\n width: layout.width\n });\n }, []);\n const forceFocus = React.useCallback(() => {\n var _root$current7;\n return (_root$current7 = root.current) === null || _root$current7 === void 0 ? void 0 : _root$current7.focus();\n }, []);\n const {\n maxFontSizeMultiplier = 1.5\n } = rest;\n if (mode === 'outlined') {\n return /*#__PURE__*/React.createElement(TextInputOutlined, _extends({\n dense: dense,\n disabled: disabled,\n error: errorProp,\n multiline: multiline,\n editable: editable,\n render: render\n }, rest, {\n theme: theme,\n value: value,\n parentState: {\n labeled,\n error,\n focused,\n placeholder,\n value,\n labelTextLayout,\n labelLayout,\n leftLayout,\n rightLayout,\n inputContainerLayout\n },\n innerRef: ref => {\n root.current = ref;\n },\n onFocus: handleFocus,\n forceFocus: forceFocus,\n onBlur: handleBlur,\n onChangeText: handleChangeText,\n onLayoutAnimatedText: handleLayoutAnimatedText,\n onInputLayout: handleInputContainerLayout,\n onLabelTextLayout: handleLabelTextLayout,\n onLeftAffixLayoutChange: onLeftAffixLayoutChange,\n onRightAffixLayoutChange: onRightAffixLayoutChange,\n maxFontSizeMultiplier: maxFontSizeMultiplier,\n contentStyle: contentStyle\n }));\n }\n return /*#__PURE__*/React.createElement(TextInputFlat, _extends({\n dense: dense,\n disabled: disabled,\n error: errorProp,\n multiline: multiline,\n editable: editable,\n render: render\n }, rest, {\n theme: theme,\n value: value,\n parentState: {\n labeled,\n error,\n focused,\n placeholder,\n value,\n labelTextLayout,\n labelLayout,\n leftLayout,\n rightLayout,\n inputContainerLayout\n },\n innerRef: ref => {\n root.current = ref;\n },\n onFocus: handleFocus,\n forceFocus: forceFocus,\n onBlur: handleBlur,\n onInputLayout: handleInputContainerLayout,\n onChangeText: handleChangeText,\n onLayoutAnimatedText: handleLayoutAnimatedText,\n onLabelTextLayout: handleLabelTextLayout,\n onLeftAffixLayoutChange: onLeftAffixLayoutChange,\n onRightAffixLayoutChange: onRightAffixLayoutChange,\n maxFontSizeMultiplier: maxFontSizeMultiplier,\n contentStyle: contentStyle\n }));\n});\n// @component ./Adornment/TextInputIcon.tsx\nTextInput.Icon = TextInputIcon;\n\n// @component ./Adornment/TextInputAffix.tsx\n// @ts-ignore Types of property 'theme' are incompatible.\nTextInput.Affix = TextInputAffix;\nexport default TextInput;\n//# sourceMappingURL=TextInput.js.map","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { 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\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(n); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\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 filterUniqueArray(arr) {\n return arr.filter(function (val, index) {\n return arr.lastIndexOf(val) === index;\n });\n}\n\nexport default function assignStyle(base) {\n for (var i = 0, len = arguments.length <= 1 ? 0 : arguments.length - 1; i < len; ++i) {\n var style = i + 1 < 1 || arguments.length <= i + 1 ? undefined : arguments[i + 1];\n\n for (var property in style) {\n var value = style[property];\n var baseValue = base[property];\n\n if (baseValue && value) {\n if (Array.isArray(baseValue)) {\n base[property] = filterUniqueArray(baseValue.concat(value));\n continue;\n }\n\n if (Array.isArray(value)) {\n base[property] = filterUniqueArray([baseValue].concat(_toConsumableArray(value)));\n continue;\n }\n\n if (_typeof(value) === 'object') {\n base[property] = assignStyle({}, baseValue, value);\n continue;\n }\n }\n\n base[property] = value;\n }\n }\n\n return base;\n}","var DASH = /-([a-z])/g;\nvar MS = /^Ms/g;\nvar cache = {};\n\nfunction toUpper(match) {\n return match[1].toUpperCase();\n}\n\nexport default function camelCaseProperty(property) {\n if (cache.hasOwnProperty(property)) {\n return cache[property];\n }\n\n var camelProp = property.replace(DASH, toUpper).replace(MS, 'ms');\n cache[property] = camelProp;\n return camelProp;\n}","import hyphenateStyleName from 'hyphenate-style-name';\nexport default function hyphenateProperty(property) {\n return hyphenateStyleName(property);\n}","import hyphenateProperty from './hyphenateProperty';\nexport default function cssifyDeclaration(property, value) {\n return hyphenateProperty(property) + ':' + value;\n}","import cssifyDeclaration from './cssifyDeclaration';\nexport default function cssifyObject(style) {\n var css = '';\n\n for (var property in style) {\n var value = style[property];\n\n if (typeof value !== 'string' && typeof value !== 'number') {\n continue;\n } // prevents the semicolon after\n // the last rule declaration\n\n\n if (css) {\n css += ';';\n }\n\n css += cssifyDeclaration(property, value);\n }\n\n return css;\n}","var RE = /^(Webkit|Moz|O|ms)/;\nexport default function isPrefixedProperty(property) {\n return RE.test(property);\n}","var RE = /-webkit-|-moz-|-ms-/;\nexport default function isPrefixedValue(value) {\n return typeof value === 'string' && RE.test(value);\n}","import hyphenateProperty from './hyphenateProperty';\nvar unitlessProperties = {\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n fontWeight: true,\n lineHeight: true,\n opacity: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n // SVG-related properties\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};\nvar prefixedUnitlessProperties = ['animationIterationCount', 'boxFlex', 'boxFlexGroup', 'boxOrdinalGroup', 'columnCount', 'flex', 'flexGrow', 'flexPositive', 'flexShrink', 'flexNegative', 'flexOrder', 'gridColumn', 'gridColumnEnd', 'gridColumnStart', 'gridRow', 'gridRowEnd', 'gridRowStart', 'lineClamp', 'order'];\nvar prefixes = ['Webkit', 'ms', 'Moz', 'O'];\n\nfunction getPrefixedProperty(prefix, property) {\n return prefix + property.charAt(0).toUpperCase() + property.slice(1);\n} // add all prefixed properties to the unitless properties\n\n\nfor (var i = 0, len = prefixedUnitlessProperties.length; i < len; ++i) {\n var property = prefixedUnitlessProperties[i];\n unitlessProperties[property] = true;\n\n for (var j = 0, jLen = prefixes.length; j < jLen; ++j) {\n unitlessProperties[getPrefixedProperty(prefixes[j], property)] = true;\n }\n} // add all hypenated properties as well\n\n\nfor (var _property in unitlessProperties) {\n unitlessProperties[hyphenateProperty(_property)] = true;\n}\n\nexport default function isUnitlessProperty(property) {\n return unitlessProperties.hasOwnProperty(property);\n}","var RE = /^(ms|Webkit|Moz|O)/;\nexport default function unprefixProperty(property) {\n var propertyWithoutPrefix = property.replace(RE, '');\n return propertyWithoutPrefix.charAt(0).toLowerCase() + propertyWithoutPrefix.slice(1);\n}","import camelCaseProperty from './camelCaseProperty';\nimport unprefixProperty from './unprefixProperty';\nexport default function normalizeProperty(property) {\n return unprefixProperty(camelCaseProperty(property));\n}","import hyphenateProperty from './hyphenateProperty';\nexport default function resolveArrayValue(property, value) {\n return value.join(';' + hyphenateProperty(property) + ':');\n}","var RE = /(-ms-|-webkit-|-moz-|-o-)/g;\nexport default function unprefixValue(value) {\n if (typeof value === 'string') {\n return value.replace(RE, '');\n }\n\n return value;\n}","import React from 'react';\nimport { StyleSheet } from 'react-native';\nimport overlay from '../../styles/overlay';\nimport { black, white } from '../../styles/themes/v2/colors';\nconst borderStyleProperties = ['borderRadius', 'borderTopLeftRadius', 'borderTopRightRadius', 'borderBottomRightRadius', 'borderBottomLeftRadius'];\nexport const getAppbarBackgroundColor = (theme, elevation, customBackground, elevated) => {\n const {\n isV3,\n dark: isDarkTheme,\n mode,\n colors\n } = theme;\n const isAdaptiveMode = mode === 'adaptive';\n if (customBackground) {\n return customBackground;\n }\n if (!isV3) {\n if (isDarkTheme && isAdaptiveMode) {\n return overlay(elevation, colors === null || colors === void 0 ? void 0 : colors.surface);\n }\n return colors.primary;\n }\n if (elevated) {\n return theme.colors.elevation.level2;\n }\n return colors.surface;\n};\nexport const getAppbarColor = _ref => {\n let {\n color,\n isDark,\n isV3\n } = _ref;\n if (typeof color !== 'undefined') {\n return color;\n }\n if (isDark) {\n return white;\n }\n if (isV3) {\n return undefined;\n }\n return black;\n};\nexport const getAppbarBorders = style => {\n const borders = {};\n for (const property of borderStyleProperties) {\n const value = style[property];\n if (value) {\n borders[property] = value;\n }\n }\n return borders;\n};\nexport const DEFAULT_APPBAR_HEIGHT = 56;\nconst MD3_DEFAULT_APPBAR_HEIGHT = 64;\nexport const modeAppbarHeight = {\n small: MD3_DEFAULT_APPBAR_HEIGHT,\n medium: 112,\n large: 152,\n 'center-aligned': MD3_DEFAULT_APPBAR_HEIGHT\n};\nexport const modeTextVariant = {\n small: 'titleLarge',\n medium: 'headlineSmall',\n large: 'headlineMedium',\n 'center-aligned': 'titleLarge'\n};\nexport const renderAppbarContent = _ref2 => {\n let {\n children,\n isDark,\n shouldCenterContent = false,\n isV3,\n renderOnly,\n renderExcept,\n mode = 'small',\n theme\n } = _ref2;\n return React.Children.toArray(children).filter(child => child != null && typeof child !== 'boolean').filter(child =>\n // @ts-expect-error: TypeScript complains about the type of type but it doesn't matter\n renderExcept ? !renderExcept.includes(child.type.displayName) : child).filter(child =>\n // @ts-expect-error: TypeScript complains about the type of type but it doesn't matter\n renderOnly ? renderOnly.includes(child.type.displayName) : child).map((child, i) => {\n if (! /*#__PURE__*/React.isValidElement(child) || !['Appbar.Content', 'Appbar.Action', 'Appbar.BackAction', 'Tooltip'].includes(\n // @ts-expect-error: TypeScript complains about the type of type but it doesn't matter\n child.type.displayName)) {\n return child;\n }\n const props = {\n theme,\n color: getAppbarColor({\n color: child.props.color,\n isDark,\n isV3\n })\n };\n\n // @ts-expect-error: TypeScript complains about the type of type but it doesn't matter\n if (child.type.displayName === 'Appbar.Content') {\n props.mode = mode;\n props.style = [isV3 ? i === 0 && !shouldCenterContent && styles.v3Spacing : i !== 0 && styles.v2Spacing, shouldCenterContent && styles.centerAlignedContent, child.props.style];\n props.color;\n }\n return /*#__PURE__*/React.cloneElement(child, props);\n });\n};\nconst styles = StyleSheet.create({\n centerAlignedContent: {\n alignItems: 'center'\n },\n v2Spacing: {\n marginLeft: 8\n },\n v3Spacing: {\n marginLeft: 12\n }\n});\n//# sourceMappingURL=utils.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { Platform, StyleSheet, Pressable, View } from 'react-native';\nimport color from 'color';\nimport { modeTextVariant } from './utils';\nimport { useInternalTheme } from '../../core/theming';\nimport { white } from '../../styles/themes/v2/colors';\nimport Text from '../Typography/Text';\n/**\n * A component used to display a title and optional subtitle in an appbar.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Appbar } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * \n * \n * \n * );\n *\n * export default MyComponent;\n * ```\n */\nconst AppbarContent = _ref => {\n let {\n color: titleColor,\n subtitle,\n subtitleStyle,\n onPress,\n disabled,\n style,\n titleRef,\n titleStyle,\n title,\n titleMaxFontSizeMultiplier,\n mode = 'small',\n theme: themeOverrides,\n testID = 'appbar-content',\n ...rest\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const {\n isV3,\n colors\n } = theme;\n const titleTextColor = titleColor ? titleColor : isV3 ? colors.onSurface : white;\n const subtitleColor = color(titleTextColor).alpha(0.7).rgb().string();\n const modeContainerStyles = {\n small: styles.v3DefaultContainer,\n medium: styles.v3MediumContainer,\n large: styles.v3LargeContainer,\n 'center-aligned': styles.v3DefaultContainer\n };\n const variant = modeTextVariant[mode];\n const contentWrapperProps = {\n pointerEvents: 'box-none',\n style: [styles.container, isV3 && modeContainerStyles[mode], style],\n testID,\n ...rest\n };\n const content = /*#__PURE__*/React.createElement(React.Fragment, null, typeof title === 'string' ? /*#__PURE__*/React.createElement(Text, _extends({}, isV3 && {\n variant\n }, {\n ref: titleRef,\n style: [{\n color: titleTextColor,\n ...(isV3 ? theme.fonts[variant] : Platform.OS === 'ios' ? theme.fonts.regular : theme.fonts.medium)\n }, !isV3 && styles.title, titleStyle],\n numberOfLines: 1,\n accessible: true,\n accessibilityRole: onPress ? 'none' : Platform.OS === 'web' ? 'heading' : 'header'\n // @ts-expect-error We keep old a11y props for backwards compat with old RN versions\n ,\n accessibilityTraits: \"header\",\n testID: `${testID}-title-text`,\n maxFontSizeMultiplier: titleMaxFontSizeMultiplier\n }), title) : title, !isV3 && subtitle ? /*#__PURE__*/React.createElement(Text, {\n style: [styles.subtitle, {\n color: subtitleColor\n }, subtitleStyle],\n numberOfLines: 1\n }, subtitle) : null);\n if (onPress) {\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react-native-a11y/has-accessibility-props\n React.createElement(Pressable, _extends({\n accessibilityRole: touchableRole\n // @ts-expect-error We keep old a11y props for backwards compat with old RN versions\n ,\n accessibilityTraits: touchableRole,\n accessibilityComponentType: \"button\",\n onPress: onPress,\n disabled: disabled\n }, contentWrapperProps), content)\n );\n }\n return /*#__PURE__*/React.createElement(View, contentWrapperProps, content);\n};\nAppbarContent.displayName = 'Appbar.Content';\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n paddingHorizontal: 12\n },\n v3DefaultContainer: {\n paddingHorizontal: 0\n },\n v3MediumContainer: {\n paddingHorizontal: 0,\n justifyContent: 'flex-end',\n paddingBottom: 24\n },\n v3LargeContainer: {\n paddingHorizontal: 0,\n paddingTop: 36,\n justifyContent: 'flex-end',\n paddingBottom: 28\n },\n title: {\n fontSize: Platform.OS === 'ios' ? 17 : 20\n },\n subtitle: {\n fontSize: Platform.OS === 'ios' ? 11 : 14\n }\n});\nconst iosTouchableRole = ['button', 'header'];\nconst touchableRole = Platform.select({\n ios: iosTouchableRole,\n default: iosTouchableRole[0]\n});\nexport default AppbarContent;\n\n// @component-docs ignore-next-line\nexport { AppbarContent };\n//# sourceMappingURL=AppbarContent.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { Platform, StyleSheet, View } from 'react-native';\nimport color from 'color';\nimport AppbarContent from './AppbarContent';\nimport { DEFAULT_APPBAR_HEIGHT, getAppbarBackgroundColor, modeAppbarHeight, renderAppbarContent } from './utils';\nimport { useInternalTheme } from '../../core/theming';\nimport Surface from '../Surface';\n/**\n * A component to display action items in a bar. It can be placed at the top or bottom.\n * The top bar usually contains the screen title, controls such as navigation buttons, menu button etc.\n * The bottom bar usually provides access to a drawer and up to four actions.\n *\n * By default Appbar uses primary color as a background, in dark theme with `adaptive` mode it will use surface colour instead.\n * See [Dark Theme](https://callstack.github.io/react-native-paper/docs/guides/theming#dark-theme) for more informations\n *\n * ## Usage\n * ### Top bar\n * ```js\n * import * as React from 'react';\n * import { Appbar } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * \n * {}} />\n * \n * {}} />\n * {}} />\n * \n * );\n *\n * export default MyComponent;\n * ```\n *\n * ### Bottom bar\n * ```js\n * import * as React from 'react';\n * import { StyleSheet } from 'react-native';\n * import { Appbar, FAB, useTheme } from 'react-native-paper';\n * import { useSafeAreaInsets } from 'react-native-safe-area-context';\n *\n * const BOTTOM_APPBAR_HEIGHT = 80;\n * const MEDIUM_FAB_HEIGHT = 56;\n *\n * const MyComponent = () => {\n * const { bottom } = useSafeAreaInsets();\n * const theme = useTheme();\n *\n * return (\n * \n * {}} />\n * {}} />\n * {}} />\n * {}} />\n * {}}\n * style={[\n * styles.fab,\n * { top: (BOTTOM_APPBAR_HEIGHT - MEDIUM_FAB_HEIGHT) / 2 },\n * ]}\n * />\n * \n * );\n * };\n *\n * const styles = StyleSheet.create({\n * bottom: {\n * backgroundColor: 'aquamarine',\n * position: 'absolute',\n * left: 0,\n * right: 0,\n * bottom: 0,\n * },\n * fab: {\n * position: 'absolute',\n * right: 16,\n * },\n * });\n *\n * export default MyComponent;\n * ```\n */\nconst Appbar = _ref => {\n let {\n children,\n dark,\n style,\n mode = 'small',\n elevated,\n safeAreaInsets,\n theme: themeOverrides,\n ...rest\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const {\n isV3\n } = theme;\n const flattenedStyle = StyleSheet.flatten(style);\n const {\n backgroundColor: customBackground,\n elevation = isV3 ? elevated ? 2 : 0 : 4,\n ...restStyle\n } = flattenedStyle || {};\n const backgroundColor = getAppbarBackgroundColor(theme, elevation, customBackground, elevated);\n const isMode = modeToCompare => {\n return isV3 && mode === modeToCompare;\n };\n let isDark = false;\n if (typeof dark === 'boolean') {\n isDark = dark;\n } else if (!isV3) {\n isDark = backgroundColor === 'transparent' ? false : typeof backgroundColor === 'string' ? !color(backgroundColor).isLight() : true;\n }\n const isV3CenterAlignedMode = isV3 && isMode('center-aligned');\n let shouldCenterContent = false;\n let shouldAddLeftSpacing = false;\n let shouldAddRightSpacing = false;\n if (!isV3 && Platform.OS === 'ios' || isV3CenterAlignedMode) {\n let hasAppbarContent = false;\n let leftItemsCount = 0;\n let rightItemsCount = 0;\n React.Children.forEach(children, child => {\n if ( /*#__PURE__*/React.isValidElement(child)) {\n if (child.type === AppbarContent) {\n hasAppbarContent = true;\n } else if (hasAppbarContent) {\n rightItemsCount++;\n } else {\n leftItemsCount++;\n }\n }\n });\n shouldCenterContent = hasAppbarContent && leftItemsCount < 2 && rightItemsCount < (isV3 ? 3 : 2);\n shouldAddLeftSpacing = shouldCenterContent && leftItemsCount === 0;\n shouldAddRightSpacing = shouldCenterContent && rightItemsCount === 0;\n }\n const filterAppbarActions = React.useCallback(function () {\n let isLeading = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n return React.Children.toArray(children).filter(child =>\n // @ts-expect-error: TypeScript complains about the type of type but it doesn't matter\n isLeading ? child.props.isLeading : !child.props.isLeading);\n }, [children]);\n const spacingStyle = isV3 ? styles.v3Spacing : styles.spacing;\n const insets = {\n paddingBottom: safeAreaInsets === null || safeAreaInsets === void 0 ? void 0 : safeAreaInsets.bottom,\n paddingTop: safeAreaInsets === null || safeAreaInsets === void 0 ? void 0 : safeAreaInsets.top,\n paddingLeft: safeAreaInsets === null || safeAreaInsets === void 0 ? void 0 : safeAreaInsets.left,\n paddingRight: safeAreaInsets === null || safeAreaInsets === void 0 ? void 0 : safeAreaInsets.right\n };\n return /*#__PURE__*/React.createElement(Surface, _extends({\n style: [{\n backgroundColor\n }, styles.appbar, {\n height: isV3 ? modeAppbarHeight[mode] : DEFAULT_APPBAR_HEIGHT\n }, insets, restStyle, !theme.isV3 && {\n elevation\n }],\n elevation: elevation\n }, rest), shouldAddLeftSpacing ? /*#__PURE__*/React.createElement(View, {\n style: spacingStyle\n }) : null, (!isV3 || isMode('small') || isMode('center-aligned')) && renderAppbarContent({\n children,\n isDark,\n theme,\n isV3,\n shouldCenterContent: isV3CenterAlignedMode || shouldCenterContent\n }), (isMode('medium') || isMode('large')) && /*#__PURE__*/React.createElement(View, {\n style: [styles.columnContainer, isMode('center-aligned') && styles.centerAlignedContainer]\n }, /*#__PURE__*/React.createElement(View, {\n style: styles.controlsRow\n }, renderAppbarContent({\n children,\n isDark,\n isV3,\n renderOnly: ['Appbar.BackAction'],\n mode\n }), renderAppbarContent({\n children: filterAppbarActions(true),\n isDark,\n isV3,\n renderOnly: ['Appbar.Action'],\n mode\n }), /*#__PURE__*/React.createElement(View, {\n style: styles.rightActionControls\n }, renderAppbarContent({\n children: filterAppbarActions(false),\n isDark,\n isV3,\n renderExcept: ['Appbar', 'Appbar.BackAction', 'Appbar.Content', 'Appbar.Header'],\n mode\n }))), renderAppbarContent({\n children,\n isDark,\n isV3,\n renderOnly: ['Appbar.Content'],\n mode\n })), shouldAddRightSpacing ? /*#__PURE__*/React.createElement(View, {\n style: spacingStyle\n }) : null);\n};\nconst styles = StyleSheet.create({\n appbar: {\n flexDirection: 'row',\n alignItems: 'center',\n paddingHorizontal: 4\n },\n spacing: {\n width: 48\n },\n v3Spacing: {\n width: 52\n },\n controlsRow: {\n flex: 1,\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between'\n },\n rightActionControls: {\n flexDirection: 'row',\n flex: 1,\n justifyContent: 'flex-end'\n },\n columnContainer: {\n flexDirection: 'column',\n flex: 1,\n paddingTop: 8\n },\n centerAlignedContainer: {\n paddingTop: 0\n }\n});\nexport default Appbar;\n\n// @component-docs ignore-next-line\nexport { Appbar };\n//# sourceMappingURL=Appbar.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport color from 'color';\nimport { useInternalTheme } from '../../core/theming';\nimport { black } from '../../styles/themes/v2/colors';\nimport { forwardRef } from '../../utils/forwardRef';\nimport IconButton from '../IconButton/IconButton';\n/**\n * A component used to display an action item in the appbar.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Appbar } from 'react-native-paper';\n * import { Platform } from 'react-native';\n *\n * const MORE_ICON = Platform.OS === 'ios' ? 'dots-horizontal' : 'dots-vertical';\n *\n * const MyComponent = () => (\n * \n * \n * {}} />\n * {}} />\n * \n * );\n *\n * export default MyComponent;\n * ```\n */\nconst AppbarAction = forwardRef((_ref, ref) => {\n let {\n size = 24,\n color: iconColor,\n icon,\n disabled,\n onPress,\n accessibilityLabel,\n isLeading,\n theme: themeOverrides,\n rippleColor,\n ...rest\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const actionIconColor = iconColor ? iconColor : theme.isV3 ? isLeading ? theme.colors.onSurface : theme.colors.onSurfaceVariant : color(black).alpha(0.54).rgb().string();\n return /*#__PURE__*/React.createElement(IconButton, _extends({\n size: size,\n onPress: onPress,\n iconColor: actionIconColor,\n icon: icon,\n disabled: disabled,\n accessibilityLabel: accessibilityLabel,\n animated: true,\n ref: ref,\n rippleColor: rippleColor\n }, rest));\n});\nAppbarAction.displayName = 'Appbar.Action';\nexport default AppbarAction;\n\n// @component-docs ignore-next-line\nexport { AppbarAction };\n//# sourceMappingURL=AppbarAction.js.map","import * as React from 'react';\nimport { Platform, I18nManager, View, Image, StyleSheet } from 'react-native';\nimport MaterialCommunityIcon from '../MaterialCommunityIcon';\nconst AppbarBackIcon = _ref => {\n let {\n size,\n color\n } = _ref;\n const iosIconSize = size - 3;\n return Platform.OS === 'ios' ? /*#__PURE__*/React.createElement(View, {\n style: [styles.wrapper, {\n width: size,\n height: size,\n transform: [{\n scaleX: I18nManager.getConstants().isRTL ? -1 : 1\n }]\n }]\n }, /*#__PURE__*/React.createElement(Image, {\n source: require('../../assets/back-chevron.png'),\n style: [styles.icon, {\n tintColor: color,\n width: iosIconSize,\n height: iosIconSize\n }],\n accessibilityIgnoresInvertColors: true\n })) : /*#__PURE__*/React.createElement(MaterialCommunityIcon, {\n name: \"arrow-left\",\n color: color,\n size: size,\n direction: I18nManager.getConstants().isRTL ? 'rtl' : 'ltr'\n });\n};\nconst styles = StyleSheet.create({\n wrapper: {\n alignItems: 'center',\n justifyContent: 'center'\n },\n icon: {\n resizeMode: 'contain'\n }\n});\nexport default AppbarBackIcon;\n\n// @component-docs ignore-next-line\nexport { AppbarBackIcon };\n//# sourceMappingURL=AppbarBackIcon.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport AppbarAction from './AppbarAction';\nimport AppbarBackIcon from './AppbarBackIcon';\nimport { forwardRef } from '../../utils/forwardRef';\n/**\n * A component used to display a back button in the appbar.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Appbar } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * \n * {}} />\n * \n * );\n *\n * export default MyComponent;\n * ```\n */\nconst AppbarBackAction = forwardRef((_ref, ref) => {\n let {\n accessibilityLabel = 'Back',\n ...rest\n } = _ref;\n return /*#__PURE__*/React.createElement(AppbarAction, _extends({\n accessibilityLabel: accessibilityLabel\n }, rest, {\n icon: AppbarBackIcon,\n isLeading: true,\n ref: ref\n }));\n});\nAppbarBackAction.displayName = 'Appbar.BackAction';\nexport default AppbarBackAction;\n\n// @component-docs ignore-next-line\nexport { AppbarBackAction };\n//# sourceMappingURL=AppbarBackAction.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { Platform, StyleSheet, View } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\nimport { Appbar } from './Appbar';\nimport { DEFAULT_APPBAR_HEIGHT, getAppbarBackgroundColor, modeAppbarHeight, getAppbarBorders } from './utils';\nimport { useInternalTheme } from '../../core/theming';\nimport shadow from '../../styles/shadow';\n/**\n * A component to use as a header at the top of the screen.\n * It can contain the screen title, controls such as navigation buttons, menu button etc.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Appbar } from 'react-native-paper';\n *\n * const MyComponent = () => {\n * const _goBack = () => console.log('Went back');\n *\n * const _handleSearch = () => console.log('Searching');\n *\n * const _handleMore = () => console.log('Shown more');\n *\n * return (\n * \n * \n * \n * \n * \n * \n * );\n * };\n *\n * export default MyComponent;\n * ```\n */\nconst AppbarHeader = _ref => {\n let {\n // Don't use default props since we check it to know whether we should use SafeAreaView\n statusBarHeight,\n style,\n dark,\n mode = Platform.OS === 'ios' ? 'center-aligned' : 'small',\n elevated = false,\n theme: themeOverrides,\n testID = 'appbar-header',\n ...rest\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const {\n isV3\n } = theme;\n const flattenedStyle = StyleSheet.flatten(style);\n const {\n height = isV3 ? modeAppbarHeight[mode] : DEFAULT_APPBAR_HEIGHT,\n elevation = isV3 ? elevated ? 2 : 0 : 4,\n backgroundColor: customBackground,\n zIndex = isV3 && elevated ? 1 : 0,\n ...restStyle\n } = flattenedStyle || {};\n const borderRadius = getAppbarBorders(restStyle);\n const backgroundColor = getAppbarBackgroundColor(theme, elevation, customBackground, elevated);\n const {\n top,\n left,\n right\n } = useSafeAreaInsets();\n return /*#__PURE__*/React.createElement(View, {\n testID: `${testID}-root-layer`,\n style: [{\n backgroundColor,\n zIndex,\n elevation,\n paddingTop: statusBarHeight ?? top,\n paddingHorizontal: Math.max(left, right)\n }, borderRadius, shadow(elevation)]\n }, /*#__PURE__*/React.createElement(Appbar, _extends({\n testID: testID,\n style: [{\n height,\n backgroundColor\n }, styles.appbar, restStyle],\n dark: dark\n }, isV3 && {\n mode\n }, rest, {\n theme: theme\n })));\n};\nAppbarHeader.displayName = 'Appbar.Header';\nconst styles = StyleSheet.create({\n appbar: {\n elevation: 0\n }\n});\nexport default AppbarHeader;\n\n// @component-docs ignore-next-line\nexport { AppbarHeader };\n//# sourceMappingURL=AppbarHeader.js.map","import AppbarComponent from './Appbar';\nimport AppbarAction from './AppbarAction';\nimport AppbarBackAction from './AppbarBackAction';\nimport AppbarContent from './AppbarContent';\nimport AppbarHeader from './AppbarHeader';\nconst Appbar = Object.assign(\n// @component ./Appbar.tsx\nAppbarComponent, {\n // @component ./AppbarContent.tsx\n Content: AppbarContent,\n // @component ./AppbarAction.tsx\n Action: AppbarAction,\n // @component ./AppbarBackAction.tsx\n BackAction: AppbarBackAction,\n // @component ./AppbarHeader.tsx\n Header: AppbarHeader\n});\nexport default Appbar;\n//# sourceMappingURL=index.js.map","import * as React from 'react';\nimport { View } from 'react-native';\nexport const RadioButtonContext = /*#__PURE__*/React.createContext(null);\n\n/**\n * Radio button group allows to control a group of radio buttons.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { View } from 'react-native';\n * import { RadioButton, Text } from 'react-native-paper';\n *\n * const MyComponent = () => {\n * const [value, setValue] = React.useState('first');\n *\n * return (\n * setValue(newValue)} value={value}>\n * \n * First\n * \n * \n * \n * Second\n * \n * \n * \n * );\n * };\n *\n * export default MyComponent;\n *```\n */\nconst RadioButtonGroup = _ref => {\n let {\n value,\n onValueChange,\n children\n } = _ref;\n return /*#__PURE__*/React.createElement(RadioButtonContext.Provider, {\n value: {\n value,\n onValueChange\n }\n }, /*#__PURE__*/React.createElement(View, {\n accessibilityRole: \"radiogroup\"\n }, children));\n};\nRadioButtonGroup.displayName = 'RadioButton.Group';\nexport default RadioButtonGroup;\n\n// @component-docs ignore-next-line\nexport { RadioButtonGroup };\n//# sourceMappingURL=RadioButtonGroup.js.map","export const handlePress = _ref => {\n let {\n onPress,\n value,\n onValueChange,\n event\n } = _ref;\n if (onPress && onValueChange) {\n console.warn(`onPress in the scope of RadioButtonGroup will not be executed, use onValueChange instead`);\n }\n onValueChange ? onValueChange(value) : onPress === null || onPress === void 0 ? void 0 : onPress(event);\n};\nexport const isChecked = _ref2 => {\n let {\n value,\n status,\n contextValue\n } = _ref2;\n if (contextValue !== undefined && contextValue !== null) {\n return contextValue === value ? 'checked' : 'unchecked';\n } else {\n return status;\n }\n};\n//# sourceMappingURL=utils.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { Animated, StyleSheet, View } from 'react-native';\nimport { RadioButtonContext } from './RadioButtonGroup';\nimport { handlePress, isChecked } from './utils';\nimport { useInternalTheme } from '../../core/theming';\nimport { getAndroidSelectionControlColor } from '../Checkbox/utils';\nimport TouchableRipple from '../TouchableRipple/TouchableRipple';\nconst BORDER_WIDTH = 2;\n\n/**\n * Radio buttons allow the selection a single option from a set.\n * This component follows platform guidelines for Android, but can be used\n * on any platform.\n *\n * @extends TouchableRipple props https://callstack.github.io/react-native-paper/docs/components/TouchableRipple\n */\nconst RadioButtonAndroid = _ref => {\n let {\n disabled,\n onPress,\n theme: themeOverrides,\n value,\n status,\n testID,\n ...rest\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const {\n current: borderAnim\n } = React.useRef(new Animated.Value(BORDER_WIDTH));\n const {\n current: radioAnim\n } = React.useRef(new Animated.Value(1));\n const isFirstRendering = React.useRef(true);\n const {\n scale\n } = theme.animation;\n React.useEffect(() => {\n // Do not run animation on very first rendering\n if (isFirstRendering.current) {\n isFirstRendering.current = false;\n return;\n }\n if (status === 'checked') {\n radioAnim.setValue(1.2);\n Animated.timing(radioAnim, {\n toValue: 1,\n duration: 150 * scale,\n useNativeDriver: true\n }).start();\n } else {\n borderAnim.setValue(10);\n Animated.timing(borderAnim, {\n toValue: BORDER_WIDTH,\n duration: 150 * scale,\n useNativeDriver: false\n }).start();\n }\n }, [status, borderAnim, radioAnim, scale]);\n return /*#__PURE__*/React.createElement(RadioButtonContext.Consumer, null, context => {\n const checked = isChecked({\n contextValue: context === null || context === void 0 ? void 0 : context.value,\n status,\n value\n }) === 'checked';\n const {\n rippleColor,\n selectionControlColor\n } = getAndroidSelectionControlColor({\n theme,\n disabled,\n checked,\n customColor: rest.color,\n customUncheckedColor: rest.uncheckedColor\n });\n return /*#__PURE__*/React.createElement(TouchableRipple, _extends({}, rest, {\n borderless: true,\n rippleColor: rippleColor,\n onPress: disabled ? undefined : event => {\n handlePress({\n onPress,\n onValueChange: context === null || context === void 0 ? void 0 : context.onValueChange,\n value,\n event\n });\n },\n accessibilityRole: \"radio\",\n accessibilityState: {\n disabled,\n checked\n },\n accessibilityLiveRegion: \"polite\",\n style: styles.container,\n testID: testID,\n theme: theme\n }), /*#__PURE__*/React.createElement(Animated.View, {\n style: [styles.radio, {\n borderColor: selectionControlColor,\n borderWidth: borderAnim\n }]\n }, checked ? /*#__PURE__*/React.createElement(View, {\n style: [StyleSheet.absoluteFill, styles.radioContainer]\n }, /*#__PURE__*/React.createElement(Animated.View, {\n style: [styles.dot, {\n backgroundColor: selectionControlColor,\n transform: [{\n scale: radioAnim\n }]\n }]\n })) : null));\n });\n};\nRadioButtonAndroid.displayName = 'RadioButton.Android';\nconst styles = StyleSheet.create({\n container: {\n borderRadius: 18\n },\n radioContainer: {\n alignItems: 'center',\n justifyContent: 'center'\n },\n radio: {\n height: 20,\n width: 20,\n borderRadius: 10,\n margin: 8\n },\n dot: {\n height: 10,\n width: 10,\n borderRadius: 5\n }\n});\nexport default RadioButtonAndroid;\n\n// @component-docs ignore-next-line\nexport { RadioButtonAndroid };\n//# sourceMappingURL=RadioButtonAndroid.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { RadioButtonContext } from './RadioButtonGroup';\nimport { handlePress, isChecked } from './utils';\nimport { useInternalTheme } from '../../core/theming';\nimport { getSelectionControlIOSColor } from '../Checkbox/utils';\nimport MaterialCommunityIcon from '../MaterialCommunityIcon';\nimport TouchableRipple from '../TouchableRipple/TouchableRipple';\n/**\n * Radio buttons allow the selection a single option from a set.\n * This component follows platform guidelines for iOS, but can be used\n * on any platform.\n *\n * @extends TouchableRipple props https://callstack.github.io/react-native-paper/docs/components/TouchableRipple\n */\nconst RadioButtonIOS = _ref => {\n let {\n disabled,\n onPress,\n theme: themeOverrides,\n status,\n value,\n testID,\n ...rest\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n return /*#__PURE__*/React.createElement(RadioButtonContext.Consumer, null, context => {\n const checked = isChecked({\n contextValue: context === null || context === void 0 ? void 0 : context.value,\n status,\n value\n }) === 'checked';\n const {\n checkedColor,\n rippleColor\n } = getSelectionControlIOSColor({\n theme,\n disabled,\n customColor: rest.color\n });\n const opacity = checked ? 1 : 0;\n return /*#__PURE__*/React.createElement(TouchableRipple, _extends({}, rest, {\n borderless: true,\n rippleColor: rippleColor,\n onPress: disabled ? undefined : event => {\n handlePress({\n onPress,\n value,\n onValueChange: context === null || context === void 0 ? void 0 : context.onValueChange,\n event\n });\n },\n accessibilityRole: \"radio\",\n accessibilityState: {\n disabled,\n checked\n },\n accessibilityLiveRegion: \"polite\",\n style: styles.container,\n testID: testID,\n theme: theme\n }), /*#__PURE__*/React.createElement(View, {\n style: {\n opacity\n }\n }, /*#__PURE__*/React.createElement(MaterialCommunityIcon, {\n allowFontScaling: false,\n name: \"check\",\n size: 24,\n color: checkedColor,\n direction: \"ltr\"\n })));\n });\n};\nRadioButtonIOS.displayName = 'RadioButton.IOS';\nconst styles = StyleSheet.create({\n container: {\n borderRadius: 18,\n padding: 6\n }\n});\nexport default RadioButtonIOS;\n\n// @component-docs ignore-next-line\nexport { RadioButtonIOS };\n//# sourceMappingURL=RadioButtonIOS.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { Platform } from 'react-native';\nimport RadioButtonAndroid from './RadioButtonAndroid';\nimport RadioButtonIOS from './RadioButtonIOS';\nimport { useInternalTheme } from '../../core/theming';\n/**\n * Radio buttons allow the selection a single option from a set.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { View } from 'react-native';\n * import { RadioButton } from 'react-native-paper';\n *\n * const MyComponent = () => {\n * const [checked, setChecked] = React.useState('first');\n *\n * return (\n * \n * setChecked('first')}\n * />\n * setChecked('second')}\n * />\n * \n * );\n * };\n *\n * export default MyComponent;\n * ```\n */\nconst RadioButton = _ref => {\n let {\n theme: themeOverrides,\n ...props\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const Button = Platform.select({\n default: RadioButtonAndroid,\n ios: RadioButtonIOS\n });\n return /*#__PURE__*/React.createElement(Button, _extends({}, props, {\n theme: theme\n }));\n};\nexport default RadioButton;\n//# sourceMappingURL=RadioButton.js.map","import * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport RadioButton from './RadioButton';\nimport RadioButtonAndroid from './RadioButtonAndroid';\nimport { RadioButtonContext } from './RadioButtonGroup';\nimport RadioButtonIOS from './RadioButtonIOS';\nimport { handlePress, isChecked } from './utils';\nimport { useInternalTheme } from '../../core/theming';\nimport TouchableRipple from '../TouchableRipple/TouchableRipple';\nimport Text from '../Typography/Text';\n/**\n * RadioButton.Item allows you to press the whole row (item) instead of only the RadioButton.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { RadioButton } from 'react-native-paper';\n *\n * const MyComponent = () => {\n * const [value, setValue] = React.useState('first');\n *\n * return (\n * setValue(value)} value={value}>\n * \n * \n * \n * );\n * };\n *\n * export default MyComponent;\n *```\n */\nconst RadioButtonItem = _ref => {\n let {\n value,\n label,\n style,\n labelStyle,\n onPress,\n onLongPress,\n disabled,\n color,\n uncheckedColor,\n rippleColor,\n status,\n theme: themeOverrides,\n background,\n accessibilityLabel = label,\n testID,\n mode,\n position = 'trailing',\n labelVariant = 'bodyLarge',\n labelMaxFontSizeMultiplier\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const radioButtonProps = {\n value,\n disabled,\n status,\n color,\n theme,\n uncheckedColor\n };\n const isLeading = position === 'leading';\n let radioButton;\n if (mode === 'android') {\n radioButton = /*#__PURE__*/React.createElement(RadioButtonAndroid, radioButtonProps);\n } else if (mode === 'ios') {\n radioButton = /*#__PURE__*/React.createElement(RadioButtonIOS, radioButtonProps);\n } else {\n radioButton = /*#__PURE__*/React.createElement(RadioButton, radioButtonProps);\n }\n const textColor = theme.isV3 ? theme.colors.onSurface : theme.colors.text;\n const disabledTextColor = theme.isV3 ? theme.colors.onSurfaceDisabled : theme.colors.disabled;\n const textAlign = isLeading ? 'right' : 'left';\n const computedStyle = {\n color: disabled ? disabledTextColor : textColor,\n textAlign\n };\n return /*#__PURE__*/React.createElement(RadioButtonContext.Consumer, null, context => {\n const checked = isChecked({\n contextValue: context === null || context === void 0 ? void 0 : context.value,\n status,\n value\n }) === 'checked';\n return /*#__PURE__*/React.createElement(TouchableRipple, {\n onPress: event => handlePress({\n onPress: onPress,\n onValueChange: context === null || context === void 0 ? void 0 : context.onValueChange,\n value,\n event\n }),\n onLongPress: onLongPress,\n accessibilityLabel: accessibilityLabel,\n accessibilityRole: \"radio\",\n accessibilityState: {\n checked,\n disabled\n },\n testID: testID,\n disabled: disabled,\n background: background,\n theme: theme,\n rippleColor: rippleColor\n }, /*#__PURE__*/React.createElement(View, {\n style: [styles.container, style],\n pointerEvents: \"none\"\n }, isLeading && radioButton, /*#__PURE__*/React.createElement(Text, {\n variant: labelVariant,\n style: [styles.label, !theme.isV3 && styles.font, computedStyle, labelStyle],\n maxFontSizeMultiplier: labelMaxFontSizeMultiplier\n }, label), !isLeading && radioButton));\n });\n};\nRadioButtonItem.displayName = 'RadioButton.Item';\nexport default RadioButtonItem;\n\n// @component-docs ignore-next-line\nexport { RadioButtonItem };\nconst styles = StyleSheet.create({\n container: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n paddingVertical: 8,\n paddingHorizontal: 16\n },\n label: {\n flexShrink: 1,\n flexGrow: 1\n },\n font: {\n fontSize: 16\n }\n});\n//# sourceMappingURL=RadioButtonItem.js.map","import RadioButtonComponent from './RadioButton';\nimport RadioButtonAndroid from './RadioButtonAndroid';\nimport RadioButtonGroup from './RadioButtonGroup';\nimport RadioButtonIOS from './RadioButtonIOS';\nimport RadioButtonItem from './RadioButtonItem';\nconst RadioButton = Object.assign(\n// @component ./RadioButton.tsx\nRadioButtonComponent, {\n // @component ./RadioButtonGroup.tsx\n Group: RadioButtonGroup,\n // @component ./RadioButtonAndroid.tsx\n Android: RadioButtonAndroid,\n // @component ./RadioButtonIOS.tsx\n IOS: RadioButtonIOS,\n // @component ./RadioButtonItem.tsx\n Item: RadioButtonItem\n});\nexport default RadioButton;\n//# sourceMappingURL=index.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { useInternalTheme } from '../../core/theming';\n/**\n * A component to show a list of actions in a Dialog.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Button, Dialog, Portal } from 'react-native-paper';\n *\n * const MyComponent = () => {\n * const [visible, setVisible] = React.useState(false);\n *\n * const hideDialog = () => setVisible(false);\n *\n * return (\n * \n * \n * \n * \n * \n * \n * \n * \n * );\n * };\n *\n * export default MyComponent;\n * ```\n */\nconst DialogActions = props => {\n const {\n isV3\n } = useInternalTheme(props.theme);\n const actionsLength = React.Children.toArray(props.children).length;\n return /*#__PURE__*/React.createElement(View, _extends({}, props, {\n style: [isV3 ? styles.v3Container : styles.container, props.style]\n }), React.Children.map(props.children, (child, i) => /*#__PURE__*/React.isValidElement(child) ? /*#__PURE__*/React.cloneElement(child, {\n compact: true,\n uppercase: !isV3,\n style: [isV3 && {\n marginRight: i + 1 === actionsLength ? 0 : 8\n }, child.props.style]\n }) : child));\n};\nDialogActions.displayName = 'Dialog.Actions';\nconst styles = StyleSheet.create({\n container: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'flex-end',\n padding: 8\n },\n v3Container: {\n flexDirection: 'row',\n flexGrow: 1,\n alignItems: 'center',\n justifyContent: 'flex-end',\n paddingBottom: 24,\n paddingHorizontal: 24\n }\n});\nexport default DialogActions;\n//# sourceMappingURL=DialogActions.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { View, StyleSheet } from 'react-native';\n/**\n * A component to show content in a Dialog.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Dialog, Portal, Text } from 'react-native-paper';\n *\n * const MyComponent = () => {\n * const [visible, setVisible] = React.useState(false);\n *\n * const hideDialog = () => setVisible(false);\n *\n * return (\n * \n * \n * \n * This is simple dialog\n * \n * \n * \n * );\n * };\n *\n * export default MyComponent;\n * ```\n */\nconst DialogContent = props => /*#__PURE__*/React.createElement(View, _extends({}, props, {\n style: [styles.container, props.style]\n}), props.children);\nDialogContent.displayName = 'Dialog.Content';\nconst styles = StyleSheet.create({\n container: {\n paddingBottom: 24,\n paddingHorizontal: 24\n }\n});\nexport default DialogContent;\n//# sourceMappingURL=DialogContent.js.map","import * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { useInternalTheme } from '../../core/theming';\nimport Icon from '../Icon';\n/**\n * @supported Available in v5.x with theme version 3\n * A component to show an icon in a Dialog.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { StyleSheet } from 'react-native';\n * import { Dialog, Portal, Text } from 'react-native-paper';\n *\n * const MyComponent = () => {\n * const [visible, setVisible] = React.useState(false);\n *\n * const hideDialog = () => setVisible(false);\n *\n * return (\n * \n * \n * \n * This is a title\n * \n * This is simple dialog\n * \n * \n * \n * );\n * };\n *\n * const styles = StyleSheet.create({\n * title: {\n * textAlign: 'center',\n * },\n * })\n *\n * export default MyComponent;\n * ```\n */\nconst DialogIcon = _ref => {\n let {\n size = 24,\n color,\n icon,\n theme: themeOverrides\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n if (!theme.isV3) {\n return null;\n }\n\n //@ts-ignore\n const iconColor = color || theme.colors.secondary;\n return /*#__PURE__*/React.createElement(View, {\n style: styles.wrapper\n }, /*#__PURE__*/React.createElement(Icon, {\n source: icon,\n color: iconColor,\n size: size\n }));\n};\nDialogIcon.displayName = 'Dialog.Icon';\nconst styles = StyleSheet.create({\n wrapper: {\n alignItems: 'center',\n justifyContent: 'center',\n paddingTop: 24\n }\n});\nexport default DialogIcon;\n\n// @component-docs ignore-next-line\nexport { DialogIcon };\n//# sourceMappingURL=DialogIcon.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { useInternalTheme } from '../../core/theming';\n/**\n * A component to show a scrollable content in a Dialog. The component only provides appropriate styling.\n * For the scrollable content you can use `ScrollView`, `FlatList` etc. depending on your requirement.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { ScrollView } from 'react-native';\n * import { Dialog, Portal, Text } from 'react-native-paper';\n *\n * const MyComponent = () => {\n * const [visible, setVisible] = React.useState(false);\n *\n * const hideDialog = () => setVisible(false);\n *\n * return (\n * \n * \n * \n * \n * This is a scrollable area\n * \n * \n * \n * \n * );\n * };\n *\n * export default MyComponent;\n * ```\n */\nconst DialogScrollArea = props => {\n const theme = useInternalTheme(props.theme);\n const borderStyles = {\n borderColor: theme.isV3 ? theme.colors.surfaceVariant : 'rgba(0, 0, 0, .12)',\n borderTopWidth: theme.isV3 ? 1 : StyleSheet.hairlineWidth,\n borderBottomWidth: theme.isV3 ? 1 : StyleSheet.hairlineWidth\n };\n return /*#__PURE__*/React.createElement(View, _extends({}, props, {\n style: [styles.container, borderStyles, theme.isV3 && styles.v3Container, props.style]\n }), props.children);\n};\nDialogScrollArea.displayName = 'Dialog.ScrollArea';\nconst styles = StyleSheet.create({\n container: {\n paddingHorizontal: 24,\n flexGrow: 1,\n flexShrink: 1\n },\n v3Container: {\n marginBottom: 24\n }\n});\nexport default DialogScrollArea;\n//# sourceMappingURL=DialogScrollArea.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { StyleSheet } from 'react-native';\nimport { useInternalTheme } from '../../core/theming';\nimport Text from '../Typography/Text';\nimport Title from '../Typography/v2/Title';\n/**\n * A component to show a title in a Dialog.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Dialog, Portal, Text } from 'react-native-paper';\n *\n * const MyComponent = () => {\n * const [visible, setVisible] = React.useState(false);\n *\n * const hideDialog = () => setVisible(false);\n *\n * return (\n * \n * \n * This is a title\n * \n * This is simple dialog\n * \n * \n * \n * );\n * };\n *\n * export default MyComponent;\n * ```\n */\nconst DialogTitle = _ref => {\n let {\n children,\n theme: themeOverrides,\n style,\n ...rest\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const {\n isV3,\n colors,\n fonts\n } = theme;\n const TextComponent = isV3 ? Text : Title;\n const headerTextStyle = {\n color: isV3 ? colors.onSurface : colors === null || colors === void 0 ? void 0 : colors.text,\n ...(isV3 ? fonts.headlineSmall : {})\n };\n return /*#__PURE__*/React.createElement(TextComponent, _extends({\n variant: \"headlineSmall\",\n accessibilityRole: \"header\",\n style: [styles.text, isV3 && styles.v3Text, headerTextStyle, style]\n }, rest), children);\n};\nDialogTitle.displayName = 'Dialog.Title';\nconst styles = StyleSheet.create({\n text: {\n marginTop: 22,\n marginBottom: 18,\n marginHorizontal: 24\n },\n v3Text: {\n marginTop: 16,\n marginBottom: 16\n }\n});\nexport default DialogTitle;\n\n// @component-docs ignore-next-line\nexport { DialogTitle };\n//# sourceMappingURL=DialogTitle.js.map","import * as React from 'react';\nimport { Platform, StyleSheet } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\nimport DialogActions from './DialogActions';\nimport DialogContent from './DialogContent';\nimport DialogIcon from './DialogIcon';\nimport DialogScrollArea from './DialogScrollArea';\nimport DialogTitle from './DialogTitle';\nimport { useInternalTheme } from '../../core/theming';\nimport overlay from '../../styles/overlay';\nimport Modal from '../Modal';\nconst DIALOG_ELEVATION = 24;\n\n/**\n * Dialogs inform users about a specific task and may contain critical information, require decisions, or involve multiple tasks.\n * To render the `Dialog` above other components, you'll need to wrap it with the [`Portal`](../../Portal) component.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { View } from 'react-native';\n * import { Button, Dialog, Portal, PaperProvider, Text } from 'react-native-paper';\n *\n * const MyComponent = () => {\n * const [visible, setVisible] = React.useState(false);\n *\n * const showDialog = () => setVisible(true);\n *\n * const hideDialog = () => setVisible(false);\n *\n * return (\n * \n * \n * \n * \n * \n * Alert\n * \n * This is simple dialog\n * \n * \n * \n * \n * \n * \n * \n * \n * );\n * };\n *\n * export default MyComponent;\n * ```\n */\nconst Dialog = _ref => {\n let {\n children,\n dismissable = true,\n dismissableBackButton = dismissable,\n onDismiss,\n visible = false,\n style,\n theme: themeOverrides,\n testID\n } = _ref;\n const {\n right,\n left\n } = useSafeAreaInsets();\n const theme = useInternalTheme(themeOverrides);\n const {\n isV3,\n dark,\n mode,\n colors,\n roundness\n } = theme;\n const borderRadius = (isV3 ? 7 : 1) * roundness;\n const backgroundColorV2 = dark && mode === 'adaptive' ? overlay(DIALOG_ELEVATION, colors === null || colors === void 0 ? void 0 : colors.surface) : colors === null || colors === void 0 ? void 0 : colors.surface;\n const backgroundColor = isV3 ? theme.colors.elevation.level3 : backgroundColorV2;\n return /*#__PURE__*/React.createElement(Modal, {\n dismissable: dismissable,\n dismissableBackButton: dismissableBackButton,\n onDismiss: onDismiss,\n visible: visible,\n contentContainerStyle: [{\n borderRadius,\n backgroundColor,\n marginHorizontal: Math.max(left, right, 26)\n }, styles.container, style],\n theme: theme,\n testID: testID\n }, React.Children.toArray(children).filter(child => child != null && typeof child !== 'boolean').map((child, i) => {\n if (isV3) {\n if (i === 0 && /*#__PURE__*/React.isValidElement(child)) {\n return /*#__PURE__*/React.cloneElement(child, {\n style: [{\n marginTop: 24\n }, child.props.style]\n });\n }\n }\n if (i === 0 && /*#__PURE__*/React.isValidElement(child) && child.type === DialogContent) {\n // Dialog content is the first item, so we add a top padding\n return /*#__PURE__*/React.cloneElement(child, {\n style: [{\n paddingTop: 24\n }, child.props.style]\n });\n }\n return child;\n }));\n};\n\n// @component ./DialogContent.tsx\nDialog.Content = DialogContent;\n// @component ./DialogActions.tsx\nDialog.Actions = DialogActions;\n// @component ./DialogTitle.tsx\nDialog.Title = DialogTitle;\n// @component ./DialogScrollArea.tsx\nDialog.ScrollArea = DialogScrollArea;\n// @component ./DialogIcon.tsx\nDialog.Icon = DialogIcon;\nconst styles = StyleSheet.create({\n container: {\n /**\n * This prevents the shadow from being clipped on Android since Android\n * doesn't support `overflow: visible`.\n * One downside for this fix is that it will disable clicks on the area\n * of the shadow around the dialog, consequently, if you click around the\n * dialog (44 pixel from the top and bottom) it won't be dismissed.\n */\n marginVertical: Platform.OS === 'android' ? 44 : 0,\n elevation: DIALOG_ELEVATION,\n justifyContent: 'flex-start'\n }\n});\nexport default Dialog;\n//# sourceMappingURL=Dialog.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { StyleSheet } from 'react-native';\nimport TouchableRipple from '../TouchableRipple/TouchableRipple';\nimport Text from '../Typography/Text';\n/**\n * A component to show a single cell inside of a table.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { DataTable } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * \n * 1\n * 2\n * 3\n * 4\n * \n * );\n *\n * export default MyComponent;\n * ```\n *\n * If you want to support multiline text, please use View instead, as multiline text doesn't comply with\n * MD Guidelines (https://github.com/callstack/react-native-paper/issues/2381).\n *\n * @extends TouchableRipple props https://callstack.github.io/react-native-paper/docs/components/TouchableRipple\n */\nconst DataTableCell = _ref => {\n let {\n children,\n textStyle,\n style,\n numeric,\n maxFontSizeMultiplier,\n testID,\n ...rest\n } = _ref;\n return /*#__PURE__*/React.createElement(TouchableRipple, _extends({}, rest, {\n testID: testID,\n style: [styles.container, numeric && styles.right, style]\n }), /*#__PURE__*/React.createElement(CellContent, {\n textStyle: textStyle,\n testID: testID,\n maxFontSizeMultiplier: maxFontSizeMultiplier\n }, children));\n};\nconst CellContent = _ref2 => {\n let {\n children,\n textStyle,\n maxFontSizeMultiplier,\n testID\n } = _ref2;\n if ( /*#__PURE__*/React.isValidElement(children)) {\n return children;\n }\n return /*#__PURE__*/React.createElement(Text, {\n style: textStyle,\n numberOfLines: 1,\n maxFontSizeMultiplier: maxFontSizeMultiplier,\n testID: `${testID}-text-container`\n }, children);\n};\nDataTableCell.displayName = 'DataTable.Cell';\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n flexDirection: 'row',\n alignItems: 'center'\n },\n right: {\n justifyContent: 'flex-end'\n }\n});\nexport default DataTableCell;\n//# sourceMappingURL=DataTableCell.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport color from 'color';\nimport { useInternalTheme } from '../../core/theming';\nimport { black, white } from '../../styles/themes/v2/colors';\n/**\n * A component to display title in table header.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { DataTable } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * \n * \n * \n * Dessert\n * \n * Calories\n * Fat (g)\n * \n * \n * );\n *\n * export default MyComponent;\n * ```\n */\n\nconst DataTableHeader = _ref => {\n let {\n children,\n style,\n theme: themeOverrides,\n ...rest\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const borderBottomColor = theme.isV3 ? theme.colors.surfaceVariant : color(theme.dark ? white : black).alpha(0.12).rgb().string();\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, {\n style: [styles.header, {\n borderBottomColor\n }, style]\n }), children);\n};\nDataTableHeader.displayName = 'DataTable.Header';\nconst styles = StyleSheet.create({\n header: {\n flexDirection: 'row',\n paddingHorizontal: 16,\n borderBottomWidth: StyleSheet.hairlineWidth * 2\n }\n});\nexport default DataTableHeader;\n\n// @component-docs ignore-next-line\nexport { DataTableHeader };\n//# sourceMappingURL=DataTableHeader.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { I18nManager, StyleSheet, View } from 'react-native';\nimport color from 'color';\nimport { useInternalTheme } from '../../core/theming';\nimport Button from '../Button/Button';\nimport IconButton from '../IconButton/IconButton';\nimport MaterialCommunityIcon from '../MaterialCommunityIcon';\nimport Menu from '../Menu/Menu';\nimport Text from '../Typography/Text';\nconst PaginationControls = _ref => {\n let {\n page,\n numberOfPages,\n onPageChange,\n showFastPaginationControls,\n theme: themeOverrides,\n paginationControlRippleColor\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const textColor = theme.isV3 ? theme.colors.onSurface : theme.colors.text;\n return /*#__PURE__*/React.createElement(React.Fragment, null, showFastPaginationControls ? /*#__PURE__*/React.createElement(IconButton, {\n icon: _ref2 => {\n let {\n size,\n color\n } = _ref2;\n return /*#__PURE__*/React.createElement(MaterialCommunityIcon, {\n name: \"page-first\",\n color: color,\n size: size,\n direction: I18nManager.getConstants().isRTL ? 'rtl' : 'ltr'\n });\n },\n iconColor: textColor,\n rippleColor: paginationControlRippleColor,\n disabled: page === 0,\n onPress: () => onPageChange(0),\n accessibilityLabel: \"page-first\",\n theme: theme\n }) : null, /*#__PURE__*/React.createElement(IconButton, {\n icon: _ref3 => {\n let {\n size,\n color\n } = _ref3;\n return /*#__PURE__*/React.createElement(MaterialCommunityIcon, {\n name: \"chevron-left\",\n color: color,\n size: size,\n direction: I18nManager.getConstants().isRTL ? 'rtl' : 'ltr'\n });\n },\n iconColor: textColor,\n rippleColor: paginationControlRippleColor,\n disabled: page === 0,\n onPress: () => onPageChange(page - 1),\n accessibilityLabel: \"chevron-left\",\n theme: theme\n }), /*#__PURE__*/React.createElement(IconButton, {\n icon: _ref4 => {\n let {\n size,\n color\n } = _ref4;\n return /*#__PURE__*/React.createElement(MaterialCommunityIcon, {\n name: \"chevron-right\",\n color: color,\n size: size,\n direction: I18nManager.getConstants().isRTL ? 'rtl' : 'ltr'\n });\n },\n iconColor: textColor,\n rippleColor: paginationControlRippleColor,\n disabled: numberOfPages === 0 || page === numberOfPages - 1,\n onPress: () => onPageChange(page + 1),\n accessibilityLabel: \"chevron-right\",\n theme: theme\n }), showFastPaginationControls ? /*#__PURE__*/React.createElement(IconButton, {\n icon: _ref5 => {\n let {\n size,\n color\n } = _ref5;\n return /*#__PURE__*/React.createElement(MaterialCommunityIcon, {\n name: \"page-last\",\n color: color,\n size: size,\n direction: I18nManager.getConstants().isRTL ? 'rtl' : 'ltr'\n });\n },\n iconColor: textColor,\n rippleColor: paginationControlRippleColor,\n disabled: numberOfPages === 0 || page === numberOfPages - 1,\n onPress: () => onPageChange(numberOfPages - 1),\n accessibilityLabel: \"page-last\",\n theme: theme\n }) : null);\n};\nconst PaginationDropdown = _ref6 => {\n let {\n numberOfItemsPerPageList,\n numberOfItemsPerPage,\n onItemsPerPageChange,\n theme: themeOverrides,\n selectPageDropdownRippleColor,\n dropdownItemRippleColor\n } = _ref6;\n const theme = useInternalTheme(themeOverrides);\n const {\n colors\n } = theme;\n const [showSelect, toggleSelect] = React.useState(false);\n return /*#__PURE__*/React.createElement(Menu, {\n visible: showSelect,\n onDismiss: () => toggleSelect(!showSelect),\n theme: theme,\n anchor: /*#__PURE__*/React.createElement(Button, {\n mode: \"outlined\",\n onPress: () => toggleSelect(true),\n style: styles.button,\n icon: \"menu-down\",\n contentStyle: styles.contentStyle,\n theme: theme,\n rippleColor: selectPageDropdownRippleColor\n }, `${numberOfItemsPerPage}`)\n }, numberOfItemsPerPageList === null || numberOfItemsPerPageList === void 0 ? void 0 : numberOfItemsPerPageList.map(option => /*#__PURE__*/React.createElement(Menu.Item, {\n key: option,\n titleStyle: option === numberOfItemsPerPage && {\n color: colors === null || colors === void 0 ? void 0 : colors.primary\n },\n onPress: () => {\n onItemsPerPageChange === null || onItemsPerPageChange === void 0 ? void 0 : onItemsPerPageChange(option);\n toggleSelect(false);\n },\n rippleColor: dropdownItemRippleColor,\n title: option,\n theme: theme\n })));\n};\n\n/**\n * A component to show pagination for data table.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { DataTable } from 'react-native-paper';\n *\n * const numberOfItemsPerPageList = [2, 3, 4];\n *\n * const items = [\n * {\n * key: 1,\n * name: 'Page 1',\n * },\n * {\n * key: 2,\n * name: 'Page 2',\n * },\n * {\n * key: 3,\n * name: 'Page 3',\n * },\n * ];\n *\n * const MyComponent = () => {\n * const [page, setPage] = React.useState(0);\n * const [numberOfItemsPerPage, onItemsPerPageChange] = React.useState(numberOfItemsPerPageList[0]);\n * const from = page * numberOfItemsPerPage;\n * const to = Math.min((page + 1) * numberOfItemsPerPage, items.length);\n *\n * React.useEffect(() => {\n * setPage(0);\n * }, [numberOfItemsPerPage]);\n *\n * return (\n * \n * setPage(page)}\n * label={`${from + 1}-${to} of ${items.length}`}\n * showFastPaginationControls\n * numberOfItemsPerPageList={numberOfItemsPerPageList}\n * numberOfItemsPerPage={numberOfItemsPerPage}\n * onItemsPerPageChange={onItemsPerPageChange}\n * selectPageDropdownLabel={'Rows per page'}\n * />\n * \n * );\n * };\n *\n * export default MyComponent;\n * ```\n */\nconst DataTablePagination = _ref7 => {\n let {\n label,\n accessibilityLabel,\n page,\n numberOfPages,\n onPageChange,\n style,\n showFastPaginationControls = false,\n numberOfItemsPerPageList,\n numberOfItemsPerPage,\n onItemsPerPageChange,\n selectPageDropdownLabel,\n selectPageDropdownAccessibilityLabel,\n selectPageDropdownRippleColor,\n dropdownItemRippleColor,\n theme: themeOverrides,\n ...rest\n } = _ref7;\n const theme = useInternalTheme(themeOverrides);\n const labelColor = color(theme.isV3 ? theme.colors.onSurface : theme === null || theme === void 0 ? void 0 : theme.colors.text).alpha(0.6).rgb().string();\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, {\n style: [styles.container, style],\n accessibilityLabel: \"pagination-container\"\n }), numberOfItemsPerPageList && numberOfItemsPerPage && onItemsPerPageChange && /*#__PURE__*/React.createElement(View, {\n accessibilityLabel: \"Options Select\",\n style: styles.optionsContainer\n }, /*#__PURE__*/React.createElement(Text, {\n style: [styles.label, {\n color: labelColor\n }],\n numberOfLines: 3,\n accessibilityLabel: selectPageDropdownAccessibilityLabel || 'selectPageDropdownLabel'\n }, selectPageDropdownLabel), /*#__PURE__*/React.createElement(PaginationDropdown, {\n numberOfItemsPerPageList: numberOfItemsPerPageList,\n numberOfItemsPerPage: numberOfItemsPerPage,\n onItemsPerPageChange: onItemsPerPageChange,\n selectPageDropdownRippleColor: selectPageDropdownRippleColor,\n dropdownItemRippleColor: dropdownItemRippleColor,\n theme: theme\n })), /*#__PURE__*/React.createElement(Text, {\n style: [styles.label, {\n color: labelColor\n }],\n numberOfLines: 3,\n accessibilityLabel: accessibilityLabel || 'label'\n }, label), /*#__PURE__*/React.createElement(View, {\n style: styles.iconsContainer\n }, /*#__PURE__*/React.createElement(PaginationControls, {\n showFastPaginationControls: showFastPaginationControls,\n onPageChange: onPageChange,\n page: page,\n numberOfPages: numberOfPages,\n theme: theme\n })));\n};\nDataTablePagination.displayName = 'DataTable.Pagination';\nconst styles = StyleSheet.create({\n container: {\n justifyContent: 'flex-end',\n flexDirection: 'row',\n alignItems: 'center',\n paddingLeft: 16,\n flexWrap: 'wrap'\n },\n optionsContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n marginVertical: 6\n },\n label: {\n fontSize: 12,\n marginRight: 16\n },\n button: {\n textAlign: 'center',\n marginRight: 16\n },\n iconsContainer: {\n flexDirection: 'row'\n },\n contentStyle: {\n flexDirection: 'row-reverse'\n }\n});\nexport default DataTablePagination;\n\n// @component-docs ignore-next-line\nexport { DataTablePagination };\n//# sourceMappingURL=DataTablePagination.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport color from 'color';\nimport { useInternalTheme } from '../../core/theming';\nimport { black, white } from '../../styles/themes/v2/colors';\nimport TouchableRipple from '../TouchableRipple/TouchableRipple';\n/**\n * A component to show a single row inside of a table.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { DataTable } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * \n * 1\n * 2\n * 3\n * 4\n * \n * );\n *\n * export default MyComponent;\n * ```\n *\n * @extends TouchableRipple props https://callstack.github.io/react-native-paper/docs/components/TouchableRipple\n */\nconst DataTableRow = _ref => {\n let {\n onPress,\n style,\n children,\n pointerEvents,\n theme: themeOverrides,\n ...rest\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const borderBottomColor = theme.isV3 ? theme.colors.surfaceVariant : color(theme.dark ? white : black).alpha(0.12).rgb().string();\n return /*#__PURE__*/React.createElement(TouchableRipple, _extends({}, rest, {\n onPress: onPress,\n style: [styles.container, {\n borderBottomColor\n }, style]\n }), /*#__PURE__*/React.createElement(View, {\n style: styles.content,\n pointerEvents: pointerEvents\n }, children));\n};\nDataTableRow.displayName = 'DataTable.Row';\nconst styles = StyleSheet.create({\n container: {\n borderStyle: 'solid',\n borderBottomWidth: StyleSheet.hairlineWidth,\n minHeight: 48,\n paddingHorizontal: 16\n },\n content: {\n flex: 1,\n flexDirection: 'row'\n }\n});\nexport default DataTableRow;\n\n// @component-docs ignore-next-line\nexport { DataTableRow };\n//# sourceMappingURL=DataTableRow.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { Animated, I18nManager, Pressable, StyleSheet } from 'react-native';\nimport color from 'color';\nimport { useInternalTheme } from '../../core/theming';\nimport MaterialCommunityIcon from '../MaterialCommunityIcon';\nimport Text from '../Typography/Text';\n/**\n * A component to display title in table header.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { DataTable } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * \n * \n * \n * Dessert\n * \n * Calories\n * Fat (g)\n * \n * \n * );\n *\n * export default MyComponent;\n * ```\n */\n\nconst DataTableTitle = _ref => {\n var _theme$colors;\n let {\n numeric,\n children,\n onPress,\n sortDirection,\n textStyle,\n style,\n theme: themeOverrides,\n numberOfLines = 1,\n maxFontSizeMultiplier,\n ...rest\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const {\n current: spinAnim\n } = React.useRef(new Animated.Value(sortDirection === 'ascending' ? 0 : 1));\n React.useEffect(() => {\n Animated.timing(spinAnim, {\n toValue: sortDirection === 'ascending' ? 0 : 1,\n duration: 150,\n useNativeDriver: true\n }).start();\n }, [sortDirection, spinAnim]);\n const textColor = theme.isV3 ? theme.colors.onSurface : theme === null || theme === void 0 || (_theme$colors = theme.colors) === null || _theme$colors === void 0 ? void 0 : _theme$colors.text;\n const alphaTextColor = color(textColor).alpha(0.6).rgb().string();\n const spin = spinAnim.interpolate({\n inputRange: [0, 1],\n outputRange: ['0deg', '180deg']\n });\n const icon = sortDirection ? /*#__PURE__*/React.createElement(Animated.View, {\n style: [styles.icon, {\n transform: [{\n rotate: spin\n }]\n }]\n }, /*#__PURE__*/React.createElement(MaterialCommunityIcon, {\n name: \"arrow-up\",\n size: 16,\n color: textColor,\n direction: I18nManager.getConstants().isRTL ? 'rtl' : 'ltr'\n })) : null;\n return /*#__PURE__*/React.createElement(Pressable, _extends({\n disabled: !onPress,\n onPress: onPress\n }, rest, {\n style: [styles.container, numeric && styles.right, style]\n }), icon, /*#__PURE__*/React.createElement(Text, {\n style: [styles.cell,\n // height must scale with numberOfLines\n {\n maxHeight: 24 * numberOfLines\n },\n // if numberOfLines causes wrap, center is lost. Align directly, sensitive to numeric and RTL\n numberOfLines > 1 ? numeric ? I18nManager.getConstants().isRTL ? styles.leftText : styles.rightText : styles.centerText : {}, sortDirection ? styles.sorted : {\n color: alphaTextColor\n }, textStyle],\n numberOfLines: numberOfLines,\n maxFontSizeMultiplier: maxFontSizeMultiplier\n }, children));\n};\nDataTableTitle.displayName = 'DataTable.Title';\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n flexDirection: 'row',\n alignContent: 'center',\n paddingVertical: 12\n },\n rightText: {\n textAlign: 'right'\n },\n leftText: {\n textAlign: 'left'\n },\n centerText: {\n textAlign: 'center'\n },\n right: {\n justifyContent: 'flex-end'\n },\n cell: {\n lineHeight: 24,\n fontSize: 12,\n fontWeight: '500',\n alignItems: 'center'\n },\n sorted: {\n marginLeft: 8\n },\n icon: {\n height: 24,\n justifyContent: 'center'\n }\n});\nexport default DataTableTitle;\n\n// @component-docs ignore-next-line\nexport { DataTableTitle };\n//# sourceMappingURL=DataTableTitle.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport DataTableCell from './DataTableCell';\nimport DataTableHeader\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfrom './DataTableHeader';\nimport DataTablePagination\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfrom './DataTablePagination';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport DataTableRow from './DataTableRow';\nimport DataTableTitle\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfrom './DataTableTitle';\n/**\n * Data tables allow displaying sets of data.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { DataTable } from 'react-native-paper';\n *\n * const MyComponent = () => {\n * const [page, setPage] = React.useState(0);\n * const [numberOfItemsPerPageList] = React.useState([2, 3, 4]);\n * const [itemsPerPage, onItemsPerPageChange] = React.useState(\n * numberOfItemsPerPageList[0]\n * );\n *\n * const [items] = React.useState([\n * {\n * key: 1,\n * name: 'Cupcake',\n * calories: 356,\n * fat: 16,\n * },\n * {\n * key: 2,\n * name: 'Eclair',\n * calories: 262,\n * fat: 16,\n * },\n * {\n * key: 3,\n * name: 'Frozen yogurt',\n * calories: 159,\n * fat: 6,\n * },\n * {\n * key: 4,\n * name: 'Gingerbread',\n * calories: 305,\n * fat: 3.7,\n * },\n * ]);\n *\n * const from = page * itemsPerPage;\n * const to = Math.min((page + 1) * itemsPerPage, items.length);\n *\n * React.useEffect(() => {\n * setPage(0);\n * }, [itemsPerPage]);\n *\n * return (\n * \n * \n * Dessert\n * Calories\n * Fat\n * \n *\n * {items.slice(from, to).map((item) => (\n * \n * {item.name}\n * {item.calories}\n * {item.fat}\n * \n * ))}\n *\n * setPage(page)}\n * label={`${from + 1}-${to} of ${items.length}`}\n * numberOfItemsPerPageList={numberOfItemsPerPageList}\n * numberOfItemsPerPage={itemsPerPage}\n * onItemsPerPageChange={onItemsPerPageChange}\n * showFastPaginationControls\n * selectPageDropdownLabel={'Rows per page'}\n * />\n * \n * );\n * };\n *\n * export default MyComponent;\n * ```\n */\nconst DataTable = _ref => {\n let {\n children,\n style,\n ...rest\n } = _ref;\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, {\n style: [styles.container, style]\n }), children);\n};\n\n// @component ./DataTableHeader.tsx\nDataTable.Header = DataTableHeader;\n\n// @component ./DataTableTitle.tsx\nDataTable.Title = DataTableTitle;\n\n// @component ./DataTableRow.tsx\nDataTable.Row = DataTableRow;\n\n// @component ./DataTableCell.tsx\nDataTable.Cell = DataTableCell;\n\n// @component ./DataTablePagination.tsx\nDataTable.Pagination = DataTablePagination;\nconst styles = StyleSheet.create({\n container: {\n width: '100%'\n }\n});\nexport default DataTable;\n//# sourceMappingURL=DataTable.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { Animated, StyleSheet, View } from 'react-native';\nimport { getAndroidSelectionControlColor } from './utils';\nimport { useInternalTheme } from '../../core/theming';\nimport MaterialCommunityIcon from '../MaterialCommunityIcon';\nimport TouchableRipple from '../TouchableRipple/TouchableRipple';\n// From https://material.io/design/motion/speed.html#duration\nconst ANIMATION_DURATION = 100;\n\n/**\n * Checkboxes allow the selection of multiple options from a set.\n * This component follows platform guidelines for Android, but can be used\n * on any platform.\n *\n * @extends TouchableRipple props https://callstack.github.io/react-native-paper/docs/components/TouchableRipple\n */\nconst CheckboxAndroid = _ref => {\n let {\n status,\n theme: themeOverrides,\n disabled,\n onPress,\n testID,\n ...rest\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const {\n current: scaleAnim\n } = React.useRef(new Animated.Value(1));\n const isFirstRendering = React.useRef(true);\n const {\n animation: {\n scale\n }\n } = theme;\n React.useEffect(() => {\n // Do not run animation on very first rendering\n if (isFirstRendering.current) {\n isFirstRendering.current = false;\n return;\n }\n const checked = status === 'checked';\n Animated.sequence([Animated.timing(scaleAnim, {\n toValue: 0.85,\n duration: checked ? ANIMATION_DURATION * scale : 0,\n useNativeDriver: false\n }), Animated.timing(scaleAnim, {\n toValue: 1,\n duration: checked ? ANIMATION_DURATION * scale : ANIMATION_DURATION * scale * 1.75,\n useNativeDriver: false\n })]).start();\n }, [status, scaleAnim, scale]);\n const checked = status === 'checked';\n const indeterminate = status === 'indeterminate';\n const {\n rippleColor,\n selectionControlColor\n } = getAndroidSelectionControlColor({\n theme,\n disabled,\n checked,\n customColor: rest.color,\n customUncheckedColor: rest.uncheckedColor\n });\n const borderWidth = scaleAnim.interpolate({\n inputRange: [0.8, 1],\n outputRange: [7, 0]\n });\n const icon = indeterminate ? 'minus-box' : checked ? 'checkbox-marked' : 'checkbox-blank-outline';\n return /*#__PURE__*/React.createElement(TouchableRipple, _extends({}, rest, {\n borderless: true,\n rippleColor: rippleColor,\n onPress: onPress,\n disabled: disabled,\n accessibilityRole: \"checkbox\",\n accessibilityState: {\n disabled,\n checked\n },\n accessibilityLiveRegion: \"polite\",\n style: styles.container,\n testID: testID,\n theme: theme\n }), /*#__PURE__*/React.createElement(Animated.View, {\n style: {\n transform: [{\n scale: scaleAnim\n }]\n }\n }, /*#__PURE__*/React.createElement(MaterialCommunityIcon, {\n allowFontScaling: false,\n name: icon,\n size: 24,\n color: selectionControlColor,\n direction: \"ltr\"\n }), /*#__PURE__*/React.createElement(View, {\n style: [StyleSheet.absoluteFill, styles.fillContainer]\n }, /*#__PURE__*/React.createElement(Animated.View, {\n style: [styles.fill, {\n borderColor: selectionControlColor\n }, {\n borderWidth\n }]\n }))));\n};\nCheckboxAndroid.displayName = 'Checkbox.Android';\nconst styles = StyleSheet.create({\n container: {\n borderRadius: 18,\n width: 36,\n height: 36,\n padding: 6\n },\n fillContainer: {\n alignItems: 'center',\n justifyContent: 'center'\n },\n fill: {\n height: 14,\n width: 14\n }\n});\nexport default CheckboxAndroid;\n\n// @component-docs ignore-next-line\nexport { CheckboxAndroid };\n//# sourceMappingURL=CheckboxAndroid.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { getSelectionControlIOSColor } from './utils';\nimport { useInternalTheme } from '../../core/theming';\nimport MaterialCommunityIcon from '../MaterialCommunityIcon';\nimport TouchableRipple from '../TouchableRipple/TouchableRipple';\n/**\n * Checkboxes allow the selection of multiple options from a set.\n * This component follows platform guidelines for iOS, but can be used\n * on any platform.\n *\n * @extends TouchableRipple props https://callstack.github.io/react-native-paper/docs/components/TouchableRipple\n */\nconst CheckboxIOS = _ref => {\n let {\n status,\n disabled,\n onPress,\n theme: themeOverrides,\n testID,\n ...rest\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const checked = status === 'checked';\n const indeterminate = status === 'indeterminate';\n const {\n checkedColor,\n rippleColor\n } = getSelectionControlIOSColor({\n theme,\n disabled,\n customColor: rest.color\n });\n const icon = indeterminate ? 'minus' : 'check';\n const opacity = indeterminate || checked ? 1 : 0;\n return /*#__PURE__*/React.createElement(TouchableRipple, _extends({}, rest, {\n borderless: true,\n rippleColor: rippleColor,\n onPress: onPress,\n disabled: disabled,\n accessibilityRole: \"checkbox\",\n accessibilityState: {\n disabled,\n checked\n },\n accessibilityLiveRegion: \"polite\",\n style: styles.container,\n testID: testID,\n theme: theme\n }), /*#__PURE__*/React.createElement(View, {\n style: {\n opacity\n }\n }, /*#__PURE__*/React.createElement(MaterialCommunityIcon, {\n allowFontScaling: false,\n name: icon,\n size: 24,\n color: checkedColor,\n direction: \"ltr\"\n })));\n};\nCheckboxIOS.displayName = 'Checkbox.IOS';\nconst styles = StyleSheet.create({\n container: {\n borderRadius: 18,\n padding: 6\n }\n});\nexport default CheckboxIOS;\n\n// @component-docs ignore-next-line\nexport { CheckboxIOS };\n//# sourceMappingURL=CheckboxIOS.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { Platform } from 'react-native';\nimport CheckboxAndroid from './CheckboxAndroid';\nimport CheckboxIOS from './CheckboxIOS';\nimport { useInternalTheme } from '../../core/theming';\n/**\n * Checkboxes allow the selection of multiple options from a set.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Checkbox } from 'react-native-paper';\n *\n * const MyComponent = () => {\n * const [checked, setChecked] = React.useState(false);\n *\n * return (\n * {\n * setChecked(!checked);\n * }}\n * />\n * );\n * };\n *\n * export default MyComponent;\n * ```\n */\nconst Checkbox = _ref => {\n let {\n theme: themeOverrides,\n ...props\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n return Platform.OS === 'ios' ? /*#__PURE__*/React.createElement(CheckboxIOS, _extends({}, props, {\n theme: theme\n })) : /*#__PURE__*/React.createElement(CheckboxAndroid, _extends({}, props, {\n theme: theme\n }));\n};\nexport default Checkbox;\n\n// @component-docs ignore-next-line\nconst CheckboxWithTheme = Checkbox;\n// @component-docs ignore-next-line\nexport { CheckboxWithTheme as Checkbox };\n//# sourceMappingURL=Checkbox.js.map","import * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport Checkbox from './Checkbox';\nimport CheckboxAndroid from './CheckboxAndroid';\nimport CheckboxIOS from './CheckboxIOS';\nimport { useInternalTheme } from '../../core/theming';\nimport TouchableRipple from '../TouchableRipple/TouchableRipple';\nimport Text from '../Typography/Text';\n/**\n * Checkbox.Item allows you to press the whole row (item) instead of only the Checkbox.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { View } from 'react-native';\n * import { Checkbox } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * \n * \n * \n * );\n *\n * export default MyComponent;\n *```\n */\n\nconst CheckboxItem = _ref => {\n let {\n style,\n status,\n label,\n onPress,\n onLongPress,\n labelStyle,\n theme: themeOverrides,\n testID,\n mode,\n position = 'trailing',\n accessibilityLabel = label,\n disabled,\n labelVariant = 'bodyLarge',\n labelMaxFontSizeMultiplier = 1.5,\n rippleColor,\n background,\n ...props\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const checkboxProps = {\n ...props,\n status,\n theme,\n disabled\n };\n const isLeading = position === 'leading';\n let checkbox;\n if (mode === 'android') {\n checkbox = /*#__PURE__*/React.createElement(CheckboxAndroid, checkboxProps);\n } else if (mode === 'ios') {\n checkbox = /*#__PURE__*/React.createElement(CheckboxIOS, checkboxProps);\n } else {\n checkbox = /*#__PURE__*/React.createElement(Checkbox, checkboxProps);\n }\n const textColor = theme.isV3 ? theme.colors.onSurface : theme.colors.text;\n const disabledTextColor = theme.isV3 ? theme.colors.onSurfaceDisabled : theme.colors.disabled;\n const textAlign = isLeading ? 'right' : 'left';\n const computedStyle = {\n color: disabled ? disabledTextColor : textColor,\n textAlign\n };\n return /*#__PURE__*/React.createElement(TouchableRipple, {\n accessibilityLabel: accessibilityLabel,\n accessibilityRole: \"checkbox\",\n accessibilityState: {\n checked: status === 'checked',\n disabled\n },\n onPress: onPress,\n onLongPress: onLongPress,\n testID: testID,\n disabled: disabled,\n rippleColor: rippleColor,\n theme: theme,\n background: background\n }, /*#__PURE__*/React.createElement(View, {\n style: [styles.container, style],\n pointerEvents: \"none\",\n importantForAccessibility: \"no-hide-descendants\"\n }, isLeading && checkbox, /*#__PURE__*/React.createElement(Text, {\n variant: labelVariant,\n testID: `${testID}-text`,\n maxFontSizeMultiplier: labelMaxFontSizeMultiplier,\n style: [styles.label, !theme.isV3 && styles.font, computedStyle, labelStyle]\n }, label), !isLeading && checkbox));\n};\nCheckboxItem.displayName = 'Checkbox.Item';\nexport default CheckboxItem;\n\n// @component-docs ignore-next-line\nexport { CheckboxItem };\nconst styles = StyleSheet.create({\n container: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n paddingVertical: 8,\n paddingHorizontal: 16\n },\n label: {\n flexShrink: 1,\n flexGrow: 1\n },\n font: {\n fontSize: 16\n }\n});\n//# sourceMappingURL=CheckboxItem.js.map","import CheckboxComponent from './Checkbox';\nimport CheckboxAndroid from './CheckboxAndroid';\nimport CheckboxIOS from './CheckboxIOS';\nimport CheckboxItem from './CheckboxItem';\nconst Checkbox = Object.assign(\n// @component ./Checkbox.tsx\nCheckboxComponent, {\n // @component ./CheckboxItem.tsx\n Item: CheckboxItem,\n // @component ./CheckboxAndroid.tsx\n Android: CheckboxAndroid,\n // @component ./CheckboxIOS.tsx\n IOS: CheckboxIOS\n});\nexport default Checkbox;\n//# sourceMappingURL=index.js.map","import React, { useMemo } from 'react'\nimport Svg, {\n Defs,\n G,\n Path,\n Rect,\n Image,\n ClipPath,\n LinearGradient,\n Stop\n} from 'react-native-svg'\nimport genMatrix from './genMatrix'\nimport transformMatrixIntoPath from './transformMatrixIntoPath'\n\nconst renderLogo = ({\n size,\n logo,\n logoSize,\n logoBackgroundColor,\n logoMargin,\n logoBorderRadius\n}) => {\n const logoPosition = (size - logoSize - logoMargin * 2) / 2\n const logoBackgroundSize = logoSize + logoMargin * 2\n const logoBackgroundBorderRadius =\n logoBorderRadius + (logoMargin / logoSize) * logoBorderRadius\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nconst QRCode = ({\n value = 'this is a QR code',\n size = 100,\n color = 'black',\n backgroundColor = 'white',\n logo,\n logoSize = size * 0.2,\n logoBackgroundColor = 'transparent',\n logoMargin = 2,\n logoBorderRadius = 0,\n quietZone = 0,\n enableLinearGradient = false,\n gradientDirection = ['0%', '0%', '100%', '100%'],\n linearGradient = ['rgb(255,0,0)', 'rgb(0,255,255)'],\n ecl = 'M',\n getRef,\n onError\n}) => {\n const result = useMemo(() => {\n try {\n return transformMatrixIntoPath(genMatrix(value, ecl), size)\n } catch (error) {\n if (onError && typeof onError === 'function') {\n onError(error)\n } else {\n // Pass the error when no handler presented\n throw error\n }\n }\n }, [value, size, ecl])\n\n if (!result) {\n return null\n }\n\n const { path, cellSize } = result\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n {logo &&\n renderLogo({\n size,\n logo,\n logoSize,\n logoBackgroundColor,\n logoMargin,\n logoBorderRadius\n })}\n \n )\n}\n\nexport default QRCode\n","export default (matrix, size) => {\n const cellSize = size / matrix.length\n let path = ''\n matrix.forEach((row, i) => {\n let needDraw = false\n row.forEach((column, j) => {\n if (column) {\n if (!needDraw) {\n path += `M${cellSize * j} ${cellSize / 2 + cellSize * i} `\n needDraw = true\n }\n if (needDraw && j === matrix.length - 1) {\n path += `L${cellSize * (j + 1)} ${cellSize / 2 + cellSize * i} `\n }\n } else {\n if (needDraw) {\n path += `L${cellSize * j} ${cellSize / 2 + cellSize * i} `\n needDraw = false\n }\n }\n })\n })\n return {\n cellSize,\n path\n }\n}\n","import QRCode from 'qrcode'\n\nexport default (value, errorCorrectionLevel) => {\n const arr = Array.prototype.slice.call(QRCode.create(value, { errorCorrectionLevel }).modules.data, 0)\n const sqrt = Math.sqrt(arr.length)\n return arr.reduce((rows, key, index) => (index % sqrt === 0 ? rows.push([key]) : rows[rows.length - 1].push(key)) && rows, [])\n}\n","/* eslint-disable react-native/no-inline-styles */\nimport React, { memo } from 'react';\nimport { View, StyleSheet, Text } from 'react-native';\nimport { Checkbox } from 'react-native-paper';\nimport type { checkbox } from 'src/interface/checkbox.interface';\n\nconst CheckboxInput = ({\n isChecked,\n label,\n checkboxColor,\n checkboxLabelStyle,\n checkboxUncheckedColor,\n}: checkbox) => (\n \n \n \n {label.trim()}\n \n \n);\n\nconst styles = StyleSheet.create({\n container: {\n flexDirection: 'row',\n alignItems: 'center',\n flex: 1,\n marginBottom: 1.5,\n },\n});\n\nexport default memo(CheckboxInput);\n","/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable prettier/prettier */\n/* eslint-disable react-native/no-inline-styles */\nimport React, { memo, useRef, useState } from 'react';\nimport {\n View,\n StyleSheet,\n Text,\n TouchableOpacity,\n ScrollView,\n} from 'react-native';\nimport {\n TextInput,\n Button,\n Dialog,\n Portal,\n Searchbar,\n} from 'react-native-paper';\nimport CheckboxInput from '../components/checkBox';\nimport type { list, paperSelect } from '../interface/paperSelect.interface';\n\nconst PaperSelect = ({\n inputRef,\n label,\n arrayList,\n selectedArrayList,\n multiEnable,\n errorText,\n value,\n onSelection,\n selectAllEnable = true,\n selectAllText = \"Select All\",\n containerStyle,\n dialogStyle,\n dialogTitle,\n dialogTitleStyle,\n searchStyle,\n disabled = false,\n checkboxColor,\n checkboxLabelStyle,\n checkboxUncheckedColor,\n errorStyle,\n textInputMode,\n underlineColor,\n activeUnderlineColor,\n activeOutlineColor,\n outlineColor,\n textInputBackgroundColor,\n textInputColor,\n textInputHeight,\n textInputStyle,\n dialogButtonLabelStyle,\n hideSearchBox,\n searchPlaceholder,\n modalCloseButtonText,\n modalDoneButtonText,\n theme\n}: paperSelect) => {\n const [searchKey, setSearchKey] = useState('');\n\n const [arrayHolder, setArrayHolder] = useState>([...arrayList]);\n const [list, setList] = useState>([...arrayList]);\n const [selectedList, setSelectedList] = useState>([...selectedArrayList]);\n\n const selfInputRef = useRef(null);\n const selectInputRef = inputRef ?? selfInputRef;\n\n const [visible, setVisible] = useState(false);\n\n const showDialog = () => setVisible(true);\n\n const _hideDialog = () => {\n setSearchKey(\"\");\n var data: Array = [...arrayHolder];\n // console.log(selectedList);\n var selectedData: Array = [...selectedList];\n // console.log(selectedData);\n let finalText: string = \"\";\n selectedData.forEach((val, index) => {\n data.forEach((el) => {\n if (val._id === el._id) {\n finalText += (index !== selectedData.length - 1) ? `${el.value}, ` : `${el.value}`;\n }\n });\n });\n\n onSelection({\n text: finalText,\n selectedList: selectedData,\n });\n\n\n setVisible(false);\n\n if (selectInputRef && selectInputRef.current) {\n selectInputRef.current.blur();\n }\n };\n\n const _closeDialog = () => {\n setVisible(false);\n setSearchKey(\"\");\n if (selectInputRef && selectInputRef.current) {\n selectInputRef.current.blur();\n }\n };\n\n const _onFocus = () => {\n setArrayHolder([...arrayList]);\n setList([...arrayList]);\n setSelectedList([...selectedArrayList]);\n showDialog();\n };\n\n const _onChecked = (item: any) => {\n var selectedData = [...selectedList];\n // const index = data.findIndex(x => x._id === item._id);\n const indexSelected = selectedData.findIndex((val) => val._id === item._id);\n if (indexSelected > -1) {\n selectedData.splice(indexSelected, 1);\n } else {\n selectedData.push(item);\n }\n setSelectedList([...selectedData]);\n };\n\n const _onCheckedSingle = (item: any) => {\n var selectedData = [...selectedList];\n // const index = data.findIndex(x => x._id === item._id);\n const indexSelected = selectedData.findIndex((val) => val._id === item._id);\n if (indexSelected > -1) {\n // selectedData.splice(indexSelected, 1);\n selectedData = [];\n } else {\n selectedData = [];\n selectedData.push(item);\n }\n // console.log(selectedData);\n setSelectedList([...selectedData]);\n };\n\n const _exists = (item: any) => {\n // console.log(selectedList);\n let _temp = [...selectedList]\n return _temp.find((val: any) => val._id === item._id) ? true : false;\n };\n\n const _isCheckedAll = () => {\n const data = [...list];\n const selectedData = [...selectedList];\n return selectedData.length !== 0 && selectedData.length === data.length;\n };\n\n const _checkAll = () => {\n const data = [...list];\n var selectedData = [...selectedList];\n if (selectedData.length === data.length) {\n selectedData = [];\n } else if (selectedData.length === 0 || selectedData.length > 0) {\n selectedData = data.slice(0);\n }\n\n setSelectedList([...selectedData]);\n };\n\n const _renderListForMulti = () => {\n return list.map((item, key) => {\n return (\n {\n _onChecked(item);\n }}\n >\n \n \n );\n });\n };\n\n const _renderListForSingle = () => {\n return list.map((item, key) => {\n return (\n {\n _onCheckedSingle(item);\n }}\n >\n \n \n );\n });\n };\n\n const _filterFunction = (text: string) => {\n setSearchKey(text);\n const newData = arrayHolder.filter((item) =>\n item.value.toLowerCase().includes(text.toLowerCase())\n );\n setList(newData);\n };\n\n return (\n <>\n \n \n }\n theme={theme}\n />\n {errorText ? (\n \n {errorText}\n \n ) : null}\n \n\n \n \n \n {dialogTitle ?? label}\n \n \n {hideSearchBox ? : _filterFunction(text)}\n iconColor={searchStyle?.iconColor || 'black'}\n style={{\n borderRadius: searchStyle?.borderRadius || 5,\n borderColor: searchStyle?.borderColor || '#e5e5e5',\n backgroundColor: searchStyle?.backgroundColor || '#e5e5e5',\n borderWidth: 0.5,\n marginBottom: 10,\n marginHorizontal: 8,\n color: searchStyle?.textColor || '#000',\n }}\n />}\n {(multiEnable === true && selectAllEnable === true) && (\n {\n _checkAll();\n }}\n >\n \n \n )}\n \n {multiEnable === true\n ? _renderListForMulti()\n : _renderListForSingle()}\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n width: '100%',\n marginBottom: 10,\n },\n});\n\nexport default memo(PaperSelect);\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { Animated, StyleSheet } from 'react-native';\nimport { getTextColor } from './utils';\nimport { useInternalTheme } from '../../core/theming';\nimport AnimatedText from '../Typography/AnimatedText';\n/**\n * Helper text is used in conjuction with input elements to provide additional hints for the user.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { View } from 'react-native';\n * import { HelperText, TextInput } from 'react-native-paper';\n *\n * const MyComponent = () => {\n * const [text, setText] = React.useState('');\n *\n * const onChangeText = text => setText(text);\n *\n * const hasErrors = () => {\n * return !text.includes('@');\n * };\n *\n * return (\n * \n * \n * \n * Email address is invalid!\n * \n * \n * );\n * };\n *\n * export default MyComponent;\n * ```\n */\nconst HelperText = _ref => {\n let {\n style,\n type = 'info',\n visible = true,\n theme: themeOverrides,\n onLayout,\n padding = 'normal',\n disabled,\n ...rest\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const {\n current: shown\n } = React.useRef(new Animated.Value(visible ? 1 : 0));\n let {\n current: textHeight\n } = React.useRef(0);\n const {\n scale\n } = theme.animation;\n const {\n maxFontSizeMultiplier = 1.5\n } = rest;\n React.useEffect(() => {\n if (visible) {\n // show text\n Animated.timing(shown, {\n toValue: 1,\n duration: 150 * scale,\n useNativeDriver: true\n }).start();\n } else {\n // hide text\n Animated.timing(shown, {\n toValue: 0,\n duration: 180 * scale,\n useNativeDriver: true\n }).start();\n }\n }, [visible, scale, shown]);\n const handleTextLayout = e => {\n onLayout === null || onLayout === void 0 ? void 0 : onLayout(e);\n textHeight = e.nativeEvent.layout.height;\n };\n const textColor = getTextColor({\n theme,\n disabled,\n type\n });\n return /*#__PURE__*/React.createElement(AnimatedText, _extends({\n onLayout: handleTextLayout,\n style: [styles.text, padding !== 'none' ? styles.padding : {}, {\n color: textColor,\n opacity: shown,\n transform: visible && type === 'error' ? [{\n translateY: shown.interpolate({\n inputRange: [0, 1],\n outputRange: [-textHeight / 2, 0]\n })\n }] : []\n }, style],\n maxFontSizeMultiplier: maxFontSizeMultiplier\n }, rest), rest.children);\n};\nconst styles = StyleSheet.create({\n text: {\n fontSize: 12,\n paddingVertical: 4\n },\n padding: {\n paddingHorizontal: 12\n }\n});\nexport default HelperText;\n//# sourceMappingURL=HelperText.js.map","import color from 'color';\nexport function getTextColor(_ref) {\n var _theme$colors;\n let {\n theme,\n disabled,\n type\n } = _ref;\n const {\n colors,\n dark\n } = theme;\n if (type === 'error') {\n return colors === null || colors === void 0 ? void 0 : colors.error;\n }\n if (theme.isV3) {\n if (disabled) {\n return theme.colors.onSurfaceDisabled;\n } else {\n return theme.colors.onSurfaceVariant;\n }\n }\n return color(theme === null || theme === void 0 || (_theme$colors = theme.colors) === null || _theme$colors === void 0 ? void 0 : _theme$colors.text).alpha(dark ? 0.7 : 0.54).rgb().string();\n}\n//# sourceMappingURL=utils.js.map","import color from 'color';\nimport { black, white } from '../../styles/themes/v2/colors';\nconst getBorderColor = _ref => {\n let {\n theme,\n isOutlined,\n disabled,\n selectedColor,\n backgroundColor\n } = _ref;\n const isSelectedColor = selectedColor !== undefined;\n if (theme.isV3) {\n if (disabled) {\n return color(theme.colors.onSurfaceVariant).alpha(0.12).rgb().string();\n }\n if (isSelectedColor) {\n return color(selectedColor).alpha(0.29).rgb().string();\n }\n return theme.colors.outline;\n }\n if (isOutlined) {\n if (isSelectedColor) {\n return color(selectedColor).alpha(0.29).rgb().string();\n }\n if (theme.dark) {\n return color(white).alpha(0.29).rgb().string();\n }\n return color(black).alpha(0.29).rgb().string();\n }\n return backgroundColor;\n};\nconst getTextColor = _ref2 => {\n let {\n theme,\n isOutlined,\n disabled,\n selectedColor\n } = _ref2;\n const isSelectedColor = selectedColor !== undefined;\n if (theme.isV3) {\n if (disabled) {\n return theme.colors.onSurfaceDisabled;\n }\n if (isSelectedColor) {\n return selectedColor;\n }\n if (isOutlined) {\n return theme.colors.onSurfaceVariant;\n }\n return theme.colors.onSecondaryContainer;\n }\n if (disabled) {\n return theme.colors.disabled;\n }\n if (isSelectedColor) {\n return color(selectedColor).alpha(0.87).rgb().string();\n }\n return color(theme.colors.text).alpha(0.87).rgb().string();\n};\nconst getDefaultBackgroundColor = _ref3 => {\n let {\n theme,\n isOutlined\n } = _ref3;\n if (theme.isV3) {\n if (isOutlined) {\n return theme.colors.surface;\n }\n return theme.colors.secondaryContainer;\n }\n if (isOutlined) {\n var _theme$colors;\n return (_theme$colors = theme.colors) === null || _theme$colors === void 0 ? void 0 : _theme$colors.surface;\n }\n if (theme.dark) {\n return '#383838';\n }\n return '#ebebeb';\n};\nconst getBackgroundColor = _ref4 => {\n let {\n theme,\n isOutlined,\n disabled,\n customBackgroundColor\n } = _ref4;\n if (typeof customBackgroundColor === 'string') {\n return customBackgroundColor;\n }\n if (theme.isV3) {\n if (disabled) {\n if (isOutlined) {\n return 'transparent';\n }\n return color(theme.colors.onSurfaceVariant).alpha(0.12).rgb().string();\n }\n }\n return getDefaultBackgroundColor({\n theme,\n isOutlined\n });\n};\nconst getSelectedBackgroundColor = _ref5 => {\n let {\n theme,\n isOutlined,\n disabled,\n customBackgroundColor,\n showSelectedOverlay\n } = _ref5;\n const backgroundColor = getBackgroundColor({\n theme,\n disabled,\n isOutlined,\n customBackgroundColor\n });\n if (theme.isV3) {\n if (isOutlined) {\n if (showSelectedOverlay) {\n return color(backgroundColor).mix(color(theme.colors.onSurfaceVariant), 0.12).rgb().string();\n }\n return color(backgroundColor).mix(color(theme.colors.onSurfaceVariant), 0).rgb().string();\n }\n if (showSelectedOverlay) {\n return color(backgroundColor).mix(color(theme.colors.onSecondaryContainer), 0.12).rgb().string();\n }\n return color(backgroundColor).mix(color(theme.colors.onSecondaryContainer), 0).rgb().string();\n }\n if (theme.dark) {\n if (isOutlined) {\n return color(backgroundColor).lighten(0.2).rgb().string();\n }\n return color(backgroundColor).lighten(0.4).rgb().string();\n }\n if (isOutlined) {\n return color(backgroundColor).darken(0.08).rgb().string();\n }\n return color(backgroundColor).darken(0.2).rgb().string();\n};\nconst getIconColor = _ref6 => {\n let {\n theme,\n isOutlined,\n disabled,\n selectedColor\n } = _ref6;\n const isSelectedColor = selectedColor !== undefined;\n if (theme.isV3) {\n if (disabled) {\n return theme.colors.onSurfaceDisabled;\n }\n if (isSelectedColor) {\n return selectedColor;\n }\n if (isOutlined) {\n return theme.colors.onSurfaceVariant;\n }\n return theme.colors.onSecondaryContainer;\n }\n if (disabled) {\n return theme.colors.disabled;\n }\n if (isSelectedColor) {\n return color(selectedColor).alpha(0.54).rgb().string();\n }\n return color(theme.colors.text).alpha(0.54).rgb().string();\n};\nconst getRippleColor = _ref7 => {\n let {\n theme,\n isOutlined,\n disabled,\n selectedColor,\n selectedBackgroundColor,\n customRippleColor\n } = _ref7;\n if (customRippleColor) {\n return customRippleColor;\n }\n const isSelectedColor = selectedColor !== undefined;\n const textColor = getTextColor({\n theme,\n disabled,\n selectedColor,\n isOutlined\n });\n if (theme.isV3) {\n if (isSelectedColor) {\n return color(selectedColor).alpha(0.12).rgb().string();\n }\n return color(textColor).alpha(0.12).rgb().string();\n }\n if (isSelectedColor) {\n return color(selectedColor).fade(0.5).rgb().string();\n }\n return selectedBackgroundColor;\n};\nexport const getChipColors = _ref8 => {\n let {\n isOutlined,\n theme,\n selectedColor,\n showSelectedOverlay,\n customBackgroundColor,\n disabled,\n customRippleColor\n } = _ref8;\n const baseChipColorProps = {\n theme,\n isOutlined,\n disabled\n };\n const backgroundColor = getBackgroundColor({\n ...baseChipColorProps,\n customBackgroundColor\n });\n const selectedBackgroundColor = getSelectedBackgroundColor({\n ...baseChipColorProps,\n customBackgroundColor,\n showSelectedOverlay\n });\n return {\n borderColor: getBorderColor({\n ...baseChipColorProps,\n selectedColor,\n backgroundColor\n }),\n textColor: getTextColor({\n ...baseChipColorProps,\n selectedColor\n }),\n iconColor: getIconColor({\n ...baseChipColorProps,\n selectedColor\n }),\n rippleColor: getRippleColor({\n ...baseChipColorProps,\n selectedColor,\n selectedBackgroundColor,\n customRippleColor\n }),\n backgroundColor,\n selectedBackgroundColor\n };\n};\n//# sourceMappingURL=helpers.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { Animated, Platform, StyleSheet, Pressable, View } from 'react-native';\nimport useLatestCallback from 'use-latest-callback';\nimport { getChipColors } from './helpers';\nimport { useInternalTheme } from '../../core/theming';\nimport { white } from '../../styles/themes/v2/colors';\nimport hasTouchHandler from '../../utils/hasTouchHandler';\nimport Icon from '../Icon';\nimport MaterialCommunityIcon from '../MaterialCommunityIcon';\nimport Surface from '../Surface';\nimport TouchableRipple from '../TouchableRipple/TouchableRipple';\nimport Text from '../Typography/Text';\n/**\n * Chips are compact elements that can represent inputs, attributes, or actions.\n * They can have an icon or avatar on the left, and a close button icon on the right.\n * They are typically used to:\n *
    \n *
  • Present multiple options
  • \n *
  • Represent attributes active or chosen
  • \n *
  • Present filter options
  • \n *
  • Trigger actions related to primary content
  • \n *
\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Chip } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * console.log('Pressed')}>Example Chip\n * );\n *\n * export default MyComponent;\n * ```\n */\nconst Chip = _ref => {\n let {\n mode = 'flat',\n children,\n icon,\n avatar,\n selected = false,\n disabled = false,\n background,\n accessibilityLabel,\n closeIconAccessibilityLabel = 'Close',\n onPress,\n onLongPress,\n onPressOut,\n onPressIn,\n delayLongPress,\n onClose,\n closeIcon,\n textStyle,\n style,\n theme: themeOverrides,\n testID = 'chip',\n selectedColor,\n rippleColor: customRippleColor,\n showSelectedOverlay = false,\n showSelectedCheck = true,\n ellipsizeMode,\n compact,\n elevated = false,\n maxFontSizeMultiplier,\n ...rest\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const {\n isV3,\n roundness\n } = theme;\n const {\n current: elevation\n } = React.useRef(new Animated.Value(isV3 && elevated ? 1 : 0));\n const hasPassedTouchHandler = hasTouchHandler({\n onPress,\n onLongPress,\n onPressIn,\n onPressOut\n });\n const isOutlined = mode === 'outlined';\n const handlePressIn = useLatestCallback(e => {\n const {\n scale\n } = theme.animation;\n onPressIn === null || onPressIn === void 0 ? void 0 : onPressIn(e);\n Animated.timing(elevation, {\n toValue: isV3 ? elevated ? 2 : 0 : 4,\n duration: 200 * scale,\n useNativeDriver: Platform.OS === 'web' || Platform.constants.reactNativeVersion.minor <= 72\n }).start();\n });\n const handlePressOut = useLatestCallback(e => {\n const {\n scale\n } = theme.animation;\n onPressOut === null || onPressOut === void 0 ? void 0 : onPressOut(e);\n Animated.timing(elevation, {\n toValue: isV3 && elevated ? 1 : 0,\n duration: 150 * scale,\n useNativeDriver: Platform.OS === 'web' || Platform.constants.reactNativeVersion.minor <= 72\n }).start();\n });\n const opacity = isV3 ? 0.38 : 0.26;\n const defaultBorderRadius = roundness * (isV3 ? 2 : 4);\n const iconSize = isV3 ? 18 : 16;\n const {\n backgroundColor: customBackgroundColor,\n borderRadius = defaultBorderRadius\n } = StyleSheet.flatten(style) || {};\n const {\n borderColor,\n textColor,\n iconColor,\n rippleColor,\n selectedBackgroundColor,\n backgroundColor\n } = getChipColors({\n isOutlined,\n theme,\n selectedColor,\n showSelectedOverlay,\n customBackgroundColor,\n disabled,\n customRippleColor\n });\n const accessibilityState = {\n selected,\n disabled\n };\n const elevationStyle = isV3 || Platform.OS === 'android' ? elevation : 0;\n const multiplier = isV3 ? compact ? 1.5 : 2 : 1;\n const labelSpacings = {\n marginRight: onClose ? 0 : 8 * multiplier,\n marginLeft: avatar || icon || selected && showSelectedCheck ? 4 * multiplier : 8 * multiplier\n };\n const contentSpacings = {\n paddingRight: isV3 ? onClose ? 34 : 0 : onClose ? 32 : 4\n };\n const labelTextStyle = {\n color: textColor,\n ...(isV3 ? theme.fonts.labelLarge : theme.fonts.regular)\n };\n return /*#__PURE__*/React.createElement(Surface, _extends({\n style: [styles.container, isV3 && (isOutlined ? styles.md3OutlineContainer : styles.md3FlatContainer), !theme.isV3 && {\n elevation: elevationStyle\n }, {\n backgroundColor: selected ? selectedBackgroundColor : backgroundColor,\n borderColor,\n borderRadius\n }, style]\n }, theme.isV3 && {\n elevation: elevationStyle\n }, rest, {\n testID: `${testID}-container`,\n theme: theme\n }), /*#__PURE__*/React.createElement(TouchableRipple, {\n borderless: true,\n background: background,\n style: [{\n borderRadius\n }, styles.touchable],\n onPress: onPress,\n onLongPress: onLongPress,\n onPressIn: hasPassedTouchHandler ? handlePressIn : undefined,\n onPressOut: hasPassedTouchHandler ? handlePressOut : undefined,\n delayLongPress: delayLongPress,\n rippleColor: rippleColor,\n disabled: disabled,\n accessibilityLabel: accessibilityLabel,\n accessibilityRole: \"button\",\n accessibilityState: accessibilityState,\n testID: testID,\n theme: theme\n }, /*#__PURE__*/React.createElement(View, {\n style: [styles.content, isV3 && styles.md3Content, contentSpacings]\n }, avatar && !icon ? /*#__PURE__*/React.createElement(View, {\n style: [styles.avatarWrapper, isV3 && styles.md3AvatarWrapper, disabled && {\n opacity\n }]\n }, /*#__PURE__*/React.isValidElement(avatar) ? /*#__PURE__*/React.cloneElement(avatar, {\n style: [styles.avatar, avatar.props.style]\n }) : avatar) : null, icon || selected && showSelectedCheck ? /*#__PURE__*/React.createElement(View, {\n style: [styles.icon, isV3 && styles.md3Icon, avatar ? [styles.avatar, styles.avatarSelected, isV3 && selected && styles.md3SelectedIcon] : null]\n }, icon ? /*#__PURE__*/React.createElement(Icon, {\n source: icon,\n color: avatar ? white : !disabled && theme.isV3 ? theme.colors.primary : iconColor,\n size: 18,\n theme: theme\n }) : /*#__PURE__*/React.createElement(MaterialCommunityIcon, {\n name: \"check\",\n color: avatar ? white : iconColor,\n size: 18,\n direction: \"ltr\"\n })) : null, /*#__PURE__*/React.createElement(Text, {\n variant: \"labelLarge\",\n selectable: false,\n numberOfLines: 1,\n style: [isV3 ? styles.md3LabelText : styles.labelText, labelTextStyle, labelSpacings, textStyle],\n ellipsizeMode: ellipsizeMode,\n maxFontSizeMultiplier: maxFontSizeMultiplier\n }, children))), onClose ? /*#__PURE__*/React.createElement(View, {\n style: styles.closeButtonStyle\n }, /*#__PURE__*/React.createElement(Pressable, {\n onPress: onClose,\n disabled: disabled,\n accessibilityRole: \"button\",\n accessibilityLabel: closeIconAccessibilityLabel\n }, /*#__PURE__*/React.createElement(View, {\n style: [styles.icon, styles.closeIcon, isV3 && styles.md3CloseIcon]\n }, closeIcon ? /*#__PURE__*/React.createElement(Icon, {\n source: closeIcon,\n color: iconColor,\n size: iconSize\n }) : /*#__PURE__*/React.createElement(MaterialCommunityIcon, {\n name: isV3 ? 'close' : 'close-circle',\n size: iconSize,\n color: iconColor,\n direction: \"ltr\"\n })))) : null);\n};\nconst styles = StyleSheet.create({\n container: {\n borderWidth: StyleSheet.hairlineWidth,\n borderStyle: 'solid',\n flexDirection: Platform.select({\n default: 'column',\n web: 'row'\n })\n },\n md3OutlineContainer: {\n borderWidth: 1\n },\n md3FlatContainer: {\n borderWidth: 0\n },\n content: {\n flexDirection: 'row',\n alignItems: 'center',\n paddingLeft: 4,\n position: 'relative'\n },\n md3Content: {\n paddingLeft: 0\n },\n icon: {\n padding: 4,\n alignSelf: 'center'\n },\n md3Icon: {\n paddingLeft: 8,\n paddingRight: 0\n },\n closeIcon: {\n marginRight: 4\n },\n md3CloseIcon: {\n marginRight: 8,\n padding: 0\n },\n labelText: {\n minHeight: 24,\n lineHeight: 24,\n textAlignVertical: 'center',\n marginVertical: 4\n },\n md3LabelText: {\n textAlignVertical: 'center',\n marginVertical: 6\n },\n avatar: {\n width: 24,\n height: 24,\n borderRadius: 12\n },\n avatarWrapper: {\n marginRight: 4\n },\n md3AvatarWrapper: {\n marginLeft: 4,\n marginRight: 0\n },\n md3SelectedIcon: {\n paddingLeft: 4\n },\n // eslint-disable-next-line react-native/no-color-literals\n avatarSelected: {\n position: 'absolute',\n top: 4,\n left: 4,\n backgroundColor: 'rgba(0, 0, 0, .29)'\n },\n closeButtonStyle: {\n position: 'absolute',\n right: 0,\n height: '100%',\n justifyContent: 'center',\n alignItems: 'center'\n },\n touchable: {\n width: '100%'\n }\n});\nexport default Chip;\n//# sourceMappingURL=Chip.js.map","import { Platform } from 'react-native';\nimport setColor from 'color';\nimport { grey400, grey800, grey50, grey700, white, black } from '../../styles/themes/v2/colors';\nconst getCheckedColor = _ref => {\n let {\n theme,\n color\n } = _ref;\n if (color) {\n return color;\n }\n if (theme.isV3) {\n return theme.colors.primary;\n }\n return theme.colors.accent;\n};\nconst getThumbTintColor = _ref2 => {\n let {\n theme,\n disabled,\n value,\n checkedColor\n } = _ref2;\n const isIOS = Platform.OS === 'ios';\n if (isIOS) {\n return undefined;\n }\n if (disabled) {\n if (theme.dark) {\n return grey800;\n }\n return grey400;\n }\n if (value) {\n return checkedColor;\n }\n if (theme.dark) {\n return grey400;\n }\n return grey50;\n};\nconst getOnTintColor = _ref3 => {\n let {\n theme,\n disabled,\n value,\n checkedColor\n } = _ref3;\n const isIOS = Platform.OS === 'ios';\n if (isIOS) {\n return checkedColor;\n }\n if (disabled) {\n if (theme.dark) {\n if (theme.isV3) {\n return setColor(white).alpha(0.06).rgb().string();\n }\n return setColor(white).alpha(0.1).rgb().string();\n }\n return setColor(black).alpha(0.12).rgb().string();\n }\n if (value) {\n return setColor(checkedColor).alpha(0.5).rgb().string();\n }\n if (theme.dark) {\n return grey700;\n }\n return 'rgb(178, 175, 177)';\n};\nexport const getSwitchColor = _ref4 => {\n let {\n theme,\n disabled,\n value,\n color\n } = _ref4;\n const checkedColor = getCheckedColor({\n theme,\n color\n });\n return {\n onTintColor: getOnTintColor({\n theme,\n disabled,\n value,\n checkedColor\n }),\n thumbTintColor: getThumbTintColor({\n theme,\n disabled,\n value,\n checkedColor\n }),\n checkedColor\n };\n};\n//# sourceMappingURL=utils.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { NativeModules, Platform, Switch as NativeSwitch } from 'react-native';\nimport { getSwitchColor } from './utils';\nimport { useInternalTheme } from '../../core/theming';\nconst version = NativeModules.PlatformConstants ? NativeModules.PlatformConstants.reactNativeVersion : undefined;\n/**\n * Switch is a visual toggle between two mutually exclusive states — on and off.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Switch } from 'react-native-paper';\n *\n * const MyComponent = () => {\n * const [isSwitchOn, setIsSwitchOn] = React.useState(false);\n *\n * const onToggleSwitch = () => setIsSwitchOn(!isSwitchOn);\n *\n * return ;\n * };\n *\n * export default MyComponent;\n * ```\n */\nconst Switch = _ref => {\n let {\n value,\n disabled,\n onValueChange,\n color,\n theme: themeOverrides,\n ...rest\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const {\n checkedColor,\n onTintColor,\n thumbTintColor\n } = getSwitchColor({\n theme,\n disabled,\n value,\n color\n });\n const props = version && version.major === 0 && version.minor <= 56 ? {\n onTintColor,\n thumbTintColor\n } : Platform.OS === 'web' ? {\n activeTrackColor: onTintColor,\n thumbColor: thumbTintColor,\n activeThumbColor: checkedColor\n } : {\n thumbColor: thumbTintColor,\n trackColor: {\n true: onTintColor,\n false: onTintColor\n }\n };\n return /*#__PURE__*/React.createElement(NativeSwitch, _extends({\n value: value,\n disabled: disabled,\n onValueChange: disabled ? undefined : onValueChange\n }, props, rest));\n};\nexport default Switch;\n//# sourceMappingURL=Switch.js.map","import { Dimensions } from 'react-native';\n/**\n * Return true when the tooltip center x-coordinate relative to the wrapped element is negative.\n * The tooltip will be placed at the starting x-coordinate from the wrapped element.\n */\nconst overflowLeft = center => {\n return center < 0;\n};\n\n/**\n * Return true when the tooltip center x-coordinate + tooltip width is greater than the layout width\n * The tooltip width will grow from right to left relative to the wrapped element.\n */\nconst overflowRight = (center, tooltipWidth) => {\n const {\n width: layoutWidth\n } = Dimensions.get('window');\n return center + tooltipWidth > layoutWidth;\n};\n\n/**\n * Return true when the children y-coordinate + its height + tooltip height is greater than the layout height.\n * The tooltip will be placed at the top of the wrapped element.\n */\nconst overflowBottom = (childrenY, childrenHeight, tooltipHeight) => {\n const {\n height: layoutHeight\n } = Dimensions.get('window');\n return childrenY + childrenHeight + tooltipHeight > layoutHeight;\n};\nconst getTooltipXPosition = (_ref, _ref2) => {\n let {\n pageX: childrenX,\n width: childrenWidth\n } = _ref;\n let {\n width: tooltipWidth\n } = _ref2;\n // when the children use position absolute the childrenWidth is measured as 0,\n // so it's best to anchor the tooltip at the start of the children\n const center = childrenWidth > 0 ? childrenX + (childrenWidth - tooltipWidth) / 2 : childrenX;\n if (overflowLeft(center)) return childrenX;\n if (overflowRight(center, tooltipWidth)) return childrenX + childrenWidth - tooltipWidth;\n return center;\n};\nconst getTooltipYPosition = (_ref3, _ref4) => {\n let {\n pageY: childrenY,\n height: childrenHeight\n } = _ref3;\n let {\n height: tooltipHeight\n } = _ref4;\n if (overflowBottom(childrenY, childrenHeight, tooltipHeight)) return childrenY - tooltipHeight;\n return childrenY + childrenHeight;\n};\nconst getChildrenMeasures = (style, measures) => {\n const {\n position,\n top,\n bottom,\n left,\n right\n } = Array.isArray(style) ? style.reduce((acc, current) => ({\n ...acc,\n ...current\n })) : style;\n if (position === 'absolute') {\n let pageX = 0;\n let pageY = measures.pageY;\n let height = 0;\n let width = 0;\n if (typeof left === 'number') {\n pageX = left;\n width = 0;\n }\n if (typeof right === 'number') {\n pageX = measures.width - right;\n width = 0;\n }\n if (typeof top === 'number') {\n pageY = pageY + top;\n }\n if (typeof bottom === 'number') {\n pageY = pageY - bottom;\n }\n return {\n pageX,\n pageY,\n width,\n height\n };\n }\n return measures;\n};\nexport const getTooltipPosition = (_ref5, component) => {\n let {\n children,\n tooltip,\n measured\n } = _ref5;\n if (!measured) return {};\n let measures = children;\n if (component.props.style) {\n measures = getChildrenMeasures(component.props.style, children);\n }\n return {\n left: getTooltipXPosition(measures, tooltip),\n top: getTooltipYPosition(measures, tooltip)\n };\n};\n//# sourceMappingURL=utils.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { Dimensions, View, StyleSheet, Platform, Pressable } from 'react-native';\nimport { getTooltipPosition } from './utils';\nimport { useInternalTheme } from '../../core/theming';\nimport { addEventListener } from '../../utils/addEventListener';\nimport Portal from '../Portal/Portal';\nimport Text from '../Typography/Text';\n/**\n * Tooltips display informative text when users hover over, focus on, or tap an element.\n *\n * Plain tooltips, when activated, display a text label identifying an element, such as a description of its function. Tooltips should include only short, descriptive text and avoid restating visible UI text.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { IconButton, Tooltip } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * \n * {}} />\n * \n * );\n *\n * export default MyComponent;\n * ```\n */\nconst Tooltip = _ref => {\n let {\n children,\n enterTouchDelay = 500,\n leaveTouchDelay = 1500,\n title,\n theme: themeOverrides,\n titleMaxFontSizeMultiplier,\n ...rest\n } = _ref;\n const isWeb = Platform.OS === 'web';\n const theme = useInternalTheme(themeOverrides);\n const [visible, setVisible] = React.useState(false);\n const [measurement, setMeasurement] = React.useState({\n children: {},\n tooltip: {},\n measured: false\n });\n const showTooltipTimer = React.useRef([]);\n const hideTooltipTimer = React.useRef([]);\n const childrenWrapperRef = React.useRef();\n const touched = React.useRef(false);\n React.useEffect(() => {\n return () => {\n if (showTooltipTimer.current.length) {\n showTooltipTimer.current.forEach(t => clearTimeout(t));\n showTooltipTimer.current = [];\n }\n if (hideTooltipTimer.current.length) {\n hideTooltipTimer.current.forEach(t => clearTimeout(t));\n hideTooltipTimer.current = [];\n }\n };\n }, []);\n React.useEffect(() => {\n const subscription = addEventListener(Dimensions, 'change', () => setVisible(false));\n return () => subscription.remove();\n }, []);\n const handleOnLayout = _ref2 => {\n let {\n nativeEvent: {\n layout\n }\n } = _ref2;\n childrenWrapperRef.current.measure((_x, _y, width, height, pageX, pageY) => {\n setMeasurement({\n children: {\n pageX,\n pageY,\n height,\n width\n },\n tooltip: {\n ...layout\n },\n measured: true\n });\n });\n };\n const handleTouchStart = () => {\n if (hideTooltipTimer.current.length) {\n hideTooltipTimer.current.forEach(t => clearTimeout(t));\n hideTooltipTimer.current = [];\n }\n if (isWeb) {\n let id = setTimeout(() => {\n touched.current = true;\n setVisible(true);\n }, enterTouchDelay);\n showTooltipTimer.current.push(id);\n } else {\n touched.current = true;\n setVisible(true);\n }\n };\n const handleTouchEnd = () => {\n touched.current = false;\n if (showTooltipTimer.current.length) {\n showTooltipTimer.current.forEach(t => clearTimeout(t));\n showTooltipTimer.current = [];\n }\n let id = setTimeout(() => {\n setVisible(false);\n setMeasurement({\n children: {},\n tooltip: {},\n measured: false\n });\n }, leaveTouchDelay);\n hideTooltipTimer.current.push(id);\n };\n const mobilePressProps = {\n onPress: React.useCallback(() => {\n if (touched.current) {\n return null;\n } else {\n var _children$props$onPre, _children$props;\n if (children.props.disabled) return null;\n return (_children$props$onPre = (_children$props = children.props).onPress) === null || _children$props$onPre === void 0 ? void 0 : _children$props$onPre.call(_children$props);\n }\n }, [children.props]),\n onLongPress: () => handleTouchStart(),\n onPressOut: () => handleTouchEnd(),\n delayLongPress: enterTouchDelay\n };\n const webPressProps = {\n onHoverIn: () => {\n var _children$props$onHov, _children$props2;\n handleTouchStart();\n (_children$props$onHov = (_children$props2 = children.props).onHoverIn) === null || _children$props$onHov === void 0 ? void 0 : _children$props$onHov.call(_children$props2);\n },\n onHoverOut: () => {\n var _children$props$onHov2, _children$props3;\n handleTouchEnd();\n (_children$props$onHov2 = (_children$props3 = children.props).onHoverOut) === null || _children$props$onHov2 === void 0 ? void 0 : _children$props$onHov2.call(_children$props3);\n }\n };\n return /*#__PURE__*/React.createElement(React.Fragment, null, visible && /*#__PURE__*/React.createElement(Portal, null, /*#__PURE__*/React.createElement(View, {\n onLayout: handleOnLayout,\n style: [styles.tooltip, {\n backgroundColor: theme.isV3 ? theme.colors.onSurface : theme.colors.tooltip,\n ...getTooltipPosition(measurement, children),\n borderRadius: theme.roundness,\n ...(measurement.measured ? styles.visible : styles.hidden)\n }],\n testID: \"tooltip-container\"\n }, /*#__PURE__*/React.createElement(Text, {\n accessibilityLiveRegion: \"polite\",\n numberOfLines: 1,\n selectable: false,\n variant: \"labelLarge\",\n style: {\n color: theme.colors.surface\n },\n maxFontSizeMultiplier: titleMaxFontSizeMultiplier\n }, title))), /*#__PURE__*/React.createElement(Pressable, _extends({\n ref: childrenWrapperRef,\n style: styles.pressContainer\n }, isWeb ? webPressProps : mobilePressProps), /*#__PURE__*/React.cloneElement(children, {\n ...rest,\n ...(isWeb ? webPressProps : mobilePressProps)\n })));\n};\nTooltip.displayName = 'Tooltip';\nconst styles = StyleSheet.create({\n tooltip: {\n alignSelf: 'flex-start',\n justifyContent: 'center',\n paddingHorizontal: 16,\n height: 32,\n maxHeight: 32\n },\n visible: {\n opacity: 1\n },\n hidden: {\n opacity: 0\n },\n pressContainer: {\n ...(Platform.OS === 'web' && {\n cursor: 'default'\n })\n }\n});\nexport default Tooltip;\n//# sourceMappingURL=Tooltip.js.map","import * as React from 'react';\nimport { Animated } from 'react-native';\n\ntype TransitionProgressContextBody = {\n progress: Animated.Value;\n closing: Animated.Value;\n goingForward: Animated.Value;\n};\n\nexport default React.createContext(\n undefined\n);\n","import * as React from 'react';\n\nimport TransitionProgressContext from './TransitionProgressContext';\n\nexport default function useTransitionProgress() {\n const progress = React.useContext(TransitionProgressContext);\n\n if (progress === undefined) {\n throw new Error(\n \"Couldn't find values for transition progress. Are you inside a screen in Native Stack?\"\n );\n }\n\n return progress;\n}\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _createTheming = _interopRequireDefault(require(\"./createTheming\"));\n\nexports.createTheming = _createTheming.default;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n//# sourceMappingURL=index.js.map","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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) Meta Platforms, Inc. and affiliates.\n *\n * This source 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) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 Animation from './Animation';\nimport { shouldUseNativeDriver } from '../NativeAnimatedHelper';\n\nclass DecayAnimation extends Animation {\n constructor(config) {\n var _config$deceleration, _config$isInteraction, _config$iterations;\n\n super();\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 }\n\n __getNativeAnimationConfig() {\n return {\n type: 'decay',\n deceleration: this._deceleration,\n velocity: this._velocity,\n iterations: this.__iterations\n };\n }\n\n 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 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 stop() {\n super.stop();\n this.__active = false;\n global.cancelAnimationFrame(this._animationFrame);\n\n this.__debouncedOnEnd({\n finished: false\n });\n }\n\n}\n\nexport default DecayAnimation;","/**\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'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.styleq = void 0;\nvar cache = new WeakMap();\nvar compiledKey = '$$css';\n\nfunction createStyleq(options) {\n var disableCache;\n var disableMix;\n var transform;\n\n if (options != null) {\n disableCache = options.disableCache === true;\n disableMix = options.disableMix === true;\n transform = options.transform;\n }\n\n return function styleq() {\n // Keep track of property commits to the className\n var definedProperties = []; // The className and inline style to build up\n\n var className = '';\n var inlineStyle = null; // The current position in the cache graph\n\n var nextCache = disableCache ? null : cache; // This way of creating an array from arguments is fastest\n\n var styles = new Array(arguments.length);\n\n for (var i = 0; i < arguments.length; i++) {\n styles[i] = arguments[i];\n } // Iterate over styles from last to first\n\n\n while (styles.length > 0) {\n var possibleStyle = styles.pop(); // Skip empty items\n\n if (possibleStyle == null || possibleStyle === false) {\n continue;\n } // Push nested styles back onto the stack to be processed\n\n\n if (Array.isArray(possibleStyle)) {\n for (var _i = 0; _i < possibleStyle.length; _i++) {\n styles.push(possibleStyle[_i]);\n }\n\n continue;\n } // Process an individual style object\n\n\n var style = transform != null ? transform(possibleStyle) : possibleStyle;\n\n if (style.$$css) {\n // Build up the class names defined by this object\n var classNameChunk = ''; // Check the cache to see if we've already done this work\n\n if (nextCache != null && nextCache.has(style)) {\n // Cache: read\n var cacheEntry = nextCache.get(style);\n\n if (cacheEntry != null) {\n classNameChunk = cacheEntry[0]; // $FlowIgnore\n\n definedProperties.push.apply(definedProperties, cacheEntry[1]);\n nextCache = cacheEntry[2];\n }\n } // Update the chunks with data from this object\n else {\n // The properties defined by this object\n var definedPropertiesChunk = [];\n\n for (var prop in style) {\n var value = style[prop];\n if (prop === compiledKey) continue; // Each property value is used as an HTML class name\n // { 'debug.string': 'debug.string', opacity: 's-jskmnoqp' }\n\n if (typeof value === 'string' || value === null) {\n // Only add to chunks if this property hasn't already been seen\n if (!definedProperties.includes(prop)) {\n definedProperties.push(prop);\n\n if (nextCache != null) {\n definedPropertiesChunk.push(prop);\n }\n\n if (typeof value === 'string') {\n classNameChunk += classNameChunk ? ' ' + value : value;\n }\n }\n } // If we encounter a value that isn't a string or `null`\n else {\n console.error(\"styleq: \".concat(prop, \" typeof \").concat(String(value), \" is not \\\"string\\\" or \\\"null\\\".\"));\n }\n } // Cache: write\n\n\n if (nextCache != null) {\n // Create the next WeakMap for this sequence of styles\n var weakMap = new WeakMap();\n nextCache.set(style, [classNameChunk, definedPropertiesChunk, weakMap]);\n nextCache = weakMap;\n }\n } // Order of classes in chunks matches property-iteration order of style\n // object. Order of chunks matches passed order of styles from first to\n // last (which we iterate over in reverse).\n\n\n if (classNameChunk) {\n className = className ? classNameChunk + ' ' + className : classNameChunk;\n }\n } // ----- DYNAMIC: Process inline style object -----\n else {\n if (disableMix) {\n if (inlineStyle == null) {\n inlineStyle = {};\n }\n\n inlineStyle = Object.assign({}, style, inlineStyle);\n } else {\n var subStyle = null;\n\n for (var _prop in style) {\n var _value = style[_prop];\n\n if (_value !== undefined) {\n if (!definedProperties.includes(_prop)) {\n if (_value != null) {\n if (inlineStyle == null) {\n inlineStyle = {};\n }\n\n if (subStyle == null) {\n subStyle = {};\n }\n\n subStyle[_prop] = _value;\n }\n\n definedProperties.push(_prop); // Cache is unnecessary overhead if results can't be reused.\n\n nextCache = null;\n }\n }\n }\n\n if (subStyle != null) {\n inlineStyle = Object.assign(subStyle, inlineStyle);\n }\n }\n }\n }\n\n var styleProps = [className, inlineStyle];\n return styleProps;\n };\n}\n\nvar styleq = createStyleq();\nexports.styleq = styleq;\nstyleq.factory = createStyleq;","/**\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\nmodule.exports = require('./dist/transform-localize-style');\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\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;\nfunction backgroundClip() {\n return null;\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = crossFade;\n\nvar _cssInJsUtils = require('css-in-js-utils');\n\nvar CROSS_FADE_REGEX = /cross-fade\\(/g;\n// http://caniuse.com/#search=cross-fade\nvar prefixes = ['-webkit-', ''];\n\nfunction crossFade(property, value) {\n if (typeof value === 'string' && !(0, _cssInJsUtils.isPrefixedValue)(value) && value.indexOf('cross-fade(') !== -1) {\n return prefixes.map(function (prefix) {\n return value.replace(CROSS_FADE_REGEX, 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 _cssInJsUtils = require('css-in-js-utils');\n\nvar FILTER_REGEX = /filter\\(/g;\n// http://caniuse.com/#feat=css-filter-function\nvar prefixes = ['-webkit-', ''];\n\nfunction filter(property, value) {\n if (typeof value === 'string' && !(0, _cssInJsUtils.isPrefixedValue)(value) && value.indexOf('filter(') !== -1) {\n return prefixes.map(function (prefix) {\n return value.replace(FILTER_REGEX, prefix + 'filter(');\n });\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-', ''];\n\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\nvar prefixMapping = {\n Webkit: '-webkit-',\n Moz: '-moz-',\n ms: '-ms-'\n};\n\nfunction prefixValue(value, propertyPrefixMap) {\n if ((0, _isPrefixedValue2.default)(value)) {\n return value;\n }\n\n // only split multi values, not cubic beziers\n var multipleValues = value.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g);\n\n for (var i = 0, len = multipleValues.length; i < len; ++i) {\n var singleValue = multipleValues[i];\n var values = [singleValue];\n for (var property in propertyPrefixMap) {\n var dashCaseProperty = (0, _hyphenateProperty2.default)(property);\n\n if (singleValue.indexOf(dashCaseProperty) > -1 && dashCaseProperty !== 'order') {\n var prefixes = propertyPrefixMap[property];\n for (var j = 0, pLen = prefixes.length; j < pLen; ++j) {\n // join all prefixes and create a new value\n values.unshift(singleValue.replace(dashCaseProperty, prefixMapping[prefixes[j]] + dashCaseProperty));\n }\n }\n }\n\n multipleValues[i] = values.join(',');\n }\n\n return multipleValues.join(',');\n}\n\nfunction transition(property, value, style, propertyPrefixMap) {\n // also check for already prefixed transitions\n if (typeof value === 'string' && properties.hasOwnProperty(property)) {\n var outputValue = prefixValue(value, propertyPrefixMap);\n // if the property is already prefixed\n var webkitOutput = outputValue.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g).filter(function (val) {\n return !/-moz-|-ms-/.test(val);\n }).join(',');\n\n if (property.indexOf('Webkit') > -1) {\n return webkitOutput;\n }\n\n var mozOutput = outputValue.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g).filter(function (val) {\n return !/-webkit-|-ms-/.test(val);\n }).join(',');\n\n if (property.indexOf('Moz') > -1) {\n return mozOutput;\n }\n\n style['Webkit' + (0, _capitalizeString2.default)(property)] = webkitOutput;\n style['Moz' + (0, _capitalizeString2.default)(property)] = mozOutput;\n return outputValue;\n }\n}","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar React = require('react');\nvar factory = require('./factory');\n\nif (typeof React === 'undefined') {\n throw Error(\n 'create-react-class could not find the React object. If you are using script tags, ' +\n 'make sure that React is being loaded before create-react-class.'\n );\n}\n\n// Hack to grab NoopUpdateQueue from isomorphic React\nvar ReactNoopUpdateQueue = new React.Component().updater;\n\nmodule.exports = factory(\n React.Component,\n React.isValidElement,\n ReactNoopUpdateQueue\n);\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n'use strict';\n\nvar emptyFunction = require(\"./emptyFunction\");\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\n\nfunction printWarning(format) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n}\n\nvar warning = process.env.NODE_ENV !== \"production\" ? function (condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(void 0, [format].concat(args));\n }\n} : emptyFunction;\nmodule.exports = warning;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source 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 _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\n\nclass Info {\n constructor() {\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\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\nclass FillRateHelper {\n static 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: () => {\n _listeners = _listeners.filter(listener => callback !== listener);\n }\n };\n }\n\n static setSampleRate(sampleRate) {\n _sampleRate = sampleRate;\n }\n\n static setMinSampleCount(minSampleCount) {\n _minSampleCount = minSampleCount;\n }\n\n constructor(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 activate() {\n if (this._enabled && this._samplesStartTime == null) {\n DEBUG && console.debug('FillRateHelper: activate');\n this._samplesStartTime = global.performance.now();\n }\n }\n\n 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\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,\n info\n });\n }\n\n _listeners.forEach(listener => listener(info));\n\n this._resetData();\n }\n\n 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 enabled() {\n return this._enabled;\n }\n\n _resetData() {\n this._anyBlankStartTime = null;\n this._info = new Info();\n this._mostlyBlankStartTime = null;\n this._samplesStartTime = null;\n }\n\n}\n\nexport default FillRateHelper;","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","/* global define */\n(function (root, factory) {\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define([], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n } else {\n root.compareVersions = factory();\n }\n}(this, function () {\n\n var semver = /^v?(?:\\d+)(\\.(?:[x*]|\\d+)(\\.(?:[x*]|\\d+)(\\.(?:[x*]|\\d+))?(?:-[\\da-z\\-]+(?:\\.[\\da-z\\-]+)*)?(?:\\+[\\da-z\\-]+(?:\\.[\\da-z\\-]+)*)?)?)?$/i;\n\n function indexOrEnd(str, q) {\n return str.indexOf(q) === -1 ? str.length : str.indexOf(q);\n }\n\n function split(v) {\n var c = v.replace(/^v/, '').replace(/\\+.*$/, '');\n var patchIndex = indexOrEnd(c, '-');\n var arr = c.substring(0, patchIndex).split('.');\n arr.push(c.substring(patchIndex + 1));\n return arr;\n }\n\n function tryParse(v) {\n return isNaN(Number(v)) ? v : Number(v);\n }\n\n function validate(version) {\n if (typeof version !== 'string') {\n throw new TypeError('Invalid argument expected string');\n }\n if (!semver.test(version)) {\n throw new Error('Invalid argument not valid semver (\\''+version+'\\' received)');\n }\n }\n\n function compareVersions(v1, v2) {\n [v1, v2].forEach(validate);\n\n var s1 = split(v1);\n var s2 = split(v2);\n\n for (var i = 0; i < Math.max(s1.length - 1, s2.length - 1); i++) {\n var n1 = parseInt(s1[i] || 0, 10);\n var n2 = parseInt(s2[i] || 0, 10);\n\n if (n1 > n2) return 1;\n if (n2 > n1) return -1;\n }\n\n var sp1 = s1[s1.length - 1];\n var sp2 = s2[s2.length - 1];\n\n if (sp1 && sp2) {\n var p1 = sp1.split('.').map(tryParse);\n var p2 = sp2.split('.').map(tryParse);\n\n for (i = 0; i < Math.max(p1.length, p2.length); i++) {\n if (p1[i] === undefined || typeof p2[i] === 'string' && typeof p1[i] === 'number') return -1;\n if (p2[i] === undefined || typeof p1[i] === 'string' && typeof p2[i] === 'number') return 1;\n\n if (p1[i] > p2[i]) return 1;\n if (p2[i] > p1[i]) return -1;\n }\n } else if (sp1 || sp2) {\n return sp1 ? -1 : 1;\n }\n\n return 0;\n };\n\n var allowedOperators = [\n '>',\n '>=',\n '=',\n '<',\n '<='\n ];\n\n var operatorResMap = {\n '>': [1],\n '>=': [0, 1],\n '=': [0],\n '<=': [-1, 0],\n '<': [-1]\n };\n\n function validateOperator(op) {\n if (typeof op !== 'string') {\n throw new TypeError('Invalid operator type, expected string but got ' + typeof op);\n }\n if (allowedOperators.indexOf(op) === -1) {\n throw new TypeError('Invalid operator, expected one of ' + allowedOperators.join('|'));\n }\n }\n\n compareVersions.validate = function(version) {\n return typeof version === 'string' && semver.test(version);\n }\n\n compareVersions.compare = function (v1, v2, operator) {\n // Validate operator\n validateOperator(operator);\n\n // since result of compareVersions can only be -1 or 0 or 1\n // a simple map can be used to replace switch\n var res = compareVersions(v1, v2);\n return operatorResMap[operator].indexOf(res) > -1;\n }\n\n return compareVersions;\n}));\n","import { NativeModules } from 'react-native';\n\nimport { getAssetByID } from './AssetRegistry';\nimport AssetSourceResolver, { ResolvedAssetSource } from './AssetSourceResolver';\n\ndeclare let nativeExtensions: { SourceCode?: { scriptURL: string } } | undefined;\n\nlet _customSourceTransformer;\nlet _serverURL: string | undefined | null;\nlet _sourceCodeScriptURL: string | undefined | null;\n\nfunction getSourceCodeScriptURL(): string | undefined | null {\n if (_sourceCodeScriptURL) {\n return _sourceCodeScriptURL;\n }\n\n let sourceCode = typeof nativeExtensions !== 'undefined' ? nativeExtensions.SourceCode : null;\n if (!sourceCode) {\n sourceCode = NativeModules?.SourceCode;\n }\n _sourceCodeScriptURL = sourceCode?.scriptURL;\n return _sourceCodeScriptURL;\n}\n\nfunction getDevServerURL(): string | null {\n if (_serverURL === undefined) {\n const sourceCodeScriptURL = getSourceCodeScriptURL();\n const match = sourceCodeScriptURL && sourceCodeScriptURL.match(/^https?:\\/\\/.*?\\//);\n if (match) {\n // jsBundle was loaded from network\n _serverURL = match[0];\n } else {\n // jsBundle was loaded from file\n _serverURL = null;\n }\n }\n return _serverURL;\n}\n\nexport function setCustomSourceTransformer(\n transformer: (resolver: AssetSourceResolver) => ResolvedAssetSource\n): void {\n _customSourceTransformer = transformer;\n}\n\n/**\n * `source` is either a number (opaque type returned by require('./foo.png'))\n * or an `ImageSource` like { uri: '' }\n */\nexport default function resolveAssetSource(source: any): ResolvedAssetSource | undefined {\n if (typeof source === 'object') {\n return source;\n }\n\n const asset = getAssetByID(source);\n if (!asset) {\n return undefined;\n }\n\n const resolver = new AssetSourceResolver(getDevServerURL(), null, asset);\n if (_customSourceTransformer) {\n return _customSourceTransformer(resolver);\n }\n return resolver.defaultAsset();\n}\n\nObject.defineProperty(resolveAssetSource, 'setCustomSourceTransformer', {\n get() {\n return setCustomSourceTransformer;\n },\n});\n\nexport const { pickScale } = AssetSourceResolver;\n","/* Font Face Observer v2.3.0 - © Bram Stein. License: BSD-3-Clause */(function(){function p(a,c){document.addEventListener?a.addEventListener(\"scroll\",c,!1):a.attachEvent(\"scroll\",c)}function u(a){document.body?a():document.addEventListener?document.addEventListener(\"DOMContentLoaded\",function b(){document.removeEventListener(\"DOMContentLoaded\",b);a()}):document.attachEvent(\"onreadystatechange\",function g(){if(\"interactive\"==document.readyState||\"complete\"==document.readyState)document.detachEvent(\"onreadystatechange\",g),a()})};function w(a){this.g=document.createElement(\"div\");this.g.setAttribute(\"aria-hidden\",\"true\");this.g.appendChild(document.createTextNode(a));this.h=document.createElement(\"span\");this.i=document.createElement(\"span\");this.m=document.createElement(\"span\");this.j=document.createElement(\"span\");this.l=-1;this.h.style.cssText=\"max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;\";this.i.style.cssText=\"max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;\";\nthis.j.style.cssText=\"max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;\";this.m.style.cssText=\"display:inline-block;width:200%;height:200%;font-size:16px;max-width:none;\";this.h.appendChild(this.m);this.i.appendChild(this.j);this.g.appendChild(this.h);this.g.appendChild(this.i)}\nfunction x(a,c){a.g.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:\"+c+\";\"}function B(a){var c=a.g.offsetWidth,b=c+100;a.j.style.width=b+\"px\";a.i.scrollLeft=b;a.h.scrollLeft=a.h.scrollWidth+100;return a.l!==c?(a.l=c,!0):!1}function C(a,c){function b(){var e=g;B(e)&&null!==e.g.parentNode&&c(e.l)}var g=a;p(a.h,b);p(a.i,b);B(a)};function D(a,c,b){c=c||{};b=b||window;this.family=a;this.style=c.style||\"normal\";this.weight=c.weight||\"normal\";this.stretch=c.stretch||\"normal\";this.context=b}var E=null,F=null,G=null,H=null;function I(a){null===F&&(M(a)&&/Apple/.test(window.navigator.vendor)?(a=/AppleWebKit\\/([0-9]+)(?:\\.([0-9]+))(?:\\.([0-9]+))/.exec(window.navigator.userAgent),F=!!a&&603>parseInt(a[1],10)):F=!1);return F}function M(a){null===H&&(H=!!a.document.fonts);return H}\nfunction N(a,c){var b=a.style,g=a.weight;if(null===G){var e=document.createElement(\"div\");try{e.style.font=\"condensed 100px sans-serif\"}catch(q){}G=\"\"!==e.style.font}return[b,g,G?a.stretch:\"\",\"100px\",c].join(\" \")}\nD.prototype.load=function(a,c){var b=this,g=a||\"BESbswy\",e=0,q=c||3E3,J=(new Date).getTime();return new Promise(function(K,L){if(M(b.context)&&!I(b.context)){var O=new Promise(function(r,t){function h(){(new Date).getTime()-J>=q?t(Error(\"\"+q+\"ms timeout exceeded\")):b.context.document.fonts.load(N(b,'\"'+b.family+'\"'),g).then(function(n){1<=n.length?r():setTimeout(h,25)},t)}h()}),P=new Promise(function(r,t){e=setTimeout(function(){t(Error(\"\"+q+\"ms timeout exceeded\"))},q)});Promise.race([P,O]).then(function(){clearTimeout(e);\nK(b)},L)}else u(function(){function r(){var d;if(d=-1!=k&&-1!=l||-1!=k&&-1!=m||-1!=l&&-1!=m)(d=k!=l&&k!=m&&l!=m)||(null===E&&(d=/AppleWebKit\\/([0-9]+)(?:\\.([0-9]+))/.exec(window.navigator.userAgent),E=!!d&&(536>parseInt(d[1],10)||536===parseInt(d[1],10)&&11>=parseInt(d[2],10))),d=E&&(k==y&&l==y&&m==y||k==z&&l==z&&m==z||k==A&&l==A&&m==A)),d=!d;d&&(null!==f.parentNode&&f.parentNode.removeChild(f),clearTimeout(e),K(b))}function t(){if((new Date).getTime()-J>=q)null!==f.parentNode&&f.parentNode.removeChild(f),\nL(Error(\"\"+q+\"ms timeout exceeded\"));else{var d=b.context.document.hidden;if(!0===d||void 0===d)k=h.g.offsetWidth,l=n.g.offsetWidth,m=v.g.offsetWidth,r();e=setTimeout(t,50)}}var h=new w(g),n=new w(g),v=new w(g),k=-1,l=-1,m=-1,y=-1,z=-1,A=-1,f=document.createElement(\"div\");f.dir=\"ltr\";x(h,N(b,\"sans-serif\"));x(n,N(b,\"serif\"));x(v,N(b,\"monospace\"));f.appendChild(h.g);f.appendChild(n.g);f.appendChild(v.g);b.context.document.body.appendChild(f);y=h.g.offsetWidth;z=n.g.offsetWidth;A=v.g.offsetWidth;t();\nC(h,function(d){k=d;r()});x(h,N(b,'\"'+b.family+'\",sans-serif'));C(n,function(d){l=d;r()});x(n,N(b,'\"'+b.family+'\",serif'));C(v,function(d){m=d;r()});x(v,N(b,'\"'+b.family+'\",monospace'))})})};\"object\"===typeof module?module.exports=D:(window.FontFaceObserver=D,window.FontFaceObserver.prototype.load=D.prototype.load);}());\n","module.exports = __webpack_public_path__ + \"./fonts/MaterialCommunityIcons.ttf\";","function e(e){this.message=e}e.prototype=new Error,e.prototype.name=\"InvalidCharacterError\";var r=\"undefined\"!=typeof window&&window.atob&&window.atob.bind(window)||function(r){var t=String(r).replace(/=+$/,\"\");if(t.length%4==1)throw new e(\"'atob' failed: The string to be decoded is not correctly encoded.\");for(var n,o,a=0,i=0,c=\"\";o=t.charAt(i++);~o&&(n=a%4?64*n+o:o,a++%4)?c+=String.fromCharCode(255&n>>(-2*a&6)):0)o=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(o);return c};function t(e){var t=e.replace(/-/g,\"+\").replace(/_/g,\"/\");switch(t.length%4){case 0:break;case 2:t+=\"==\";break;case 3:t+=\"=\";break;default:throw\"Illegal base64url string!\"}try{return function(e){return decodeURIComponent(r(e).replace(/(.)/g,(function(e,r){var t=r.charCodeAt(0).toString(16).toUpperCase();return t.length<2&&(t=\"0\"+t),\"%\"+t})))}(t)}catch(e){return r(t)}}function n(e){this.message=e}function o(e,r){if(\"string\"!=typeof e)throw new n(\"Invalid token specified\");var o=!0===(r=r||{}).header?0:1;try{return JSON.parse(t(e.split(\".\")[o]))}catch(e){throw new n(\"Invalid token specified: \"+e.message)}}n.prototype=new Error,n.prototype.name=\"InvalidTokenError\";export default o;export{n as InvalidTokenError};\n//# sourceMappingURL=jwt-decode.esm.js.map\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { StyleSheet } from 'react-native';\nimport StyledText from './StyledText';\n// @component-group Typography\n/**\n * Typography component for showing a caption.\n *\n *
\n * \n *
\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { Caption } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * Caption\n * );\n *\n * export default MyComponent;\n * ```\n */\nconst Caption = props => /*#__PURE__*/React.createElement(StyledText, _extends({}, props, {\n alpha: 0.54,\n family: \"regular\",\n style: [styles.text, props.style]\n}));\nexport default Caption;\nconst styles = StyleSheet.create({\n text: {\n fontSize: 12,\n lineHeight: 20,\n marginVertical: 2,\n letterSpacing: 0.4\n }\n});\n//# sourceMappingURL=Caption.js.map","import createIconSet from './createIconSet';\nimport font from './vendor/react-native-vector-icons/Fonts/MaterialIcons.ttf';\nimport glyphMap from './vendor/react-native-vector-icons/glyphmaps/MaterialIcons.json';\n\nexport default createIconSet(glyphMap, 'material', font);\n","module.exports = __webpack_public_path__ + \"./fonts/MaterialIcons.ttf\";","var _NativeModules$Native;\nimport { NativeModules, Platform } from 'react-native';\n\n// Use the existence of expo-constants as a heuristic for determining if the\n// status bar is translucent on Android. This should be replaced in the future\n// with react-native-safe-area-context.\nconst estimatedStatusBarHeight = ((_NativeModules$Native = NativeModules.NativeUnimoduleProxy) === null || _NativeModules$Native === void 0 || (_NativeModules$Native = _NativeModules$Native.modulesConstants) === null || _NativeModules$Native === void 0 || (_NativeModules$Native = _NativeModules$Native.ExponentConstants) === null || _NativeModules$Native === void 0 ? void 0 : _NativeModules$Native.statusBarHeight) ?? 0;\nexport const APPROX_STATUSBAR_HEIGHT = Platform.select({\n android: estimatedStatusBarHeight,\n ios: Platform.Version < 11 ? estimatedStatusBarHeight : 0\n});\n//# sourceMappingURL=constants.js.map","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","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 subscribeForKeyboardEvents(_) {\n console.warn('[Reanimated] useAnimatedKeyboard is not available on web yet.');\n return -1;\n }\n unsubscribeFromKeyboardEvents(_) {\n // noop\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","import { runOnUI } from '../core';\nimport { prepareUIRegistry } from './FrameCallbackRegistryUI';\nexport default class FrameCallbackRegistryJS {\n constructor() {\n this.nextCallbackId = 0;\n prepareUIRegistry();\n }\n registerFrameCallback(callback) {\n if (!callback) {\n return -1;\n }\n const callbackId = this.nextCallbackId;\n this.nextCallbackId++;\n runOnUI(() => {\n 'worklet';\n global._frameCallbackRegistry.registerFrameCallback(callback, callbackId);\n })();\n return callbackId;\n }\n unregisterFrameCallback(callbackId) {\n runOnUI(() => {\n 'worklet';\n global._frameCallbackRegistry.unregisterFrameCallback(callbackId);\n })();\n }\n manageStateFrameCallback(callbackId, state) {\n runOnUI(() => {\n 'worklet';\n global._frameCallbackRegistry.manageStateFrameCallback(callbackId, state);\n })();\n }\n}\n","import { runOnUI } from '../core';\nexport const prepareUIRegistry = runOnUI(() => {\n 'worklet';\n const frameCallbackRegistry = {\n frameCallbackRegistry: new Map(),\n activeFrameCallbacks: new Set(),\n previousFrameTimestamp: null,\n runCallbacks() {\n const loop = (timestamp) => {\n if (this.previousFrameTimestamp === null) {\n this.previousFrameTimestamp = timestamp;\n }\n const delta = timestamp - this.previousFrameTimestamp;\n this.activeFrameCallbacks.forEach((callbackId) => {\n const callbackDetails = this.frameCallbackRegistry.get(callbackId);\n const { startTime } = callbackDetails;\n if (startTime === null) {\n // First frame\n callbackDetails.startTime = timestamp;\n callbackDetails.callback({\n timestamp,\n timeSincePreviousFrame: null,\n timeSinceFirstFrame: 0,\n });\n }\n else {\n // Next frame\n callbackDetails.callback({\n timestamp,\n timeSincePreviousFrame: delta,\n timeSinceFirstFrame: timestamp - startTime,\n });\n }\n });\n if (this.activeFrameCallbacks.size > 0) {\n this.previousFrameTimestamp = timestamp;\n requestAnimationFrame(loop);\n }\n else {\n this.previousFrameTimestamp = null;\n }\n };\n // runCallback() should only be called after registering a callback,\n // so if there is only one active callback, then it means that there were\n // zero previously and the loop isn't running yet.\n if (this.activeFrameCallbacks.size === 1) {\n requestAnimationFrame(loop);\n }\n },\n registerFrameCallback(callback, callbackId) {\n this.frameCallbackRegistry.set(callbackId, {\n callback: callback,\n startTime: null,\n });\n },\n unregisterFrameCallback(callbackId) {\n this.manageStateFrameCallback(callbackId, false);\n this.frameCallbackRegistry.delete(callbackId);\n },\n manageStateFrameCallback(callbackId, state) {\n if (callbackId === -1) {\n return;\n }\n if (state) {\n this.activeFrameCallbacks.add(callbackId);\n this.runCallbacks();\n }\n else {\n const callback = this.frameCallbackRegistry.get(callbackId);\n callback.startTime = null;\n this.activeFrameCallbacks.delete(callbackId);\n }\n },\n };\n global._frameCallbackRegistry = frameCallbackRegistry;\n});\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","// Used by GestureDetector (unsupported on web at the moment) to check whether the\n// attached view may get flattened on Fabric. Original implementation causes errors\n// on web due to the static resolution of `require` statements by webpack breaking\n// the conditional importing.\nexport function getShadowNodeFromRef(_ref: any) {\n return null;\n}\n","function _objectDestructuringEmpty(obj) {\n if (obj == null) throw new TypeError(\"Cannot destructure \" + obj);\n}\nmodule.exports = _objectDestructuringEmpty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { I18nManager, ScrollView, StyleSheet } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\nimport DrawerPositionContext from '../utils/DrawerPositionContext';\nfunction DrawerContentScrollView(_ref, ref) {\n let {\n contentContainerStyle,\n style,\n children,\n ...rest\n } = _ref;\n const drawerPosition = React.useContext(DrawerPositionContext);\n const insets = useSafeAreaInsets();\n const isRight = I18nManager.getConstants().isRTL ? drawerPosition === 'left' : drawerPosition === 'right';\n return /*#__PURE__*/React.createElement(ScrollView, _extends({}, rest, {\n ref: ref,\n contentContainerStyle: [{\n paddingTop: insets.top + 4,\n paddingStart: !isRight ? insets.left : 0,\n paddingEnd: isRight ? insets.right : 0\n }, contentContainerStyle],\n style: [styles.container, style]\n }), children);\n}\nexport default /*#__PURE__*/React.forwardRef(DrawerContentScrollView);\nconst styles = StyleSheet.create({\n container: {\n flex: 1\n }\n});\n//# sourceMappingURL=DrawerContentScrollView.js.map","import { CommonActions, DrawerActions, useLinkBuilder } from '@react-navigation/native';\nimport * as React from 'react';\nimport DrawerItem from './DrawerItem';\n/**\n * Component that renders the navigation list in the drawer.\n */\nexport default function DrawerItemList(_ref) {\n let {\n state,\n navigation,\n descriptors\n } = _ref;\n const buildLink = useLinkBuilder();\n const focusedRoute = state.routes[state.index];\n const focusedDescriptor = descriptors[focusedRoute.key];\n const focusedOptions = focusedDescriptor.options;\n const {\n drawerActiveTintColor,\n drawerInactiveTintColor,\n drawerActiveBackgroundColor,\n drawerInactiveBackgroundColor\n } = focusedOptions;\n return state.routes.map((route, i) => {\n const focused = i === state.index;\n const onPress = () => {\n const event = navigation.emit({\n type: 'drawerItemPress',\n target: route.key,\n canPreventDefault: true\n });\n if (!event.defaultPrevented) {\n navigation.dispatch({\n ...(focused ? DrawerActions.closeDrawer() : CommonActions.navigate({\n name: route.name,\n merge: true\n })),\n target: state.key\n });\n }\n };\n const {\n title,\n drawerLabel,\n drawerIcon,\n drawerLabelStyle,\n drawerItemStyle,\n drawerAllowFontScaling\n } = descriptors[route.key].options;\n return /*#__PURE__*/React.createElement(DrawerItem, {\n key: route.key,\n label: drawerLabel !== undefined ? drawerLabel : title !== undefined ? title : route.name,\n icon: drawerIcon,\n focused: focused,\n activeTintColor: drawerActiveTintColor,\n inactiveTintColor: drawerInactiveTintColor,\n activeBackgroundColor: drawerActiveBackgroundColor,\n inactiveBackgroundColor: drawerInactiveBackgroundColor,\n allowFontScaling: drawerAllowFontScaling,\n labelStyle: drawerLabelStyle,\n style: drawerItemStyle,\n to: buildLink(route.name, route.params),\n onPress: onPress\n });\n });\n}\n//# sourceMappingURL=DrawerItemList.js.map","'use strict';\n\nmodule.exports = string => {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a \\unnnn escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n};\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport { PlatformPressable } from '@react-navigation/elements';\nimport { Link, useTheme } from '@react-navigation/native';\nimport Color from 'color';\nimport * as React from 'react';\nimport { Platform, StyleSheet, Text, View } from 'react-native';\nconst LinkPressable = _ref => {\n let {\n children,\n style,\n onPress,\n onLongPress,\n onPressIn,\n onPressOut,\n to,\n accessibilityRole,\n ...rest\n } = _ref;\n if (Platform.OS === 'web' && to) {\n // React Native Web doesn't forward `onClick` if we use `TouchableWithoutFeedback`.\n // We need to use `onClick` to be able to prevent default browser handling of links.\n return /*#__PURE__*/React.createElement(Link, _extends({}, rest, {\n to: to,\n style: [styles.button, style],\n onPress: e => {\n if (!(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) && (\n // ignore clicks with modifier keys\n e.button == null || e.button === 0) // ignore everything but left clicks\n ) {\n e.preventDefault();\n onPress === null || onPress === void 0 ? void 0 : onPress(e);\n }\n }\n // types for PressableProps and TextProps are incompatible with each other by `null` so we\n // can't use {...rest} for these 3 props\n ,\n onLongPress: onLongPress ?? undefined,\n onPressIn: onPressIn ?? undefined,\n onPressOut: onPressOut ?? undefined\n }), children);\n } else {\n return /*#__PURE__*/React.createElement(PlatformPressable, _extends({}, rest, {\n accessibilityRole: accessibilityRole,\n onPress: onPress\n }), /*#__PURE__*/React.createElement(View, {\n style: style\n }, children));\n }\n};\n\n/**\n * A component used to show an action item with an icon and a label in a navigation drawer.\n */\nexport default function DrawerItem(props) {\n const {\n colors\n } = useTheme();\n const {\n icon,\n label,\n labelStyle,\n to,\n focused = false,\n allowFontScaling,\n activeTintColor = colors.primary,\n inactiveTintColor = Color(colors.text).alpha(0.68).rgb().string(),\n activeBackgroundColor = Color(activeTintColor).alpha(0.12).rgb().string(),\n inactiveBackgroundColor = 'transparent',\n style,\n onPress,\n pressColor,\n pressOpacity,\n testID,\n accessibilityLabel,\n ...rest\n } = props;\n const {\n borderRadius = 4\n } = StyleSheet.flatten(style || {});\n const color = focused ? activeTintColor : inactiveTintColor;\n const backgroundColor = focused ? activeBackgroundColor : inactiveBackgroundColor;\n const iconNode = icon ? icon({\n size: 24,\n focused,\n color\n }) : null;\n return /*#__PURE__*/React.createElement(View, _extends({\n collapsable: false\n }, rest, {\n style: [styles.container, {\n borderRadius,\n backgroundColor\n }, style]\n }), /*#__PURE__*/React.createElement(LinkPressable, {\n testID: testID,\n onPress: onPress,\n style: [styles.wrapper, {\n borderRadius\n }],\n accessibilityLabel: accessibilityLabel,\n accessibilityRole: \"button\",\n accessibilityState: {\n selected: focused\n },\n pressColor: pressColor,\n pressOpacity: pressOpacity,\n to: to\n }, /*#__PURE__*/React.createElement(React.Fragment, null, iconNode, /*#__PURE__*/React.createElement(View, {\n style: [styles.label, {\n marginLeft: iconNode ? 32 : 0,\n marginVertical: 5\n }]\n }, typeof label === 'string' ? /*#__PURE__*/React.createElement(Text, {\n numberOfLines: 1,\n allowFontScaling: allowFontScaling,\n style: [{\n color,\n fontWeight: '500'\n }, labelStyle]\n }, label) : label({\n color,\n focused\n })))));\n}\nconst styles = StyleSheet.create({\n container: {\n marginHorizontal: 10,\n marginVertical: 4,\n overflow: 'hidden'\n },\n wrapper: {\n flexDirection: 'row',\n alignItems: 'center',\n padding: 8\n },\n label: {\n marginRight: 32,\n flex: 1\n },\n button: {\n display: 'flex'\n }\n});\n//# sourceMappingURL=DrawerItem.js.map","import { getPathFromState, NavigationContainerRefContext, NavigationHelpersContext } from '@react-navigation/core';\nimport * as React from 'react';\nimport { Platform } from 'react-native';\nimport LinkingContext from './LinkingContext';\nimport useLinkTo from './useLinkTo';\nconst getStateFromParams = params => {\n if (params !== null && params !== void 0 && params.state) {\n return params.state;\n }\n if (params !== null && params !== void 0 && params.screen) {\n return {\n routes: [{\n name: params.screen,\n params: params.params,\n // @ts-expect-error\n state: params.screen ? getStateFromParams(params.params) : undefined\n }]\n };\n }\n return undefined;\n};\n\n/**\n * Hook to get props for an anchor tag so it can work with in page navigation.\n *\n * @param props.to Absolute path to screen (e.g. `/feeds/hot`).\n * @param props.action Optional action to use for in-page navigation. By default, the path is parsed to an action based on linking config.\n */\nexport default function useLinkProps(_ref) {\n let {\n to,\n action\n } = _ref;\n const root = React.useContext(NavigationContainerRefContext);\n const navigation = React.useContext(NavigationHelpersContext);\n const {\n options\n } = React.useContext(LinkingContext);\n const linkTo = useLinkTo();\n const onPress = e => {\n var _e$currentTarget;\n let shouldHandle = false;\n if (Platform.OS !== 'web' || !e) {\n shouldHandle = e ? !e.defaultPrevented : true;\n } else if (!e.defaultPrevented &&\n // onPress prevented default\n // @ts-expect-error: these properties exist on web, but not in React Native\n !(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) && (\n // ignore clicks with modifier keys\n // @ts-expect-error: these properties exist on web, but not in React Native\n e.button == null || e.button === 0) &&\n // ignore everything but left clicks\n // @ts-expect-error: these properties exist on web, but not in React Native\n [undefined, null, '', 'self'].includes((_e$currentTarget = e.currentTarget) === null || _e$currentTarget === void 0 ? void 0 : _e$currentTarget.target) // let browser handle \"target=_blank\" etc.\n ) {\n e.preventDefault();\n shouldHandle = true;\n }\n if (shouldHandle) {\n if (action) {\n if (navigation) {\n navigation.dispatch(action);\n } else if (root) {\n root.dispatch(action);\n } else {\n throw new Error(\"Couldn't find a navigation object. Is your component inside NavigationContainer?\");\n }\n } else {\n linkTo(to);\n }\n }\n };\n const getPathFromStateHelper = (options === null || options === void 0 ? void 0 : options.getPathFromState) ?? getPathFromState;\n const href = typeof to === 'string' ? to : getPathFromStateHelper({\n routes: [{\n name: to.screen,\n // @ts-expect-error\n params: to.params,\n // @ts-expect-error\n state: getStateFromParams(to.params)\n }]\n }, options === null || options === void 0 ? void 0 : options.config);\n return {\n href,\n accessibilityRole: 'link',\n onPress\n };\n}\n//# sourceMappingURL=useLinkProps.js.map","import { getActionFromState, getStateFromPath, NavigationContainerRefContext } from '@react-navigation/core';\nimport * as React from 'react';\nimport LinkingContext from './LinkingContext';\nexport default function useLinkTo() {\n const navigation = React.useContext(NavigationContainerRefContext);\n const linking = React.useContext(LinkingContext);\n const linkTo = React.useCallback(to => {\n if (navigation === undefined) {\n throw new Error(\"Couldn't find a navigation object. Is your component inside NavigationContainer?\");\n }\n if (typeof to !== 'string') {\n // @ts-expect-error: This is fine\n navigation.navigate(to.screen, to.params);\n return;\n }\n if (!to.startsWith('/')) {\n throw new Error(`The path must start with '/' (${to}).`);\n }\n const {\n options\n } = linking;\n const state = options !== null && options !== void 0 && options.getStateFromPath ? options.getStateFromPath(to, options.config) : getStateFromPath(to, options === null || options === void 0 ? void 0 : options.config);\n if (state) {\n const action = getActionFromState(state, options === null || options === void 0 ? void 0 : options.config);\n if (action !== undefined) {\n navigation.dispatch(action);\n } else {\n navigation.reset(state);\n }\n } else {\n throw new Error('Failed to parse the path to a navigation state.');\n }\n }, [linking, navigation]);\n return linkTo;\n}\n//# sourceMappingURL=useLinkTo.js.map","import React, { PureComponent } from 'react';\n\nimport createIconSet from './createIconSet';\n\ntype FontStyle = {\n fontFamily: string;\n fontFile: any;\n glyphMap: any;\n fontStyle: any;\n};\n\ntype FontStyles = {\n [key: string]: FontStyle;\n};\n\nexport default function createMultiStyleIconSet(\n styles: FontStyles,\n optionsInput = {}\n): any {\n const styleNames = Object.keys(styles);\n\n if (styleNames.length === 0) {\n throw new Error('You need to add at least one style');\n }\n\n const options = {\n defaultStyle: styleNames[0],\n fallbackFamily: (_unused: any) => styleNames[0],\n glyphValidator: (_unused: any, __unused: any) => true,\n ...optionsInput,\n };\n\n const iconSets = styleNames.reduce((acc, name) => {\n const style = styles[name];\n\n acc[name] = createIconSet(\n style.glyphMap || {},\n style.fontFamily || '',\n style.fontFile || '',\n style.fontStyle || {}\n );\n\n return acc;\n }, {});\n\n function styleFromProps(props) {\n return Object.keys(props).reduce(\n (result, propName) =>\n styleNames.indexOf(propName) !== -1 && props[propName] === true\n ? propName\n : result,\n options.defaultStyle\n );\n }\n\n function getIconSetForProps(props) {\n const { name } = props;\n const style = styleFromProps(props);\n\n if (options.glyphValidator(name, style)) return iconSets[style];\n\n const family = options.fallbackFamily(name);\n\n if (styleNames.indexOf(family) === -1) {\n return options.defaultStyle;\n }\n\n return iconSets[family];\n }\n\n function selectIconClass(iconSet, iconClass) {\n return iconClass.length > 0 ? iconSet[iconClass] : iconSet;\n }\n\n function reduceProps(props) {\n return Object.keys(props).reduce((acc, prop) => {\n if (styleNames.indexOf(prop) === -1) {\n acc[prop] = props[prop];\n }\n\n return acc;\n }, {});\n }\n\n function getStyledIconSet(style, name = '') {\n if (styleNames.indexOf(style) === -1) {\n return iconSets[options.defaultStyle];\n }\n\n return !name\n ? iconSets[styleFromProps({ [style]: true })]\n : getIconSetForProps({ name, [style]: true });\n }\n\n function getFontFamily(style = options.defaultStyle) {\n return getStyledIconSet(style).getFontFamily();\n }\n\n function getRawGlyphMap(style = options.defaultStyle) {\n return getStyledIconSet(style).getRawGlyphMap();\n }\n\n function hasIcon(name, style = options.defaultStyle) {\n return options.glyphValidator(name, style);\n }\n\n function createStyledIconClass(selectClass = '') {\n class IconClass extends PureComponent {\n static defaultProps = styleNames.reduce((acc, name) => {\n acc[name] = false;\n return acc;\n }, {});\n\n static font = Object.values(styles).reduce((acc, style) => {\n acc[style.fontFamily] = style.fontFile;\n return acc;\n }, {});\n\n static Button: any;\n\n static StyledIconSet = getStyledIconSet;\n static getFontFamily = getFontFamily;\n static getRawGlyphMap = getRawGlyphMap;\n static hasIcon = hasIcon;\n\n render() {\n const selectedIconSet = getIconSetForProps(this.props);\n const SelectedIconClass = selectIconClass(selectedIconSet, selectClass);\n const props = reduceProps(this.props);\n\n return React.createElement(SelectedIconClass, props);\n }\n }\n\n return IconClass;\n }\n\n const Icon = createStyledIconClass();\n Icon.Button = createStyledIconClass('Button');\n return Icon;\n}\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport { CommonActions, useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport { TabView } from 'react-native-tab-view';\nimport MaterialTopTabBar from './MaterialTopTabBar';\nexport default function MaterialTopTabView(_ref) {\n let {\n tabBar = props => /*#__PURE__*/React.createElement(MaterialTopTabBar, props),\n state,\n navigation,\n descriptors,\n sceneContainerStyle,\n ...rest\n } = _ref;\n const {\n colors\n } = useTheme();\n const renderTabBar = props => {\n return tabBar({\n ...props,\n state: state,\n navigation: navigation,\n descriptors: descriptors\n });\n };\n const focusedOptions = descriptors[state.routes[state.index].key].options;\n return /*#__PURE__*/React.createElement(TabView, _extends({}, rest, {\n onIndexChange: index => navigation.dispatch({\n ...CommonActions.navigate({\n name: state.routes[index].name,\n merge: true\n }),\n target: state.key\n }),\n renderScene: _ref2 => {\n let {\n route\n } = _ref2;\n return descriptors[route.key].render();\n },\n navigationState: state,\n renderTabBar: renderTabBar,\n renderLazyPlaceholder: _ref3 => {\n var _descriptors$route$ke, _descriptors$route$ke2;\n let {\n route\n } = _ref3;\n return ((_descriptors$route$ke = (_descriptors$route$ke2 = descriptors[route.key].options).lazyPlaceholder) === null || _descriptors$route$ke === void 0 ? void 0 : _descriptors$route$ke.call(_descriptors$route$ke2)) ?? null;\n },\n lazy: _ref4 => {\n let {\n route\n } = _ref4;\n return descriptors[route.key].options.lazy === true;\n },\n lazyPreloadDistance: focusedOptions.lazyPreloadDistance,\n swipeEnabled: focusedOptions.swipeEnabled,\n animationEnabled: focusedOptions.animationEnabled,\n onSwipeStart: () => navigation.emit({\n type: 'swipeStart'\n }),\n onSwipeEnd: () => navigation.emit({\n type: 'swipeEnd'\n }),\n sceneContainerStyle: [{\n backgroundColor: colors.background\n }, sceneContainerStyle]\n }));\n}\n//# sourceMappingURL=MaterialTopTabView.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport { useTheme } from '@react-navigation/native';\nimport Color from 'color';\nimport * as React from 'react';\nimport { StyleSheet, Text, View } from 'react-native';\nimport { TabBar, TabBarIndicator } from 'react-native-tab-view';\nexport default function TabBarTop(_ref) {\n let {\n state,\n navigation,\n descriptors,\n ...rest\n } = _ref;\n const {\n colors\n } = useTheme();\n const focusedOptions = descriptors[state.routes[state.index].key].options;\n const activeColor = focusedOptions.tabBarActiveTintColor ?? colors.text;\n const inactiveColor = focusedOptions.tabBarInactiveTintColor ?? Color(activeColor).alpha(0.5).rgb().string();\n return /*#__PURE__*/React.createElement(TabBar, _extends({}, rest, {\n navigationState: state,\n scrollEnabled: focusedOptions.tabBarScrollEnabled,\n bounces: focusedOptions.tabBarBounces,\n activeColor: activeColor,\n inactiveColor: inactiveColor,\n pressColor: focusedOptions.tabBarPressColor,\n pressOpacity: focusedOptions.tabBarPressOpacity,\n tabStyle: focusedOptions.tabBarItemStyle,\n indicatorStyle: [{\n backgroundColor: colors.primary\n }, focusedOptions.tabBarIndicatorStyle],\n gap: focusedOptions.tabBarGap,\n android_ripple: focusedOptions.tabBarAndroidRipple,\n indicatorContainerStyle: focusedOptions.tabBarIndicatorContainerStyle,\n contentContainerStyle: focusedOptions.tabBarContentContainerStyle,\n style: [{\n backgroundColor: colors.card\n }, focusedOptions.tabBarStyle],\n getAccessibilityLabel: _ref2 => {\n let {\n route\n } = _ref2;\n return descriptors[route.key].options.tabBarAccessibilityLabel;\n },\n getTestID: _ref3 => {\n let {\n route\n } = _ref3;\n return descriptors[route.key].options.tabBarTestID;\n },\n onTabPress: _ref4 => {\n let {\n route,\n preventDefault\n } = _ref4;\n const event = navigation.emit({\n type: 'tabPress',\n target: route.key,\n canPreventDefault: true\n });\n if (event.defaultPrevented) {\n preventDefault();\n }\n },\n onTabLongPress: _ref5 => {\n let {\n route\n } = _ref5;\n return navigation.emit({\n type: 'tabLongPress',\n target: route.key\n });\n },\n renderIcon: _ref6 => {\n let {\n route,\n focused,\n color\n } = _ref6;\n const {\n options\n } = descriptors[route.key];\n if (options.tabBarShowIcon === false) {\n return null;\n }\n if (options.tabBarIcon !== undefined) {\n const icon = options.tabBarIcon({\n focused,\n color\n });\n return /*#__PURE__*/React.createElement(View, {\n style: [styles.icon, options.tabBarIconStyle]\n }, icon);\n }\n return null;\n },\n renderLabel: _ref7 => {\n let {\n route,\n focused,\n color\n } = _ref7;\n const {\n options\n } = descriptors[route.key];\n if (options.tabBarShowLabel === false) {\n return null;\n }\n const label = options.tabBarLabel !== undefined ? options.tabBarLabel : options.title !== undefined ? options.title : route.name;\n if (typeof label === 'string') {\n return /*#__PURE__*/React.createElement(Text, {\n style: [styles.label, {\n color\n }, options.tabBarLabelStyle],\n allowFontScaling: options.tabBarAllowFontScaling\n }, label);\n }\n const children = typeof options.tabBarLabel === 'string' ? options.tabBarLabel : options.title !== undefined ? options.title : route.name;\n return label({\n focused,\n color,\n children\n });\n },\n renderBadge: _ref8 => {\n let {\n route\n } = _ref8;\n const {\n tabBarBadge\n } = descriptors[route.key].options;\n return (tabBarBadge === null || tabBarBadge === void 0 ? void 0 : tabBarBadge()) ?? null;\n },\n renderIndicator: _ref9 => {\n let {\n navigationState: state,\n ...rest\n } = _ref9;\n return focusedOptions.tabBarIndicator ? focusedOptions.tabBarIndicator({\n state: state,\n ...rest\n }) : /*#__PURE__*/React.createElement(TabBarIndicator, _extends({\n navigationState: state\n }, rest));\n }\n }));\n}\nconst styles = StyleSheet.create({\n icon: {\n height: 24,\n width: 24\n },\n label: {\n textAlign: 'center',\n textTransform: 'uppercase',\n fontSize: 13,\n margin: 4,\n backgroundColor: 'transparent'\n }\n});\n//# sourceMappingURL=MaterialTopTabBar.js.map","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","import createIconSet from './createIconSet';\nimport font from './vendor/react-native-vector-icons/Fonts/Foundation.ttf';\nimport glyphMap from './vendor/react-native-vector-icons/glyphmaps/Foundation.json';\n\nexport default createIconSet(glyphMap, 'foundation', font);\n","module.exports = __webpack_public_path__ + \"./fonts/Foundation.ttf\";","import createIconSet from './createIconSet';\nimport font from './vendor/react-native-vector-icons/Fonts/FontAwesome.ttf';\nimport glyphMap from './vendor/react-native-vector-icons/glyphmaps/FontAwesome.json';\n\nexport default createIconSet(glyphMap, 'FontAwesome', font);\n","module.exports = __webpack_public_path__ + \"./fonts/FontAwesome.ttf\";","import createIconSet from './createIconSet';\nimport font from './vendor/react-native-vector-icons/Fonts/Feather.ttf';\nimport glyphMap from './vendor/react-native-vector-icons/glyphmaps/Feather.json';\n\nexport default createIconSet(glyphMap, 'feather', font);\n","module.exports = __webpack_public_path__ + \"./fonts/Feather.ttf\";","import createIconSet from './createIconSet';\nimport font from './vendor/react-native-vector-icons/Fonts/AntDesign.ttf';\nimport glyphMap from './vendor/react-native-vector-icons/glyphmaps/AntDesign.json';\n\nexport default createIconSet(glyphMap, 'anticon', font);\n","module.exports = __webpack_public_path__ + \"./fonts/AntDesign.ttf\";","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport DrawerContentScrollView from './DrawerContentScrollView';\nimport DrawerItemList from './DrawerItemList';\nexport default function DrawerContent(_ref) {\n let {\n descriptors,\n state,\n ...rest\n } = _ref;\n const focusedRoute = state.routes[state.index];\n const focusedDescriptor = descriptors[focusedRoute.key];\n const focusedOptions = focusedDescriptor.options;\n const {\n drawerContentStyle,\n drawerContentContainerStyle\n } = focusedOptions;\n return /*#__PURE__*/React.createElement(DrawerContentScrollView, _extends({}, rest, {\n contentContainerStyle: drawerContentContainerStyle,\n style: drawerContentStyle\n }), /*#__PURE__*/React.createElement(DrawerItemList, _extends({\n descriptors: descriptors,\n state: state\n }, rest)));\n}\n//# sourceMappingURL=DrawerContent.js.map","export default function getDrawerStatusFromState(state) {\n if (state.history == null) {\n throw new Error(\"Couldn't find the drawer status in the state object. Is it a valid state object of drawer navigator?\");\n }\n const entry = state.history.find(it => it.type === 'drawer');\n return (entry === null || entry === void 0 ? void 0 : entry.status) ?? state.default ?? 'closed';\n}\n//# sourceMappingURL=getDrawerStatusFromState.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport { useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport { Animated, Platform, StyleSheet } from 'react-native';\nexport default function HeaderTitle(_ref) {\n let {\n tintColor,\n style,\n ...rest\n } = _ref;\n const {\n colors\n } = useTheme();\n return /*#__PURE__*/React.createElement(Animated.Text, _extends({\n accessibilityRole: \"header\",\n \"aria-level\": \"1\",\n numberOfLines: 1\n }, rest, {\n style: [styles.title, {\n color: tintColor === undefined ? colors.text : tintColor\n }, style]\n }));\n}\nconst styles = StyleSheet.create({\n title: Platform.select({\n ios: {\n fontSize: 17,\n fontWeight: '600'\n },\n android: {\n fontSize: 20,\n fontFamily: 'sans-serif-medium',\n fontWeight: 'normal'\n },\n default: {\n fontSize: 18,\n fontWeight: '500'\n }\n })\n});\n//# sourceMappingURL=HeaderTitle.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport { useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport { Animated, Platform, StyleSheet } from 'react-native';\nexport default function HeaderBackground(_ref) {\n let {\n style,\n ...rest\n } = _ref;\n const {\n colors\n } = useTheme();\n return /*#__PURE__*/React.createElement(Animated.View, _extends({\n style: [styles.container, {\n backgroundColor: colors.card,\n borderBottomColor: colors.border,\n shadowColor: colors.border\n }, style]\n }, rest));\n}\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n ...Platform.select({\n android: {\n elevation: 4\n },\n ios: {\n shadowOpacity: 0.85,\n shadowRadius: 0,\n shadowOffset: {\n width: 0,\n height: StyleSheet.hairlineWidth\n }\n },\n default: {\n borderBottomWidth: StyleSheet.hairlineWidth\n }\n })\n }\n});\n//# sourceMappingURL=HeaderBackground.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport { PlatformPressable } from '@react-navigation/elements';\nimport { DrawerActions, useNavigation } from '@react-navigation/native';\nimport * as React from 'react';\nimport { Image, Platform, StyleSheet } from 'react-native';\nexport default function DrawerToggleButton(_ref) {\n let {\n tintColor,\n ...rest\n } = _ref;\n const navigation = useNavigation();\n return /*#__PURE__*/React.createElement(PlatformPressable, _extends({}, rest, {\n accessible: true,\n accessibilityRole: \"button\",\n android_ripple: {\n borderless: true\n },\n onPress: () => navigation.dispatch(DrawerActions.toggleDrawer()),\n style: styles.touchable,\n hitSlop: Platform.select({\n ios: undefined,\n default: {\n top: 16,\n right: 16,\n bottom: 16,\n left: 16\n }\n })\n }), /*#__PURE__*/React.createElement(Image, {\n style: [styles.icon, tintColor ? {\n tintColor\n } : null],\n source: require('./assets/toggle-drawer-icon.png'),\n fadeDuration: 0\n }));\n}\nconst styles = StyleSheet.create({\n icon: {\n height: 24,\n width: 24,\n margin: 3,\n resizeMode: 'contain'\n },\n touchable: {\n marginHorizontal: 11\n }\n});\n//# sourceMappingURL=DrawerToggleButton.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport { useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport { View } from 'react-native';\nexport default function Background(_ref) {\n let {\n style,\n ...rest\n } = _ref;\n const {\n colors\n } = useTheme();\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, {\n style: [{\n flex: 1,\n backgroundColor: colors.background\n }, style]\n }));\n}\n//# sourceMappingURL=Background.js.map","import * as React from 'react';\nconst DrawerStatusContext = /*#__PURE__*/React.createContext(undefined);\nexport default DrawerStatusContext;\n//# sourceMappingURL=DrawerStatusContext.js.map","export default function useBackButton(_) {\n // No-op\n // BackHandler is not available on web\n}\n//# sourceMappingURL=useBackButton.js.map","import * as React from 'react';\n/**\n * Set the document title for the active screen\n */\nexport default function useDocumentTitle(ref) {\n let {\n enabled = true,\n formatter = (options, route) => (options === null || options === void 0 ? void 0 : options.title) ?? (route === null || route === void 0 ? void 0 : route.name)\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n const navigation = ref.current;\n if (navigation) {\n const title = formatter(navigation.getCurrentOptions(), navigation.getCurrentRoute());\n document.title = title;\n }\n return navigation === null || navigation === void 0 ? void 0 : navigation.addListener('options', e => {\n const title = formatter(e.data.options, navigation === null || navigation === void 0 ? void 0 : navigation.getCurrentRoute());\n document.title = title;\n });\n });\n}\n//# sourceMappingURL=useDocumentTitle.js.map","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","import * as React from 'react';\nconst ServerContext = /*#__PURE__*/React.createContext(undefined);\nexport default ServerContext;\n//# sourceMappingURL=ServerContext.js.map","import * as React from 'react';\nexport default function useThenable(create) {\n const [promise] = React.useState(create);\n let initialState = [false, undefined];\n\n // Check if our thenable is synchronous\n promise.then(result => {\n initialState = [true, result];\n });\n const [state, setState] = React.useState(initialState);\n const [resolved] = state;\n React.useEffect(() => {\n let cancelled = false;\n const resolve = async () => {\n let result;\n try {\n result = await promise;\n } finally {\n if (!cancelled) {\n setState([true, result]);\n }\n }\n };\n if (!resolved) {\n resolve();\n }\n return () => {\n cancelled = true;\n };\n }, [promise, resolved]);\n return state;\n}\n//# sourceMappingURL=useThenable.js.map","import * as React from 'react';\nimport ThemeContext from './ThemeContext';\nexport default function ThemeProvider(_ref) {\n let {\n value,\n children\n } = _ref;\n return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: value\n }, children);\n}\n//# sourceMappingURL=ThemeProvider.js.map","module.exports = __webpack_public_path__ + \"./fonts/Entypo.ttf\";","'use strict';var _interopRequireDefault=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _extends2=_interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));var _objectWithoutProperties2=_interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));var _react=_interopRequireDefault(require(\"react\"));var _reactNative=require(\"react-native\");var _RNCSliderNativeComponent=_interopRequireDefault(require(\"./RNCSliderNativeComponent\"));var _excluded=[\"onValueChange\",\"onSlidingStart\",\"onSlidingComplete\",\"onAccessibilityAction\"];var _this=this,_jsxFileName=\"C:\\\\Dev\\\\Projects\\\\react-native-slider\\\\src\\\\js\\\\Slider.js\";var SliderComponent=function SliderComponent(props,forwardedRef){var _props$accessibilityS;var style=_reactNative.StyleSheet.compose(styles.slider,props.style);var onValueChange=props.onValueChange,onSlidingStart=props.onSlidingStart,onSlidingComplete=props.onSlidingComplete,onAccessibilityAction=props.onAccessibilityAction,localProps=(0,_objectWithoutProperties2.default)(props,_excluded);var onValueChangeEvent=onValueChange?function(event){onValueChange(event.nativeEvent.value);}:null;var _disabled=typeof props.disabled==='boolean'?props.disabled:((_props$accessibilityS=props.accessibilityState)==null?void 0:_props$accessibilityS.disabled)===true;var _accessibilityState=typeof props.disabled==='boolean'?Object.assign({},props.accessibilityState,{disabled:props.disabled}):props.accessibilityState;var onChangeEvent=onValueChangeEvent;var onSlidingStartEvent=onSlidingStart?function(event){onSlidingStart(event.nativeEvent.value);}:null;var onSlidingCompleteEvent=onSlidingComplete?function(event){onSlidingComplete(event.nativeEvent.value);}:null;var onAccessibilityActionEvent=onAccessibilityAction?function(event){onAccessibilityAction(event.nativeEvent.value);}:null;return _react.default.createElement(_RNCSliderNativeComponent.default,(0,_extends2.default)({},localProps,{thumbImage:_reactNative.Platform.OS==='web'?props.thumbImage:_reactNative.Image.resolveAssetSource(props.thumbImage),ref:forwardedRef,style:style,onChange:onChangeEvent,onRNCSliderSlidingStart:onSlidingStartEvent,onRNCSliderSlidingComplete:onSlidingCompleteEvent,onRNCSliderValueChange:onValueChangeEvent,enabled:!_disabled,disabled:_disabled,onStartShouldSetResponder:function onStartShouldSetResponder(){return true;},onResponderTerminationRequest:function onResponderTerminationRequest(){return false;},accessibilityState:_accessibilityState,onRNCSliderAccessibilityAction:onAccessibilityActionEvent,__self:_this,__source:{fileName:_jsxFileName,lineNumber:296,columnNumber:5}}));};var SliderWithRef=_react.default.forwardRef(SliderComponent);SliderWithRef.defaultProps={value:0,minimumValue:0,maximumValue:1,step:0,inverted:false,tapToSeek:false};var styles;if(_reactNative.Platform.OS==='ios'){styles=_reactNative.StyleSheet.create({slider:{height:40}});}else{styles=_reactNative.StyleSheet.create({slider:{}});}var Slider=SliderWithRef;var _default=Slider;exports.default=_default;","import AntDesign from './build/AntDesign';\nexport default AntDesign;\n","\nconst canPromise = require('./can-promise')\n\nconst QRCode = require('./core/qrcode')\nconst CanvasRenderer = require('./renderer/canvas')\nconst SvgRenderer = require('./renderer/svg-tag.js')\n\nfunction renderCanvas (renderFunc, canvas, text, opts, cb) {\n const args = [].slice.call(arguments, 1)\n const argsNum = args.length\n const isLastArgCb = typeof args[argsNum - 1] === 'function'\n\n if (!isLastArgCb && !canPromise()) {\n throw new Error('Callback required as last argument')\n }\n\n if (isLastArgCb) {\n if (argsNum < 2) {\n throw new Error('Too few arguments provided')\n }\n\n if (argsNum === 2) {\n cb = text\n text = canvas\n canvas = opts = undefined\n } else if (argsNum === 3) {\n if (canvas.getContext && typeof cb === 'undefined') {\n cb = opts\n opts = undefined\n } else {\n cb = opts\n opts = text\n text = canvas\n canvas = undefined\n }\n }\n } else {\n if (argsNum < 1) {\n throw new Error('Too few arguments provided')\n }\n\n if (argsNum === 1) {\n text = canvas\n canvas = opts = undefined\n } else if (argsNum === 2 && !canvas.getContext) {\n opts = text\n text = canvas\n canvas = undefined\n }\n\n return new Promise(function (resolve, reject) {\n try {\n const data = QRCode.create(text, opts)\n resolve(renderFunc(data, canvas, opts))\n } catch (e) {\n reject(e)\n }\n })\n }\n\n try {\n const data = QRCode.create(text, opts)\n cb(null, renderFunc(data, canvas, opts))\n } catch (e) {\n cb(e)\n }\n}\n\nexports.create = QRCode.create\nexports.toCanvas = renderCanvas.bind(null, CanvasRenderer.render)\nexports.toDataURL = renderCanvas.bind(null, CanvasRenderer.renderToDataURL)\n\n// only svg for now.\nexports.toString = renderCanvas.bind(null, function (data, _, opts) {\n return SvgRenderer.render(data, opts)\n})\n","import 'expo/build/Expo.fx';\n\nimport * as React from 'react';\nimport { AppRegistry, Platform } from 'react-native';\n\ntype InitialProps = {\n exp: {\n notification?: any;\n manifestString?: string;\n [key: string]: any;\n };\n shell?: boolean;\n shellManifestUrl?: string;\n [key: string]: any;\n};\n\nexport default function registerRootComponent

(\n component: React.ComponentType

\n): void {\n if (process.env.NODE_ENV === 'production') {\n AppRegistry.registerComponent('main', () => component);\n } else {\n const { withDevTools } = require('./withDevTools') as typeof import('./withDevTools');\n AppRegistry.registerComponent('main', () => withDevTools(component));\n }\n\n if (Platform.OS === 'web') {\n const rootTag = document.getElementById('root') ?? document.getElementById('main');\n AppRegistry.runApplication('main', { rootTag });\n }\n}\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport { ResourceSavingView } from '@react-navigation/elements';\nimport * as React from 'react';\nimport { View } from 'react-native';\nlet Screens;\ntry {\n Screens = require('react-native-screens');\n} catch (e) {\n // Ignore\n}\nexport const MaybeScreenContainer = _ref => {\n var _Screens, _Screens$screensEnabl;\n let {\n enabled,\n ...rest\n } = _ref;\n if ((_Screens = Screens) !== null && _Screens !== void 0 && (_Screens$screensEnabl = _Screens.screensEnabled) !== null && _Screens$screensEnabl !== void 0 && _Screens$screensEnabl.call(_Screens)) {\n return /*#__PURE__*/React.createElement(Screens.ScreenContainer, _extends({\n enabled: enabled\n }, rest));\n }\n return /*#__PURE__*/React.createElement(View, rest);\n};\nexport function MaybeScreen(_ref2) {\n var _Screens2, _Screens2$screensEnab;\n let {\n visible,\n children,\n ...rest\n } = _ref2;\n if ((_Screens2 = Screens) !== null && _Screens2 !== void 0 && (_Screens2$screensEnab = _Screens2.screensEnabled) !== null && _Screens2$screensEnab !== void 0 && _Screens2$screensEnab.call(_Screens2)) {\n return /*#__PURE__*/React.createElement(Screens.Screen, _extends({\n activityState: visible ? 2 : 0\n }, rest), children);\n }\n return /*#__PURE__*/React.createElement(ResourceSavingView, _extends({\n visible: visible\n }, rest), children);\n}\n//# sourceMappingURL=ScreenFallback.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport { getHeaderTitle, Header, SafeAreaProviderCompat, Screen } from '@react-navigation/elements';\nimport { DrawerActions, useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport { I18nManager, Platform, StyleSheet, View } from 'react-native';\nimport * as Reanimated from 'react-native-reanimated';\nimport { useSafeAreaFrame } from 'react-native-safe-area-context';\nimport { addCancelListener } from '../utils/addCancelListener';\nimport DrawerPositionContext from '../utils/DrawerPositionContext';\nimport DrawerStatusContext from '../utils/DrawerStatusContext';\nimport getDrawerStatusFromState from '../utils/getDrawerStatusFromState';\nimport DrawerContent from './DrawerContent';\nimport DrawerToggleButton from './DrawerToggleButton';\nimport { GestureHandlerRootView } from './GestureHandler';\nimport { MaybeScreen, MaybeScreenContainer } from './ScreenFallback';\nconst getDefaultDrawerWidth = _ref => {\n let {\n height,\n width\n } = _ref;\n /*\n * Default drawer width is screen width - header height\n * with a max width of 280 on mobile and 320 on tablet\n * https://material.io/components/navigation-drawer\n */\n const smallerAxisSize = Math.min(height, width);\n const isLandscape = width > height;\n const isTablet = smallerAxisSize >= 600;\n const appBarHeight = Platform.OS === 'ios' ? isLandscape ? 32 : 44 : 56;\n const maxWidth = isTablet ? 320 : 280;\n return Math.min(smallerAxisSize - appBarHeight, maxWidth);\n};\nconst GestureHandlerWrapper = GestureHandlerRootView ?? View;\nfunction DrawerViewBase(_ref2) {\n var _Reanimated$isConfigu;\n let {\n state,\n navigation,\n descriptors,\n defaultStatus,\n drawerContent = props => /*#__PURE__*/React.createElement(DrawerContent, props),\n detachInactiveScreens = Platform.OS === 'web' || Platform.OS === 'android' || Platform.OS === 'ios',\n // Reanimated 2 is not configured\n // @ts-expect-error: the type definitions are incomplete\n useLegacyImplementation = !((_Reanimated$isConfigu = Reanimated.isConfigured) !== null && _Reanimated$isConfigu !== void 0 && _Reanimated$isConfigu.call(Reanimated))\n } = _ref2;\n // Reanimated v3 dropped legacy v1 syntax\n const legacyImplemenationNotAvailable = require('react-native-reanimated').abs === undefined;\n if (useLegacyImplementation && legacyImplemenationNotAvailable) {\n throw new Error('The `useLegacyImplementation` prop is not available with Reanimated 3 as it no longer includes support for Reanimated 1 legacy API. Remove the `useLegacyImplementation` prop from `Drawer.Navigator` to be able to use it.');\n }\n const Drawer = useLegacyImplementation ? require('./legacy/Drawer').default : require('./modern/Drawer').default;\n const focusedRouteKey = state.routes[state.index].key;\n const {\n drawerHideStatusBarOnOpen = false,\n drawerPosition = I18nManager.getConstants().isRTL ? 'right' : 'left',\n drawerStatusBarAnimation = 'slide',\n drawerStyle,\n drawerType = Platform.select({\n ios: 'slide',\n default: 'front'\n }),\n gestureHandlerProps,\n keyboardDismissMode = 'on-drag',\n overlayColor = 'rgba(0, 0, 0, 0.5)',\n swipeEdgeWidth = 32,\n swipeEnabled = Platform.OS !== 'web' && Platform.OS !== 'windows' && Platform.OS !== 'macos',\n swipeMinDistance = 60,\n overlayAccessibilityLabel\n } = descriptors[focusedRouteKey].options;\n const [loaded, setLoaded] = React.useState([focusedRouteKey]);\n if (!loaded.includes(focusedRouteKey)) {\n setLoaded([...loaded, focusedRouteKey]);\n }\n const dimensions = useSafeAreaFrame();\n const {\n colors\n } = useTheme();\n const drawerStatus = getDrawerStatusFromState(state);\n const handleDrawerOpen = React.useCallback(() => {\n navigation.dispatch({\n ...DrawerActions.openDrawer(),\n target: state.key\n });\n }, [navigation, state.key]);\n const handleDrawerClose = React.useCallback(() => {\n navigation.dispatch({\n ...DrawerActions.closeDrawer(),\n target: state.key\n });\n }, [navigation, state.key]);\n React.useEffect(() => {\n if (drawerStatus === defaultStatus || drawerType === 'permanent') {\n return;\n }\n const handleHardwareBack = () => {\n // We shouldn't handle the back button if the parent screen isn't focused\n // This will avoid the drawer overriding event listeners from a focused screen\n if (!navigation.isFocused()) {\n return false;\n }\n if (defaultStatus === 'open') {\n handleDrawerOpen();\n } else {\n handleDrawerClose();\n }\n return true;\n };\n\n // We only add the listeners when drawer opens\n // This way we can make sure that the listener is added as late as possible\n // This will make sure that our handler will run first when back button is pressed\n return addCancelListener(handleHardwareBack);\n }, [defaultStatus, drawerStatus, drawerType, handleDrawerClose, handleDrawerOpen, navigation]);\n const renderDrawerContent = () => {\n return /*#__PURE__*/React.createElement(DrawerPositionContext.Provider, {\n value: drawerPosition\n }, drawerContent({\n state: state,\n navigation: navigation,\n descriptors: descriptors\n }));\n };\n const renderSceneContent = () => {\n return /*#__PURE__*/React.createElement(MaybeScreenContainer, {\n enabled: detachInactiveScreens,\n hasTwoStates: true,\n style: styles.content\n }, state.routes.map((route, index) => {\n const descriptor = descriptors[route.key];\n const {\n lazy = true,\n unmountOnBlur\n } = descriptor.options;\n const isFocused = state.index === index;\n if (unmountOnBlur && !isFocused) {\n return null;\n }\n if (lazy && !loaded.includes(route.key) && !isFocused) {\n // Don't render a lazy screen if we've never navigated to it\n return null;\n }\n const {\n freezeOnBlur,\n header = _ref3 => {\n let {\n layout,\n options\n } = _ref3;\n return /*#__PURE__*/React.createElement(Header, _extends({}, options, {\n layout: layout,\n title: getHeaderTitle(options, route.name),\n headerLeft: options.headerLeft ?? (props => /*#__PURE__*/React.createElement(DrawerToggleButton, props))\n }));\n },\n headerShown,\n headerStatusBarHeight,\n headerTransparent,\n sceneContainerStyle\n } = descriptor.options;\n return /*#__PURE__*/React.createElement(MaybeScreen, {\n key: route.key,\n style: [StyleSheet.absoluteFill, {\n zIndex: isFocused ? 0 : -1\n }],\n visible: isFocused,\n enabled: detachInactiveScreens,\n freezeOnBlur: freezeOnBlur\n }, /*#__PURE__*/React.createElement(Screen, {\n focused: isFocused,\n route: descriptor.route,\n navigation: descriptor.navigation,\n headerShown: headerShown,\n headerStatusBarHeight: headerStatusBarHeight,\n headerTransparent: headerTransparent,\n header: header({\n layout: dimensions,\n route: descriptor.route,\n navigation: descriptor.navigation,\n options: descriptor.options\n }),\n style: sceneContainerStyle\n }, descriptor.render()));\n }));\n };\n return /*#__PURE__*/React.createElement(DrawerStatusContext.Provider, {\n value: drawerStatus\n }, /*#__PURE__*/React.createElement(Drawer, {\n open: drawerStatus !== 'closed',\n onOpen: handleDrawerOpen,\n onClose: handleDrawerClose,\n gestureHandlerProps: gestureHandlerProps,\n swipeEnabled: swipeEnabled,\n swipeEdgeWidth: swipeEdgeWidth,\n swipeVelocityThreshold: 500,\n swipeDistanceThreshold: swipeMinDistance,\n hideStatusBarOnOpen: drawerHideStatusBarOnOpen,\n statusBarAnimation: drawerStatusBarAnimation,\n keyboardDismissMode: keyboardDismissMode,\n drawerType: drawerType,\n overlayAccessibilityLabel: overlayAccessibilityLabel,\n drawerPosition: drawerPosition,\n drawerStyle: [{\n width: getDefaultDrawerWidth(dimensions),\n backgroundColor: colors.card\n }, drawerType === 'permanent' && (drawerPosition === 'left' ? {\n borderRightColor: colors.border,\n borderRightWidth: StyleSheet.hairlineWidth\n } : {\n borderLeftColor: colors.border,\n borderLeftWidth: StyleSheet.hairlineWidth\n }), drawerStyle],\n overlayStyle: {\n backgroundColor: overlayColor\n },\n renderDrawerContent: renderDrawerContent,\n renderSceneContent: renderSceneContent,\n dimensions: dimensions\n }));\n}\nexport default function DrawerView(_ref4) {\n let {\n navigation,\n ...rest\n } = _ref4;\n return /*#__PURE__*/React.createElement(SafeAreaProviderCompat, null, /*#__PURE__*/React.createElement(GestureHandlerWrapper, {\n style: styles.content\n }, /*#__PURE__*/React.createElement(DrawerViewBase, _extends({\n navigation: navigation\n }, rest))));\n}\nconst styles = StyleSheet.create({\n content: {\n flex: 1\n }\n});\n//# sourceMappingURL=DrawerView.js.map","export const addCancelListener = callback => {\n var _document, _document$body, _document$body$addEve;\n const handleEscape = e => {\n if (e.key === 'Escape') {\n callback();\n }\n };\n (_document = document) === null || _document === void 0 ? void 0 : (_document$body = _document.body) === null || _document$body === void 0 ? void 0 : (_document$body$addEve = _document$body.addEventListener) === null || _document$body$addEve === void 0 ? void 0 : _document$body$addEve.call(_document$body, 'keyup', handleEscape);\n return () => {\n var _document2, _document2$body, _document2$body$remov;\n (_document2 = document) === null || _document2 === void 0 ? void 0 : (_document2$body = _document2.body) === null || _document2$body === void 0 ? void 0 : (_document2$body$remov = _document2$body.removeEventListener) === null || _document2$body$remov === void 0 ? void 0 : _document2$body$remov.call(_document2$body, 'keyup', handleEscape);\n };\n};\n//# sourceMappingURL=addCancelListener.js.map","import * as cookie from 'cookie';\r\nexport function hasDocumentCookie() {\r\n // Can we get/set cookies on document.cookie?\r\n return typeof document === 'object' && typeof document.cookie === 'string';\r\n}\r\nexport function cleanCookies() {\r\n document.cookie.split(';').forEach(function (c) {\r\n document.cookie = c\r\n .replace(/^ +/, '')\r\n .replace(/=.*/, '=;expires=' + new Date().toUTCString() + ';path=/');\r\n });\r\n}\r\nexport function parseCookies(cookies, options) {\r\n if (typeof cookies === 'string') {\r\n return cookie.parse(cookies, options);\r\n }\r\n else if (typeof cookies === 'object' && cookies !== null) {\r\n return cookies;\r\n }\r\n else {\r\n return {};\r\n }\r\n}\r\nexport function isParsingCookie(value, doNotParse) {\r\n if (typeof doNotParse === 'undefined') {\r\n // We guess if the cookie start with { or [, it has been serialized\r\n doNotParse =\r\n !value || (value[0] !== '{' && value[0] !== '[' && value[0] !== '\"');\r\n }\r\n return !doNotParse;\r\n}\r\nexport function readCookie(value, options) {\r\n if (options === void 0) { options = {}; }\r\n var cleanValue = cleanupCookieValue(value);\r\n if (isParsingCookie(cleanValue, options.doNotParse)) {\r\n try {\r\n return JSON.parse(cleanValue);\r\n }\r\n catch (e) {\r\n // At least we tried\r\n }\r\n }\r\n // Ignore clean value if we failed the deserialization\r\n // It is not relevant anymore to trim those values\r\n return value;\r\n}\r\nfunction cleanupCookieValue(value) {\r\n // express prepend j: before serializing a cookie\r\n if (value && value[0] === 'j' && value[1] === ':') {\r\n return value.substr(2);\r\n }\r\n return value;\r\n}\r\n","var __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(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))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nimport * as cookie from 'cookie';\r\nimport { hasDocumentCookie, parseCookies, readCookie } from './utils';\r\nvar Cookies = /** @class */ (function () {\r\n function Cookies(cookies, options) {\r\n var _this = this;\r\n this.changeListeners = [];\r\n this.HAS_DOCUMENT_COOKIE = false;\r\n this.cookies = parseCookies(cookies, options);\r\n new Promise(function () {\r\n _this.HAS_DOCUMENT_COOKIE = hasDocumentCookie();\r\n }).catch(function () { });\r\n }\r\n Cookies.prototype._updateBrowserValues = function (parseOptions) {\r\n if (!this.HAS_DOCUMENT_COOKIE) {\r\n return;\r\n }\r\n this.cookies = cookie.parse(document.cookie, parseOptions);\r\n };\r\n Cookies.prototype._emitChange = function (params) {\r\n for (var i = 0; i < this.changeListeners.length; ++i) {\r\n this.changeListeners[i](params);\r\n }\r\n };\r\n Cookies.prototype.get = function (name, options, parseOptions) {\r\n if (options === void 0) { options = {}; }\r\n this._updateBrowserValues(parseOptions);\r\n return readCookie(this.cookies[name], options);\r\n };\r\n Cookies.prototype.getAll = function (options, parseOptions) {\r\n if (options === void 0) { options = {}; }\r\n this._updateBrowserValues(parseOptions);\r\n var result = {};\r\n for (var name_1 in this.cookies) {\r\n result[name_1] = readCookie(this.cookies[name_1], options);\r\n }\r\n return result;\r\n };\r\n Cookies.prototype.set = function (name, value, options) {\r\n var _a;\r\n if (typeof value === 'object') {\r\n value = JSON.stringify(value);\r\n }\r\n this.cookies = __assign(__assign({}, this.cookies), (_a = {}, _a[name] = value, _a));\r\n if (this.HAS_DOCUMENT_COOKIE) {\r\n document.cookie = cookie.serialize(name, value, options);\r\n }\r\n this._emitChange({ name: name, value: value, options: options });\r\n };\r\n Cookies.prototype.remove = function (name, options) {\r\n var finalOptions = (options = __assign(__assign({}, options), { expires: new Date(1970, 1, 1, 0, 0, 1), maxAge: 0 }));\r\n this.cookies = __assign({}, this.cookies);\r\n delete this.cookies[name];\r\n if (this.HAS_DOCUMENT_COOKIE) {\r\n document.cookie = cookie.serialize(name, '', finalOptions);\r\n }\r\n this._emitChange({ name: name, value: undefined, options: options });\r\n };\r\n Cookies.prototype.addChangeListener = function (callback) {\r\n this.changeListeners.push(callback);\r\n };\r\n Cookies.prototype.removeChangeListener = function (callback) {\r\n var idx = this.changeListeners.indexOf(callback);\r\n if (idx >= 0) {\r\n this.changeListeners.splice(idx, 1);\r\n }\r\n };\r\n return Cookies;\r\n}());\r\nexport default Cookies;\r\n","import Cookies from './Cookies';\r\nexport default Cookies;\r\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","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport { useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport { Animated, Easing, Platform, Pressable } from 'react-native';\nconst AnimatedPressable = Animated.createAnimatedComponent(Pressable);\nconst ANDROID_VERSION_LOLLIPOP = 21;\nconst ANDROID_SUPPORTS_RIPPLE = Platform.OS === 'android' && Platform.Version >= ANDROID_VERSION_LOLLIPOP;\n\n/**\n * PlatformPressable provides an abstraction on top of Pressable to handle platform differences.\n */\nexport default function PlatformPressable(_ref) {\n let {\n onPressIn,\n onPressOut,\n android_ripple,\n pressColor,\n pressOpacity = 0.3,\n style,\n ...rest\n } = _ref;\n const {\n dark\n } = useTheme();\n const [opacity] = React.useState(() => new Animated.Value(1));\n const animateTo = (toValue, duration) => {\n if (ANDROID_SUPPORTS_RIPPLE) {\n return;\n }\n Animated.timing(opacity, {\n toValue,\n duration,\n easing: Easing.inOut(Easing.quad),\n useNativeDriver: true\n }).start();\n };\n const handlePressIn = e => {\n animateTo(pressOpacity, 0);\n onPressIn === null || onPressIn === void 0 ? void 0 : onPressIn(e);\n };\n const handlePressOut = e => {\n animateTo(1, 200);\n onPressOut === null || onPressOut === void 0 ? void 0 : onPressOut(e);\n };\n return /*#__PURE__*/React.createElement(AnimatedPressable, _extends({\n onPressIn: handlePressIn,\n onPressOut: handlePressOut,\n android_ripple: ANDROID_SUPPORTS_RIPPLE ? {\n color: pressColor !== undefined ? pressColor : dark ? 'rgba(255, 255, 255, .32)' : 'rgba(0, 0, 0, .32)',\n ...android_ripple\n } : undefined,\n style: [{\n opacity: !ANDROID_SUPPORTS_RIPPLE ? opacity : 1\n }, style]\n }, rest));\n}\n//# sourceMappingURL=PlatformPressable.js.map","import React from 'react';\nimport { Animated, StyleSheet } from 'react-native';\nexport const TabBarItemLabel = /*#__PURE__*/React.memo(_ref => {\n let {\n color,\n label,\n labelStyle,\n icon\n } = _ref;\n if (!label) {\n return null;\n }\n return /*#__PURE__*/React.createElement(Animated.Text, {\n style: [styles.label, icon ? {\n marginTop: 0\n } : null, labelStyle, {\n color: color\n }]\n }, label);\n});\nconst styles = StyleSheet.create({\n label: {\n margin: 4,\n backgroundColor: 'transparent',\n textTransform: 'uppercase'\n }\n});\n//# sourceMappingURL=TabBarItemLabel.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { Animated, StyleSheet, View } from 'react-native';\nimport useLatestCallback from 'use-latest-callback';\nimport { PlatformPressable } from './PlatformPressable';\nimport { TabBarItemLabel } from './TabBarItemLabel';\nconst DEFAULT_ACTIVE_COLOR = 'rgba(255, 255, 255, 1)';\nconst DEFAULT_INACTIVE_COLOR = 'rgba(255, 255, 255, 0.7)';\nconst getActiveOpacity = (position, routesLength, tabIndex) => {\n if (routesLength > 1) {\n const inputRange = Array.from({\n length: routesLength\n }, (_, i) => i);\n return position.interpolate({\n inputRange,\n outputRange: inputRange.map(i => i === tabIndex ? 1 : 0)\n });\n } else {\n return 1;\n }\n};\nconst getInactiveOpacity = (position, routesLength, tabIndex) => {\n if (routesLength > 1) {\n const inputRange = Array.from({\n length: routesLength\n }, (_, i) => i);\n return position.interpolate({\n inputRange,\n outputRange: inputRange.map(i => i === tabIndex ? 0 : 1)\n });\n } else {\n return 0;\n }\n};\nconst TabBarItemInternal = _ref => {\n let {\n accessibilityLabel,\n accessible,\n label: labelText,\n testID,\n onLongPress,\n onPress,\n isFocused,\n position,\n route,\n style,\n inactiveColor: inactiveColorCustom,\n activeColor: activeColorCustom,\n labelStyle,\n onLayout,\n index: tabIndex,\n pressColor,\n pressOpacity,\n renderBadge,\n renderIcon,\n defaultTabWidth,\n routesLength,\n renderLabel: renderLabelCustom,\n android_ripple = {\n borderless: true\n }\n } = _ref;\n const labelColorFromStyle = StyleSheet.flatten(labelStyle || {}).color;\n const activeColor = activeColorCustom !== undefined ? activeColorCustom : typeof labelColorFromStyle === 'string' ? labelColorFromStyle : DEFAULT_ACTIVE_COLOR;\n const inactiveColor = inactiveColorCustom !== undefined ? inactiveColorCustom : typeof labelColorFromStyle === 'string' ? labelColorFromStyle : DEFAULT_INACTIVE_COLOR;\n const activeOpacity = getActiveOpacity(position, routesLength, tabIndex);\n const inactiveOpacity = getInactiveOpacity(position, routesLength, tabIndex);\n let icon = null;\n let label = null;\n if (renderIcon) {\n const activeIcon = renderIcon({\n route,\n focused: true,\n color: activeColor\n });\n const inactiveIcon = renderIcon({\n route,\n focused: false,\n color: inactiveColor\n });\n if (inactiveIcon != null && activeIcon != null) {\n icon = /*#__PURE__*/React.createElement(View, {\n style: styles.icon\n }, /*#__PURE__*/React.createElement(Animated.View, {\n style: {\n opacity: inactiveOpacity\n }\n }, inactiveIcon), /*#__PURE__*/React.createElement(Animated.View, {\n style: [StyleSheet.absoluteFill, {\n opacity: activeOpacity\n }]\n }, activeIcon));\n }\n }\n const renderLabel = renderLabelCustom ? renderLabelCustom : labelProps => /*#__PURE__*/React.createElement(TabBarItemLabel, _extends({}, labelProps, {\n icon: icon,\n label: labelText,\n labelStyle: labelStyle\n }));\n if (renderLabel) {\n const activeLabel = renderLabel({\n route,\n focused: true,\n color: activeColor\n });\n const inactiveLabel = renderLabel({\n route,\n focused: false,\n color: inactiveColor\n });\n label = /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(Animated.View, {\n style: {\n opacity: inactiveOpacity\n }\n }, inactiveLabel), /*#__PURE__*/React.createElement(Animated.View, {\n style: [StyleSheet.absoluteFill, {\n opacity: activeOpacity\n }]\n }, activeLabel));\n }\n const tabStyle = StyleSheet.flatten(style);\n const isWidthSet = (tabStyle === null || tabStyle === void 0 ? void 0 : tabStyle.width) !== undefined;\n const tabContainerStyle = isWidthSet ? null : {\n width: defaultTabWidth\n };\n const scene = {\n route\n };\n accessibilityLabel = typeof accessibilityLabel !== 'undefined' ? accessibilityLabel : labelText;\n const badge = renderBadge ? renderBadge(scene) : null;\n return /*#__PURE__*/React.createElement(PlatformPressable, {\n android_ripple: android_ripple,\n testID: testID,\n accessible: accessible,\n accessibilityLabel: accessibilityLabel,\n accessibilityRole: \"tab\",\n accessibilityState: {\n selected: isFocused\n }\n // @ts-ignore: this is to support older React Native versions\n ,\n accessibilityStates: isFocused ? ['selected'] : [],\n pressColor: pressColor,\n pressOpacity: pressOpacity,\n delayPressIn: 0,\n onLayout: onLayout,\n onPress: onPress,\n onLongPress: onLongPress,\n style: [styles.pressable, tabContainerStyle]\n }, /*#__PURE__*/React.createElement(View, {\n pointerEvents: \"none\",\n style: [styles.item, tabStyle]\n }, icon, label, badge != null ? /*#__PURE__*/React.createElement(View, {\n style: styles.badge\n }, badge) : null));\n};\nconst MemoizedTabBarItemInternal = /*#__PURE__*/React.memo(TabBarItemInternal);\nexport function TabBarItem(props) {\n const {\n onPress,\n onLongPress,\n onLayout,\n navigationState,\n route,\n getAccessibilityLabel,\n getLabelText,\n getTestID,\n getAccessible,\n ...rest\n } = props;\n const onPressLatest = useLatestCallback(onPress);\n const onLongPressLatest = useLatestCallback(onLongPress);\n const onLayoutLatest = useLatestCallback(onLayout ? onLayout : () => {});\n const tabIndex = navigationState.routes.indexOf(route);\n const scene = {\n route\n };\n const accessibilityLabel = getAccessibilityLabel(scene);\n const label = getLabelText(scene);\n const testID = getTestID(scene);\n const accessible = getAccessible(scene);\n return /*#__PURE__*/React.createElement(MemoizedTabBarItemInternal, _extends({}, rest, {\n onPress: onPressLatest,\n onLayout: onLayoutLatest,\n onLongPress: onLongPressLatest,\n isFocused: navigationState.index === tabIndex,\n route: route,\n index: tabIndex,\n routesLength: navigationState.routes.length,\n accessibilityLabel: accessibilityLabel,\n label: label,\n testID: testID,\n accessible: accessible\n }));\n}\nconst styles = StyleSheet.create({\n icon: {\n margin: 2\n },\n item: {\n flex: 1,\n alignItems: 'center',\n justifyContent: 'center',\n padding: 10,\n minHeight: 48\n },\n badge: {\n position: 'absolute',\n top: 0,\n right: 0\n },\n pressable: {\n // The label is not pressable on Windows\n // Adding backgroundColor: 'transparent' seems to fix it\n backgroundColor: 'transparent'\n }\n});\n//# sourceMappingURL=TabBarItem.js.map","import color from 'color';\nimport { black, white } from '../../styles/themes/v2/colors';\nexport const MIN_WIDTH = 112;\nexport const MAX_WIDTH = 280;\nconst getDisabledColor = theme => {\n if (theme.isV3) {\n return theme.colors.onSurfaceDisabled;\n }\n return color(theme.dark ? white : black).alpha(0.32).rgb().string();\n};\nconst getTitleColor = _ref => {\n let {\n theme,\n disabled\n } = _ref;\n if (disabled) {\n return getDisabledColor(theme);\n }\n if (theme.isV3) {\n return theme.colors.onSurface;\n }\n return color(theme.colors.text).alpha(0.87).rgb().string();\n};\nconst getIconColor = _ref2 => {\n let {\n theme,\n disabled\n } = _ref2;\n if (disabled) {\n return getDisabledColor(theme);\n }\n if (theme.isV3) {\n return theme.colors.onSurfaceVariant;\n }\n return color(theme.colors.text).alpha(0.54).rgb().string();\n};\nconst getRippleColor = _ref3 => {\n let {\n theme,\n customRippleColor\n } = _ref3;\n if (customRippleColor) {\n return customRippleColor;\n }\n if (theme.isV3) {\n return color(theme.colors.onSurfaceVariant).alpha(0.12).rgb().string();\n }\n return undefined;\n};\nexport const getMenuItemColor = _ref4 => {\n let {\n theme,\n disabled,\n customRippleColor\n } = _ref4;\n return {\n titleColor: getTitleColor({\n theme,\n disabled\n }),\n iconColor: getIconColor({\n theme,\n disabled\n }),\n rippleColor: getRippleColor({\n theme,\n customRippleColor\n })\n };\n};\nexport const getContentMaxWidth = _ref5 => {\n let {\n isV3,\n iconWidth,\n leadingIcon,\n trailingIcon\n } = _ref5;\n if (isV3) {\n if (leadingIcon && trailingIcon) {\n return MAX_WIDTH - (2 * iconWidth + 24);\n }\n if (leadingIcon || trailingIcon) {\n return MAX_WIDTH - (iconWidth + 24);\n }\n return MAX_WIDTH - 12;\n }\n if (leadingIcon) {\n return MAX_WIDTH - (iconWidth + 48);\n }\n return MAX_WIDTH - 16;\n};\n//# sourceMappingURL=utils.js.map","import * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { getContentMaxWidth, getMenuItemColor, MAX_WIDTH, MIN_WIDTH } from './utils';\nimport { useInternalTheme } from '../../core/theming';\nimport Icon from '../Icon';\nimport TouchableRipple from '../TouchableRipple/TouchableRipple';\nimport Text from '../Typography/Text';\n/**\n * A component to show a single list item inside a Menu.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { View } from 'react-native';\n * import { Menu } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * \n * {}} title=\"Redo\" />\n * {}} title=\"Undo\" />\n * {}} title=\"Cut\" disabled />\n * {}} title=\"Copy\" disabled />\n * {}} title=\"Paste\" />\n * \n * );\n *\n * export default MyComponent;\n * ```\n */\nconst MenuItem = _ref => {\n let {\n leadingIcon,\n trailingIcon,\n dense,\n title,\n disabled,\n background,\n onPress,\n style,\n contentStyle,\n titleStyle,\n rippleColor: customRippleColor,\n testID = 'menu-item',\n accessibilityLabel,\n accessibilityState,\n theme: themeOverrides,\n titleMaxFontSizeMultiplier = 1.5\n } = _ref;\n const theme = useInternalTheme(themeOverrides);\n const {\n titleColor,\n iconColor,\n rippleColor\n } = getMenuItemColor({\n theme,\n disabled,\n customRippleColor\n });\n const {\n isV3\n } = theme;\n const containerPadding = isV3 ? 12 : 8;\n const iconWidth = isV3 ? 24 : 40;\n const minWidth = MIN_WIDTH - (isV3 ? 12 : 16);\n const maxWidth = getContentMaxWidth({\n isV3,\n iconWidth,\n leadingIcon,\n trailingIcon\n });\n const titleTextStyle = {\n color: titleColor,\n ...(isV3 ? theme.fonts.bodyLarge : {})\n };\n const newAccessibilityState = {\n ...accessibilityState,\n disabled\n };\n return /*#__PURE__*/React.createElement(TouchableRipple, {\n style: [styles.container, {\n paddingHorizontal: containerPadding\n }, dense && styles.md3DenseContainer, style],\n onPress: onPress,\n disabled: disabled,\n testID: testID,\n background: background,\n accessibilityLabel: accessibilityLabel,\n accessibilityRole: \"menuitem\",\n accessibilityState: newAccessibilityState,\n rippleColor: rippleColor\n }, /*#__PURE__*/React.createElement(View, {\n style: styles.row\n }, leadingIcon ? /*#__PURE__*/React.createElement(View, {\n style: [!isV3 && styles.item, {\n width: iconWidth\n }],\n pointerEvents: \"box-none\"\n }, /*#__PURE__*/React.createElement(Icon, {\n source: leadingIcon,\n size: 24,\n color: iconColor\n })) : null, /*#__PURE__*/React.createElement(View, {\n style: [!isV3 && styles.item, styles.content, {\n minWidth,\n maxWidth\n }, isV3 && (leadingIcon ? styles.md3LeadingIcon : styles.md3WithoutLeadingIcon), contentStyle],\n pointerEvents: \"none\"\n }, /*#__PURE__*/React.createElement(Text, {\n variant: \"bodyLarge\",\n selectable: false,\n numberOfLines: 1,\n testID: `${testID}-title`,\n style: [!isV3 && styles.title, titleTextStyle, titleStyle],\n maxFontSizeMultiplier: titleMaxFontSizeMultiplier\n }, title)), isV3 && trailingIcon ? /*#__PURE__*/React.createElement(View, {\n style: [!isV3 && styles.item, {\n width: iconWidth\n }],\n pointerEvents: \"box-none\"\n }, /*#__PURE__*/React.createElement(Icon, {\n source: trailingIcon,\n size: 24,\n color: iconColor\n })) : null));\n};\nMenuItem.displayName = 'Menu.Item';\nconst styles = StyleSheet.create({\n container: {\n minWidth: MIN_WIDTH,\n maxWidth: MAX_WIDTH,\n height: 48,\n justifyContent: 'center'\n },\n md3DenseContainer: {\n height: 32\n },\n row: {\n flexDirection: 'row'\n },\n title: {\n fontSize: 16\n },\n item: {\n marginHorizontal: 8\n },\n content: {\n justifyContent: 'center'\n },\n md3LeadingIcon: {\n marginLeft: 12\n },\n md3WithoutLeadingIcon: {\n marginLeft: 4\n }\n});\nexport default MenuItem;\n//# sourceMappingURL=MenuItem.js.map","import { nanoid } from 'nanoid/non-secure';\nexport default function createMemoryHistory() {\n let index = 0;\n let items = [];\n\n // Pending callbacks for `history.go(n)`\n // We might modify the callback stored if it was interrupted, so we have a ref to identify it\n const pending = [];\n const interrupt = () => {\n // If another history operation was performed we need to interrupt existing ones\n // This makes sure that calls such as `history.replace` after `history.go` don't happen\n // Since otherwise it won't be correct if something else has changed\n pending.forEach(it => {\n const cb = it.cb;\n it.cb = () => cb(true);\n });\n };\n const history = {\n get index() {\n var _window$history$state;\n // We store an id in the state instead of an index\n // Index could get out of sync with in-memory values if page reloads\n const id = (_window$history$state = window.history.state) === null || _window$history$state === void 0 ? void 0 : _window$history$state.id;\n if (id) {\n const index = items.findIndex(item => item.id === id);\n return index > -1 ? index : 0;\n }\n return 0;\n },\n get(index) {\n return items[index];\n },\n backIndex(_ref) {\n let {\n path\n } = _ref;\n // We need to find the index from the element before current to get closest path to go back to\n for (let i = index - 1; i >= 0; i--) {\n const item = items[i];\n if (item.path === path) {\n return i;\n }\n }\n return -1;\n },\n push(_ref2) {\n let {\n path,\n state\n } = _ref2;\n interrupt();\n const id = nanoid();\n\n // When a new entry is pushed, all the existing entries after index will be inaccessible\n // So we remove any existing entries after the current index to clean them up\n items = items.slice(0, index + 1);\n items.push({\n path,\n state,\n id\n });\n index = items.length - 1;\n\n // We pass empty string for title because it's ignored in all browsers except safari\n // We don't store state object in history.state because:\n // - browsers have limits on how big it can be, and we don't control the size\n // - while not recommended, there could be non-serializable data in state\n window.history.pushState({\n id\n }, '', path);\n },\n replace(_ref3) {\n var _window$history$state2;\n let {\n path,\n state\n } = _ref3;\n interrupt();\n const id = ((_window$history$state2 = window.history.state) === null || _window$history$state2 === void 0 ? void 0 : _window$history$state2.id) ?? nanoid();\n\n // Need to keep the hash part of the path if there was no previous history entry\n // or the previous history entry had the same path\n let pathWithHash = path;\n if (!items.length || items.findIndex(item => item.id === id) < 0) {\n // There are two scenarios for creating an array with only one history record:\n // - When loaded id not found in the items array, this function by default will replace\n // the first item. We need to keep only the new updated object, otherwise it will break\n // the page when navigating forward in history.\n // - This is the first time any state modifications are done\n // So we need to push the entry as there's nothing to replace\n pathWithHash = pathWithHash + location.hash;\n items = [{\n path: pathWithHash,\n state,\n id\n }];\n index = 0;\n } else {\n if (items[index].path === path) {\n pathWithHash = pathWithHash + location.hash;\n }\n items[index] = {\n path,\n state,\n id\n };\n }\n window.history.replaceState({\n id\n }, '', pathWithHash);\n },\n // `history.go(n)` is asynchronous, there are couple of things to keep in mind:\n // - it won't do anything if we can't go `n` steps, the `popstate` event won't fire.\n // - each `history.go(n)` call will trigger a separate `popstate` event with correct location.\n // - the `popstate` event fires before the next frame after calling `history.go(n)`.\n // This method differs from `history.go(n)` in the sense that it'll go back as many steps it can.\n go(n) {\n interrupt();\n\n // To guard against unexpected navigation out of the app we will assume that browser history is only as deep as the length of our memory\n // history. If we don't have an item to navigate to then update our index and navigate as far as we can without taking the user out of the app.\n const nextIndex = index + n;\n const lastItemIndex = items.length - 1;\n if (n < 0 && !items[nextIndex]) {\n // Attempted to navigate beyond the first index. Negating the current index will align the browser history with the first item.\n n = -index;\n index = 0;\n } else if (n > 0 && nextIndex > lastItemIndex) {\n // Attempted to navigate past the last index. Calculate how many indices away from the last index and go there.\n n = lastItemIndex - index;\n index = lastItemIndex;\n } else {\n index = nextIndex;\n }\n if (n === 0) {\n return;\n }\n\n // When we call `history.go`, `popstate` will fire when there's history to go back to\n // So we need to somehow handle following cases:\n // - There's history to go back, `history.go` is called, and `popstate` fires\n // - `history.go` is called multiple times, we need to resolve on respective `popstate`\n // - No history to go back, but `history.go` was called, browser has no API to detect it\n return new Promise((resolve, reject) => {\n const done = interrupted => {\n clearTimeout(timer);\n if (interrupted) {\n reject(new Error('History was changed during navigation.'));\n return;\n }\n\n // There seems to be a bug in Chrome regarding updating the title\n // If we set a title just before calling `history.go`, the title gets lost\n // However the value of `document.title` is still what we set it to\n // It's just not displayed in the tab bar\n // To update the tab bar, we need to reset the title to something else first (e.g. '')\n // And set the title to what it was before so it gets applied\n // It won't work without setting it to empty string coz otherwise title isn't changing\n // Which means that the browser won't do anything after setting the title\n const {\n title\n } = window.document;\n window.document.title = '';\n window.document.title = title;\n resolve();\n };\n pending.push({\n ref: done,\n cb: done\n });\n\n // If navigation didn't happen within 100ms, assume that it won't happen\n // This may not be accurate, but hopefully it won't take so much time\n // In Chrome, navigation seems to happen instantly in next microtask\n // But on Firefox, it seems to take much longer, around 50ms from our testing\n // We're using a hacky timeout since there doesn't seem to be way to know for sure\n const timer = setTimeout(() => {\n const index = pending.findIndex(it => it.ref === done);\n if (index > -1) {\n pending[index].cb();\n pending.splice(index, 1);\n }\n }, 100);\n const onPopState = () => {\n var _window$history$state3;\n const id = (_window$history$state3 = window.history.state) === null || _window$history$state3 === void 0 ? void 0 : _window$history$state3.id;\n const currentIndex = items.findIndex(item => item.id === id);\n\n // Fix createMemoryHistory.index variable's value\n // as it may go out of sync when navigating in the browser.\n index = Math.max(currentIndex, 0);\n const last = pending.pop();\n window.removeEventListener('popstate', onPopState);\n last === null || last === void 0 ? void 0 : last.cb();\n };\n window.addEventListener('popstate', onPopState);\n window.history.go(n);\n });\n },\n // The `popstate` event is triggered when history changes, except `pushState` and `replaceState`\n // If we call `history.go(n)` ourselves, we don't want it to trigger the listener\n // Here we normalize it so that only external changes (e.g. user pressing back/forward) trigger the listener\n listen(listener) {\n const onPopState = () => {\n if (pending.length) {\n // This was triggered by `history.go(n)`, we shouldn't call the listener\n return;\n }\n listener();\n };\n window.addEventListener('popstate', onPopState);\n return () => window.removeEventListener('popstate', onPopState);\n }\n };\n return history;\n}\n//# sourceMappingURL=createMemoryHistory.js.map","import { findFocusedRoute, getActionFromState as getActionFromStateDefault, getPathFromState as getPathFromStateDefault, getStateFromPath as getStateFromPathDefault } from '@react-navigation/core';\nimport isEqual from 'fast-deep-equal';\nimport * as React from 'react';\nimport createMemoryHistory from './createMemoryHistory';\nimport ServerContext from './ServerContext';\n/**\n * Find the matching navigation state that changed between 2 navigation states\n * e.g.: a -> b -> c -> d and a -> b -> c -> e -> f, if history in b changed, b is the matching state\n */\nconst findMatchingState = (a, b) => {\n if (a === undefined || b === undefined || a.key !== b.key) {\n return [undefined, undefined];\n }\n\n // Tab and drawer will have `history` property, but stack will have history in `routes`\n const aHistoryLength = a.history ? a.history.length : a.routes.length;\n const bHistoryLength = b.history ? b.history.length : b.routes.length;\n const aRoute = a.routes[a.index];\n const bRoute = b.routes[b.index];\n const aChildState = aRoute.state;\n const bChildState = bRoute.state;\n\n // Stop here if this is the state object that changed:\n // - history length is different\n // - focused routes are different\n // - one of them doesn't have child state\n // - child state keys are different\n if (aHistoryLength !== bHistoryLength || aRoute.key !== bRoute.key || aChildState === undefined || bChildState === undefined || aChildState.key !== bChildState.key) {\n return [a, b];\n }\n return findMatchingState(aChildState, bChildState);\n};\n\n/**\n * Run async function in series as it's called.\n */\nexport const series = cb => {\n let queue = Promise.resolve();\n const callback = () => {\n queue = queue.then(cb);\n };\n return callback;\n};\nlet linkingHandlers = [];\nexport default function useLinking(ref, _ref) {\n let {\n independent,\n enabled = true,\n config,\n getStateFromPath = getStateFromPathDefault,\n getPathFromState = getPathFromStateDefault,\n getActionFromState = getActionFromStateDefault\n } = _ref;\n React.useEffect(() => {\n if (process.env.NODE_ENV === 'production') {\n return undefined;\n }\n if (independent) {\n return undefined;\n }\n if (enabled !== false && linkingHandlers.length) {\n console.error(['Looks like you have configured linking in multiple places. This is likely an error since deep links should only be handled in one place to avoid conflicts. Make sure that:', \"- You don't have multiple NavigationContainers in the app each with 'linking' enabled\", '- Only a single instance of the root component is rendered'].join('\\n').trim());\n }\n const handler = Symbol();\n if (enabled !== false) {\n linkingHandlers.push(handler);\n }\n return () => {\n const index = linkingHandlers.indexOf(handler);\n if (index > -1) {\n linkingHandlers.splice(index, 1);\n }\n };\n }, [enabled, independent]);\n const [history] = React.useState(createMemoryHistory);\n\n // We store these options in ref to avoid re-creating getInitialState and re-subscribing listeners\n // This lets user avoid wrapping the items in `React.useCallback` or `React.useMemo`\n // Not re-creating `getInitialState` is important coz it makes it easier for the user to use in an effect\n const enabledRef = React.useRef(enabled);\n const configRef = React.useRef(config);\n const getStateFromPathRef = React.useRef(getStateFromPath);\n const getPathFromStateRef = React.useRef(getPathFromState);\n const getActionFromStateRef = React.useRef(getActionFromState);\n React.useEffect(() => {\n enabledRef.current = enabled;\n configRef.current = config;\n getStateFromPathRef.current = getStateFromPath;\n getPathFromStateRef.current = getPathFromState;\n getActionFromStateRef.current = getActionFromState;\n });\n const server = React.useContext(ServerContext);\n const getInitialState = React.useCallback(() => {\n let value;\n if (enabledRef.current) {\n const location = (server === null || server === void 0 ? void 0 : server.location) ?? (typeof window !== 'undefined' ? window.location : undefined);\n const path = location ? location.pathname + location.search : undefined;\n if (path) {\n value = getStateFromPathRef.current(path, configRef.current);\n }\n }\n const thenable = {\n then(onfulfilled) {\n return Promise.resolve(onfulfilled ? onfulfilled(value) : value);\n },\n catch() {\n return thenable;\n }\n };\n return thenable;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n const previousIndexRef = React.useRef(undefined);\n const previousStateRef = React.useRef(undefined);\n const pendingPopStatePathRef = React.useRef(undefined);\n React.useEffect(() => {\n previousIndexRef.current = history.index;\n return history.listen(() => {\n const navigation = ref.current;\n if (!navigation || !enabled) {\n return;\n }\n const path = location.pathname + location.search;\n const index = history.index;\n const previousIndex = previousIndexRef.current ?? 0;\n previousIndexRef.current = index;\n pendingPopStatePathRef.current = path;\n\n // When browser back/forward is clicked, we first need to check if state object for this index exists\n // If it does we'll reset to that state object\n // Otherwise, we'll handle it like a regular deep link\n const record = history.get(index);\n if ((record === null || record === void 0 ? void 0 : record.path) === path && record !== null && record !== void 0 && record.state) {\n navigation.resetRoot(record.state);\n return;\n }\n const state = getStateFromPathRef.current(path, configRef.current);\n\n // We should only dispatch an action when going forward\n // Otherwise the action will likely add items to history, which would mess things up\n if (state) {\n // Make sure that the routes in the state exist in the root navigator\n // Otherwise there's an error in the linking configuration\n const rootState = navigation.getRootState();\n if (state.routes.some(r => !(rootState !== null && rootState !== void 0 && rootState.routeNames.includes(r.name)))) {\n console.warn(\"The navigation state parsed from the URL contains routes not present in the root navigator. This usually means that the linking configuration doesn't match the navigation structure. See https://reactnavigation.org/docs/configuring-links for more details on how to specify a linking configuration.\");\n return;\n }\n if (index > previousIndex) {\n const action = getActionFromStateRef.current(state, configRef.current);\n if (action !== undefined) {\n try {\n navigation.dispatch(action);\n } catch (e) {\n // Ignore any errors from deep linking.\n // This could happen in case of malformed links, navigation object not being initialized etc.\n console.warn(`An error occurred when trying to handle the link '${path}': ${typeof e === 'object' && e != null && 'message' in e ? e.message : e}`);\n }\n } else {\n navigation.resetRoot(state);\n }\n } else {\n navigation.resetRoot(state);\n }\n } else {\n // if current path didn't return any state, we should revert to initial state\n navigation.resetRoot(state);\n }\n });\n }, [enabled, history, ref]);\n React.useEffect(() => {\n var _ref$current;\n if (!enabled) {\n return;\n }\n const getPathForRoute = (route, state) => {\n // If the `route` object contains a `path`, use that path as long as `route.name` and `params` still match\n // This makes sure that we preserve the original URL for wildcard routes\n if (route !== null && route !== void 0 && route.path) {\n const stateForPath = getStateFromPathRef.current(route.path, configRef.current);\n if (stateForPath) {\n const focusedRoute = findFocusedRoute(stateForPath);\n if (focusedRoute && focusedRoute.name === route.name && isEqual(focusedRoute.params, route.params)) {\n return route.path;\n }\n }\n }\n return getPathFromStateRef.current(state, configRef.current);\n };\n if (ref.current) {\n // We need to record the current metadata on the first render if they aren't set\n // This will allow the initial state to be in the history entry\n const state = ref.current.getRootState();\n if (state) {\n const route = findFocusedRoute(state);\n const path = getPathForRoute(route, state);\n if (previousStateRef.current === undefined) {\n previousStateRef.current = state;\n }\n history.replace({\n path,\n state\n });\n }\n }\n const onStateChange = async () => {\n const navigation = ref.current;\n if (!navigation || !enabled) {\n return;\n }\n const previousState = previousStateRef.current;\n const state = navigation.getRootState();\n\n // root state may not available, for example when root navigators switch inside the container\n if (!state) {\n return;\n }\n const pendingPath = pendingPopStatePathRef.current;\n const route = findFocusedRoute(state);\n const path = getPathForRoute(route, state);\n previousStateRef.current = state;\n pendingPopStatePathRef.current = undefined;\n\n // To detect the kind of state change, we need to:\n // - Find the common focused navigation state in previous and current state\n // - If only the route keys changed, compare history/routes.length to check if we go back/forward/replace\n // - If no common focused navigation state found, it's a replace\n const [previousFocusedState, focusedState] = findMatchingState(previousState, state);\n if (previousFocusedState && focusedState &&\n // We should only handle push/pop if path changed from what was in last `popstate`\n // Otherwise it's likely a change triggered by `popstate`\n path !== pendingPath) {\n const historyDelta = (focusedState.history ? focusedState.history.length : focusedState.routes.length) - (previousFocusedState.history ? previousFocusedState.history.length : previousFocusedState.routes.length);\n if (historyDelta > 0) {\n // If history length is increased, we should pushState\n // Note that path might not actually change here, for example, drawer open should pushState\n history.push({\n path,\n state\n });\n } else if (historyDelta < 0) {\n // If history length is decreased, i.e. entries were removed, we want to go back\n\n const nextIndex = history.backIndex({\n path\n });\n const currentIndex = history.index;\n try {\n if (nextIndex !== -1 && nextIndex < currentIndex) {\n // An existing entry for this path exists and it's less than current index, go back to that\n await history.go(nextIndex - currentIndex);\n } else {\n // We couldn't find an existing entry to go back to, so we'll go back by the delta\n // This won't be correct if multiple routes were pushed in one go before\n // Usually this shouldn't happen and this is a fallback for that\n await history.go(historyDelta);\n }\n\n // Store the updated state as well as fix the path if incorrect\n history.replace({\n path,\n state\n });\n } catch (e) {\n // The navigation was interrupted\n }\n } else {\n // If history length is unchanged, we want to replaceState\n history.replace({\n path,\n state\n });\n }\n } else {\n // If no common navigation state was found, assume it's a replace\n // This would happen if the user did a reset/conditionally changed navigators\n history.replace({\n path,\n state\n });\n }\n };\n\n // We debounce onStateChange coz we don't want multiple state changes to be handled at one time\n // This could happen since `history.go(n)` is asynchronous\n // If `pushState` or `replaceState` were called before `history.go(n)` completes, it'll mess stuff up\n return (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.addListener('state', series(onStateChange));\n }, [enabled, history, ref]);\n return {\n getInitialState\n };\n}\n//# sourceMappingURL=useLinking.js.map","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","/**\n * @license React\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=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1b}return!1}function t(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 z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new t(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new t(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new t(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new t(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){z[a]=new t(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new t(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new t(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new t(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new t(a,5,!1,a.toLowerCase(),null,!1,!1)});var qa=/[\\-:]([a-z])/g;function ra(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(qa,\nra);z[b]=new t(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(qa,ra);z[b]=new t(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(qa,ra);z[b]=new t(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new t(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new t(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new t(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction sa(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Ma=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?La(a):\"\"}\nfunction Oa(a){switch(a.tag){case 5:return La(a.type);case 16:return La(\"Lazy\");case 13:return La(\"Suspense\");case 19:return La(\"SuspenseList\");case 0:case 2:case 15:return a=Na(a.type,!1),a;case 11:return a=Na(a.type.render,!1),a;case 1:return a=Na(a.type,!0),a;default:return\"\"}}\nfunction Pa(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 wa:return\"Fragment\";case va:return\"Portal\";case za:return\"Profiler\";case xa:return\"StrictMode\";case Da:return\"Suspense\";case Ea:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ba:return(a.displayName||\"Context\")+\".Consumer\";case Aa:return(a._context.displayName||\"Context\")+\".Provider\";case Ca:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Fa:return b=a.displayName||null,null!==b?b:Pa(a.type)||\"Memo\";case Ga:b=a._payload;a=a._init;try{return Pa(a(b))}catch(c){}}return null}\nfunction Qa(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Pa(b);case 8:return b===xa?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Ra(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Sa(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ta(a){var b=Sa(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 Ua(a){a._valueTracker||(a._valueTracker=Ta(a))}function Va(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Sa(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Wa(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 Xa(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Ya(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Ra(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 Za(a,b){b=b.checked;null!=b&&sa(a,\"checked\",b,!1)}\nfunction $a(a,b){Za(a,b);var c=Ra(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,Ra(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||Wa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var db=Array.isArray;\nfunction eb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=lb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction nb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar ob={animationIterationCount:!0,aspectRatio:!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,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},pb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(ob).forEach(function(a){pb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);ob[b]=ob[a]})});function qb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||ob.hasOwnProperty(a)&&ob[a]?(\"\"+b).trim():b+\"px\"}\nfunction rb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=qb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var sb=A({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 tb(a,b){if(b){if(sb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction ub(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}}var vb=null;function wb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var xb=null,yb=null,zb=null;\nfunction Ab(a){if(a=Bb(a)){if(\"function\"!==typeof xb)throw Error(p(280));var b=a.stateNode;b&&(b=Cb(b),xb(a.stateNode,a.type,b))}}function Db(a){yb?zb?zb.push(a):zb=[a]:yb=a}function Eb(){if(yb){var a=yb,b=zb;zb=yb=null;Ab(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(oc(a)/pc|0)|0}var qc=64,rc=4194304;\nfunction sc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function tc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=sc(h):(f&=g,0!==f&&(d=sc(f)))}else g=c&~e,0!==g?d=sc(g):0!==f&&(d=sc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction zc(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-nc(b);a[b]=c}function Ac(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=ae),de=String.fromCharCode(32),ee=!1;\nfunction fe(a,b){switch(a){case \"keyup\":return-1!==Zd.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function ge(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var he=!1;function ie(a,b){switch(a){case \"compositionend\":return ge(b);case \"keypress\":if(32!==b.which)return null;ee=!0;return de;case \"textInput\":return a=b.data,a===de&&ee?null:a;default:return null}}\nfunction je(a,b){if(he)return\"compositionend\"===a||!$d&&fe(a,b)?(a=md(),ld=kd=jd=null,he=!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=Ie(c)}}function Ke(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Ke(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Le(){for(var a=window,b=Wa();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=Wa(a.document)}return b}function Me(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)}\nfunction Ne(a){var b=Le(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Ke(c.ownerDocument.documentElement,c)){if(null!==d&&Me(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Je(c,f);var g=Je(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Pe=null,Qe=null,Re=null,Se=!1;\nfunction Te(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Se||null==Pe||Pe!==Wa(d)||(d=Pe,\"selectionStart\"in d&&Me(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}),Re&&He(Re,d)||(Re=d,d=ne(Qe,\"onSelect\"),0Sf||(a.current=Rf[Sf],Rf[Sf]=null,Sf--)}function G(a,b){Sf++;Rf[Sf]=a.current;a.current=b}var Uf={},H=Tf(Uf),Vf=Tf(!1),Wf=Uf;function Xf(a,b){var c=a.type.contextTypes;if(!c)return Uf;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}\nfunction Yf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Zf(){E(Vf);E(H)}function $f(a,b,c){if(H.current!==Uf)throw Error(p(168));G(H,b);G(Vf,c)}function ag(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Qa(a)||\"Unknown\",e));return A({},c,d)}\nfunction bg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Uf;Wf=H.current;G(H,a);G(Vf,Vf.current);return!0}function cg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=ag(a,b,Wf),d.__reactInternalMemoizedMergedChildContext=a,E(Vf),E(H),G(H,a)):E(Vf);G(Vf,c)}var dg=null,eg=!1,fg=!1;function gg(a){null===dg?dg=[a]:dg.push(a)}function hg(a){eg=!0;gg(a)}\nfunction ig(){if(!fg&&null!==dg){fg=!0;var a=0,b=C;try{var c=dg;for(C=1;a>=g;e-=g;Yg=1<<32-nc(b)+e|c<m?(x=r,r=null):x=r.sibling;var v=q(e,r,h[m],k);if(null===v){null===r&&(r=x);break}a&&r&&null===v.alternate&&b(e,r);g=f(v,g,m);null===n?l=v:n.sibling=v;n=v;r=x}if(m===h.length)return c(e,r),I&&$g(e,m),l;if(null===r){for(;mr?(x=m,m=null):x=m.sibling;var w=q(e,m,v.value,k);if(null===w){null===m&&(m=x);break}a&&m&&null===w.alternate&&b(e,m);g=f(w,g,r);null===n?l=w:n.sibling=w;n=w;m=x}if(v.done)return c(e,\nm),I&&$g(e,r),l;if(null===m){for(;!v.done;r++,v=h.next())v=u(e,v.value,k),null!==v&&(g=f(v,g,r),null===n?l=v:n.sibling=v,n=v);I&&$g(e,r);return l}for(m=d(e,m);!v.done;r++,v=h.next())v=y(m,e,r,v.value,k),null!==v&&(a&&null!==v.alternate&&m.delete(null===v.key?r:v.key),g=f(v,g,r),null===n?l=v:n.sibling=v,n=v);a&&m.forEach(function(a){return b(e,a)});I&&$g(e,r);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===wa&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case ua:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===wa){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ga&&rh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=ph(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===wa?(d=xh(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=vh(f.type,f.key,f.props,null,a.mode,h),h.ref=ph(a,d,f),h.return=a,a=h)}return g(a);case va:a:{for(l=f.key;null!==\nd;){if(d.key===l)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=wh(f,a.mode,h);d.return=a;a=d}return g(a);case Ga:return l=f._init,J(a,d,l(f._payload),h)}if(db(f))return m(a,d,f,h);if(Ja(f))return w(a,d,f,h);qh(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=uh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var yh=sh(!0),zh=sh(!1),Ah={},Bh=Tf(Ah),Ch=Tf(Ah),Dh=Tf(Ah);function Eh(a){if(a===Ah)throw Error(p(174));return a}function Fh(a,b){G(Dh,b);G(Ch,a);G(Bh,Ah);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:kb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=kb(b,a)}E(Bh);G(Bh,b)}function Gh(){E(Bh);E(Ch);E(Dh)}\nfunction Hh(a){Eh(Dh.current);var b=Eh(Bh.current);var c=kb(b,a.type);b!==c&&(G(Ch,a),G(Bh,c))}function Ih(a){Ch.current===a&&(E(Bh),E(Ch))}var K=Tf(0);\nfunction Jh(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&128))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 Kh=[];\nfunction Lh(){for(var a=0;ac?c:4;a(!0);var d=Nh.transition;Nh.transition={};try{a(!1),b()}finally{C=c,Nh.transition=d}}function Bi(){return ai().memoizedState}\nfunction Ci(a,b,c){var d=Kg(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};Di(a)?Ei(b,c):(Fi(a,b,c),c=Jg(),a=Lg(a,d,c),null!==a&&Gi(a,b,d))}\nfunction ni(a,b,c){var d=Kg(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Di(a))Ei(b,e);else{Fi(a,b,e);var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(Ge(h,g))return}catch(k){}finally{}c=Jg();a=Lg(a,d,c);null!==a&&Gi(a,b,d)}}function Di(a){var b=a.alternate;return a===L||null!==b&&b===L}\nfunction Ei(a,b){Qh=Ph=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Fi(a,b,c){Bg(a)?(a=b.interleaved,null===a?(c.next=c,null===vg?vg=[b]:vg.push(b)):(c.next=a.next,a.next=c),b.interleaved=c):(a=b.pending,null===a?c.next=c:(c.next=a.next,a.next=c),b.pending=c)}function Gi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Bc(a,c)}}\nvar Yh={readContext:ug,useCallback:O,useContext:O,useEffect:O,useImperativeHandle:O,useInsertionEffect:O,useLayoutEffect:O,useMemo:O,useReducer:O,useRef:O,useState:O,useDebugValue:O,useDeferredValue:O,useTransition:O,useMutableSource:O,useSyncExternalStore:O,useId:O,unstable_isNewReconciler:!1},Vh={readContext:ug,useCallback:function(a,b){$h().memoizedState=[a,void 0===b?null:b];return a},useContext:ug,useEffect:ri,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return pi(4194308,\n4,ui.bind(null,b,a),c)},useLayoutEffect:function(a,b){return pi(4194308,4,a,b)},useInsertionEffect:function(a,b){return pi(4,2,a,b)},useMemo:function(a,b){var c=$h();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=$h();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Ci.bind(null,L,a);return[d.memoizedState,a]},useRef:function(a){var b=\n$h();a={current:a};return b.memoizedState=a},useState:mi,useDebugValue:wi,useDeferredValue:function(a){return $h().memoizedState=a},useTransition:function(){var a=mi(!1),b=a[0];a=Ai.bind(null,a[1]);$h().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=L,e=$h();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===P)throw Error(p(349));0!==(Oh&30)||ki(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;ri(hi.bind(null,d,\nf,a),[a]);d.flags|=2048;ii(9,ji.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=$h(),b=P.identifierPrefix;if(I){var c=Zg;var d=Yg;c=(d&~(1<<32-nc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Rh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"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[Nf]=b;a[Of]=d;Ti(a,b,!1,!1);b.stateNode=a;a:{g=ub(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eaj&&(b.flags|=\n128,d=!0,Xi(f,!1),b.lanes=4194304)}else{if(!d)if(a=Jh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Xi(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return Q(b),null}else 2*B()-f.renderingStartTime>aj&&1073741824!==c&&(b.flags|=128,d=!0,Xi(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=b,f.tail=b.sibling,f.renderingStartTime=\nB(),b.sibling=null,c=K.current,G(K,d?c&1|2:c&1),b;Q(b);return null;case 22:case 23:return bj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(cj&1073741824)&&(Q(b),b.subtreeFlags&6&&(b.flags|=8192)):Q(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}var dj=ta.ReactCurrentOwner,tg=!1;function ej(a,b,c,d){b.child=null===a?zh(b,null,c,d):yh(b,a.child,c,d)}\nfunction fj(a,b,c,d,e){c=c.render;var f=b.ref;sg(b,e);d=Uh(a,b,c,d,f,e);c=Zh();if(null!==a&&!tg)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,gj(a,b,e);I&&c&&bh(b);b.flags|=1;ej(a,b,d,e);return b.child}\nfunction hj(a,b,c,d,e){if(null===a){var f=c.type;if(\"function\"===typeof f&&!ij(f)&&void 0===f.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=f,jj(a,b,f,d,e);a=vh(c.type,null,d,b,b.mode,e);a.ref=b.ref;a.return=b;return b.child=a}f=a.child;if(0===(a.lanes&e)){var g=f.memoizedProps;c=c.compare;c=null!==c?c:He;if(c(g,d)&&a.ref===b.ref)return gj(a,b,e)}b.flags|=1;a=th(f,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction jj(a,b,c,d,e){if(null!==a){var f=a.memoizedProps;if(He(f,d)&&a.ref===b.ref)if(tg=!1,b.pendingProps=d=f,0!==(a.lanes&e))0!==(a.flags&131072)&&(tg=!0);else return b.lanes=a.lanes,gj(a,b,e)}return kj(a,b,c,d,e)}\nfunction lj(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode)if(0===(b.mode&1))b.memoizedState={baseLanes:0,cachePool:null,transitions:null},G(mj,cj),cj|=c;else if(0!==(c&1073741824))b.memoizedState={baseLanes:0,cachePool:null,transitions:null},d=null!==f?f.baseLanes:c,G(mj,cj),cj|=d;else return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a,cachePool:null,transitions:null},b.updateQueue=null,G(mj,cj),cj|=a,null;\nelse null!==f?(d=f.baseLanes|c,b.memoizedState=null):d=c,G(mj,cj),cj|=d;ej(a,b,e,c);return b.child}function nj(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=512,b.flags|=2097152}function kj(a,b,c,d,e){var f=Yf(c)?Wf:H.current;f=Xf(b,f);sg(b,e);c=Uh(a,b,c,d,f,e);d=Zh();if(null!==a&&!tg)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,gj(a,b,e);I&&d&&bh(b);b.flags|=1;ej(a,b,c,e);return b.child}\nfunction oj(a,b,c,d,e){if(Yf(c)){var f=!0;bg(b)}else f=!1;sg(b,e);if(null===b.stateNode)null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2),Og(b,c,d),Qg(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=ug(l):(l=Yf(c)?Wf:H.current,l=Xf(b,l));var n=c.getDerivedStateFromProps,u=\"function\"===typeof n||\"function\"===typeof g.getSnapshotBeforeUpdate;u||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\n\"function\"!==typeof g.componentWillReceiveProps||(h!==d||k!==l)&&Pg(b,g,d,l);wg=!1;var q=b.memoizedState;g.state=q;Eg(b,d,g,e);k=b.memoizedState;h!==d||q!==k||Vf.current||wg?(\"function\"===typeof n&&(Ig(b,c,n,d),k=b.memoizedState),(h=wg||Ng(b,c,h,d,q,k,l))?(u||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===\ntypeof g.componentDidMount&&(b.flags|=4194308)):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),d=!1)}else{g=b.stateNode;yg(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:kg(b.type,h);g.props=l;u=b.pendingProps;q=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=ug(k):(k=Yf(c)?Wf:H.current,k=Xf(b,k));var y=c.getDerivedStateFromProps;(n=\"function\"===\ntypeof y||\"function\"===typeof g.getSnapshotBeforeUpdate)||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==u||q!==k)&&Pg(b,g,d,k);wg=!1;q=b.memoizedState;g.state=q;Eg(b,d,g,e);var m=b.memoizedState;h!==u||q!==m||Vf.current||wg?(\"function\"===typeof y&&(Ig(b,c,y,d),m=b.memoizedState),(l=wg||Ng(b,c,l,d,q,m,k)||!1)?(n||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&\ng.componentWillUpdate(d,m,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&g.UNSAFE_componentWillUpdate(d,m,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=1024)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&q===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&q===a.memoizedState||(b.flags|=1024),b.memoizedProps=d,b.memoizedState=m),g.props=d,g.state=m,g.context=\nk,d=l):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&q===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&q===a.memoizedState||(b.flags|=1024),d=!1)}return pj(a,b,c,d,f,e)}\nfunction pj(a,b,c,d,e,f){nj(a,b);var g=0!==(b.flags&128);if(!d&&!g)return e&&cg(b,c,!1),gj(a,b,f);d=b.stateNode;dj.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=yh(b,a.child,null,f),b.child=yh(b,null,h,f)):ej(a,b,h,f);b.memoizedState=d.state;e&&cg(b,c,!0);return b.child}function qj(a){var b=a.stateNode;b.pendingContext?$f(a,b.pendingContext,b.pendingContext!==b.context):b.context&&$f(a,b.context,!1);Fh(a,b.containerInfo)}\nfunction rj(a,b,c,d,e){nh();oh(e);b.flags|=256;ej(a,b,c,d);return b.child}var sj={dehydrated:null,treeContext:null,retryLane:0};function tj(a){return{baseLanes:a,cachePool:null,transitions:null}}function uj(a,b){return{baseLanes:a.baseLanes|b,cachePool:null,transitions:a.transitions}}\nfunction vj(a,b,c){var d=b.pendingProps,e=K.current,f=!1,g=0!==(b.flags&128),h;(h=g)||(h=null!==a&&null===a.memoizedState?!1:0!==(e&2));if(h)f=!0,b.flags&=-129;else if(null===a||null!==a.memoizedState)e|=1;G(K,e&1);if(null===a){kh(b);a=b.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(b.mode&1)?b.lanes=1:\"$!\"===a.data?b.lanes=8:b.lanes=1073741824,null;e=d.children;a=d.fallback;return f?(d=b.mode,f=b.child,e={mode:\"hidden\",children:e},0===(d&1)&&null!==f?(f.childLanes=0,f.pendingProps=\ne):f=wj(e,d,0,null),a=xh(a,d,c,null),f.return=b,a.return=b,f.sibling=a,b.child=f,b.child.memoizedState=tj(c),b.memoizedState=sj,a):xj(b,e)}e=a.memoizedState;if(null!==e){h=e.dehydrated;if(null!==h){if(g){if(b.flags&256)return b.flags&=-257,yj(a,b,c,Error(p(422)));if(null!==b.memoizedState)return b.child=a.child,b.flags|=128,null;f=d.fallback;e=b.mode;d=wj({mode:\"visible\",children:d.children},e,0,null);f=xh(f,e,c,null);f.flags|=2;d.return=b;f.return=b;d.sibling=f;b.child=d;0!==(b.mode&1)&&yh(b,a.child,\nnull,c);b.child.memoizedState=tj(c);b.memoizedState=sj;return f}if(0===(b.mode&1))b=yj(a,b,c,null);else if(\"$!\"===h.data)b=yj(a,b,c,Error(p(419)));else if(d=0!==(c&a.childLanes),tg||d){d=P;if(null!==d){switch(c&-c){case 4:f=2;break;case 16:f=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:f=32;break;case 536870912:f=\n268435456;break;default:f=0}d=0!==(f&(d.suspendedLanes|c))?0:f;0!==d&&d!==e.retryLane&&(e.retryLane=d,Lg(a,d,-1))}$i();b=yj(a,b,c,Error(p(421)))}else\"$?\"===h.data?(b.flags|=128,b.child=a.child,b=zj.bind(null,a),h._reactRetry=b,b=null):(c=e.treeContext,eh=Kf(h.nextSibling),dh=b,I=!0,fh=null,null!==c&&(Vg[Wg++]=Yg,Vg[Wg++]=Zg,Vg[Wg++]=Xg,Yg=c.id,Zg=c.overflow,Xg=b),b=xj(b,b.pendingProps.children),b.flags|=4096);return b}if(f)return d=Aj(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,\nf.memoizedState=null===e?tj(c):uj(e,c),f.childLanes=a.childLanes&~c,b.memoizedState=sj,d;c=Bj(a,b,d.children,c);b.memoizedState=null;return c}if(f)return d=Aj(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,f.memoizedState=null===e?tj(c):uj(e,c),f.childLanes=a.childLanes&~c,b.memoizedState=sj,d;c=Bj(a,b,d.children,c);b.memoizedState=null;return c}function xj(a,b){b=wj({mode:\"visible\",children:b},a.mode,0,null);b.return=a;return a.child=b}\nfunction Bj(a,b,c,d){var e=a.child;a=e.sibling;c=th(e,{mode:\"visible\",children:c});0===(b.mode&1)&&(c.lanes=d);c.return=b;c.sibling=null;null!==a&&(d=b.deletions,null===d?(b.deletions=[a],b.flags|=16):d.push(a));return b.child=c}\nfunction Aj(a,b,c,d,e){var f=b.mode;a=a.child;var g=a.sibling,h={mode:\"hidden\",children:c};0===(f&1)&&b.child!==a?(c=b.child,c.childLanes=0,c.pendingProps=h,b.deletions=null):(c=th(a,h),c.subtreeFlags=a.subtreeFlags&14680064);null!==g?d=th(g,d):(d=xh(d,f,e,null),d.flags|=2);d.return=b;c.return=b;c.sibling=d;b.child=c;return d}function yj(a,b,c,d){null!==d&&oh(d);yh(b,a.child,null,c);a=xj(b,b.pendingProps.children);a.flags|=2;b.memoizedState=null;return a}\nfunction Cj(a,b,c){a.lanes|=b;var d=a.alternate;null!==d&&(d.lanes|=b);rg(a.return,b,c)}function Dj(a,b,c,d,e){var f=a.memoizedState;null===f?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e}:(f.isBackwards=b,f.rendering=null,f.renderingStartTime=0,f.last=d,f.tail=c,f.tailMode=e)}\nfunction Ej(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;ej(a,b,d.children,c);d=K.current;if(0!==(d&2))d=d&1|2,b.flags|=128;else{if(null!==a&&0!==(a.flags&128))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&Cj(a,c,b);else if(19===a.tag)Cj(a,c,b);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}G(K,d);if(0===(b.mode&1))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===Jh(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);Dj(b,!1,e,c,f);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===Jh(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}Dj(b,!0,c,null,f);break;case \"together\":Dj(b,!1,null,null,void 0);break;default:b.memoizedState=null}return b.child}\nfunction gj(a,b,c){null!==a&&(b.dependencies=a.dependencies);Fg|=b.lanes;if(0===(c&b.childLanes))return null;if(null!==a&&b.child!==a.child)throw Error(p(153));if(null!==b.child){a=b.child;c=th(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=th(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}\nfunction Fj(a,b,c){switch(b.tag){case 3:qj(b);nh();break;case 5:Hh(b);break;case 1:Yf(b.type)&&bg(b);break;case 4:Fh(b,b.stateNode.containerInfo);break;case 10:var d=b.type._context,e=b.memoizedProps.value;G(lg,d._currentValue);d._currentValue=e;break;case 13:d=b.memoizedState;if(null!==d){if(null!==d.dehydrated)return G(K,K.current&1),b.flags|=128,null;if(0!==(c&b.child.childLanes))return vj(a,b,c);G(K,K.current&1);a=gj(a,b,c);return null!==a?a.sibling:null}G(K,K.current&1);break;case 19:d=0!==(c&\nb.childLanes);if(0!==(a.flags&128)){if(d)return Ej(a,b,c);b.flags|=128}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);G(K,K.current);if(d)break;else return null;case 22:case 23:return b.lanes=0,lj(a,b,c)}return gj(a,b,c)}\nfunction Gj(a,b){ch(b);switch(b.tag){case 1:return Yf(b.type)&&Zf(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Gh(),E(Vf),E(H),Lh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Ih(b),null;case 13:E(K);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));nh()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(K),null;case 4:return Gh(),null;case 10:return qg(b.type._context),null;case 22:case 23:return bj(),\nnull;case 24:return null;default:return null}}var Hj=!1,S=!1,Ij=\"function\"===typeof WeakSet?WeakSet:Set,T=null;function Jj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){U(a,b,d)}else c.current=null}function Kj(a,b,c){try{c()}catch(d){U(a,b,d)}}var Lj=!1;\nfunction Mj(a,b){Bf=cd;a=Le();if(Me(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(Z){c=null;break a}var g=0,h=-1,k=-1,l=0,n=0,u=a,q=null;b:for(;;){for(var y;;){u!==c||0!==e&&3!==u.nodeType||(h=g+e);u!==f||0!==d&&3!==u.nodeType||(k=g+d);3===u.nodeType&&(g+=\nu.nodeValue.length);if(null===(y=u.firstChild))break;q=u;u=y}for(;;){if(u===a)break b;q===c&&++l===e&&(h=g);q===f&&++n===d&&(k=g);if(null!==(y=u.nextSibling))break;u=q;q=u.parentNode}u=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Cf={focusedElem:a,selectionRange:c};cd=!1;for(T=b;null!==T;)if(b=T,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,T=a;else for(;null!==T;){b=T;try{var m=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==m){var w=m.memoizedProps,J=m.memoizedState,v=b.stateNode,x=v.getSnapshotBeforeUpdate(b.elementType===b.type?w:kg(b.type,w),J);v.__reactInternalSnapshotBeforeUpdate=x}break;case 3:var r=b.stateNode.containerInfo;if(1===r.nodeType)r.textContent=\"\";else if(9===r.nodeType){var F=r.body;null!=F&&(F.textContent=\"\")}break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(Z){U(b,b.return,Z)}a=b.sibling;if(null!==a){a.return=b.return;T=a;break}T=b.return}m=Lj;Lj=!1;return m}\nfunction Nj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Kj(b,c,f)}e=e.next}while(e!==d)}}function Oj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Pj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Qj(a){var b=a.alternate;null!==b&&(a.alternate=null,Qj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Nf],delete b[Of],delete b[nf],delete b[Pf],delete b[Qf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Rj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Sj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Rj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Tj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,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=Af));else if(4!==d&&(a=a.child,null!==a))for(Tj(a,b,c),a=a.sibling;null!==a;)Tj(a,b,c),a=a.sibling}\nfunction Uj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Uj(a,b,c),a=a.sibling;null!==a;)Uj(a,b,c),a=a.sibling}var V=null,Vj=!1;function Wj(a,b,c){for(c=c.child;null!==c;)Xj(a,b,c),c=c.sibling}\nfunction Xj(a,b,c){if(kc&&\"function\"===typeof kc.onCommitFiberUnmount)try{kc.onCommitFiberUnmount(jc,c)}catch(h){}switch(c.tag){case 5:S||Jj(c,b);case 6:var d=V,e=Vj;V=null;Wj(a,b,c);V=d;Vj=e;null!==V&&(Vj?(a=V,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):V.removeChild(c.stateNode));break;case 18:null!==V&&(Vj?(a=V,c=c.stateNode,8===a.nodeType?Jf(a.parentNode,c):1===a.nodeType&&Jf(a,c),ad(a)):Jf(V,c.stateNode));break;case 4:d=V;e=Vj;V=c.stateNode.containerInfo;Vj=!0;\nWj(a,b,c);V=d;Vj=e;break;case 0:case 11:case 14:case 15:if(!S&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Kj(c,b,g):0!==(f&4)&&Kj(c,b,g));e=e.next}while(e!==d)}Wj(a,b,c);break;case 1:if(!S&&(Jj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){U(c,b,h)}Wj(a,b,c);break;case 21:Wj(a,b,c);break;case 22:c.mode&1?(S=(d=S)||null!==\nc.memoizedState,Wj(a,b,c),S=d):Wj(a,b,c);break;default:Wj(a,b,c)}}function Yj(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Ij);b.forEach(function(b){var d=Zj.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ak(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*jk(d/1960))-d;if(10a?16:a;if(null===uk)var d=!1;else{a=uk;uk=null;vk=0;if(0!==(W&6))throw Error(p(331));var e=W;W|=4;for(T=a.current;null!==T;){var f=T,g=f.child;if(0!==(T.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-dk?Jk(a,0):pk|=c);Ck(a,b)}function Xk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=rc,rc<<=1,0===(rc&130023424)&&(rc=4194304)));var c=Jg();a=Ak(a,b);null!==a&&(zc(a,b,c),Ck(a,c))}function zj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Xk(a,c)}\nfunction Zj(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Xk(a,c)}var Uk;\nUk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Vf.current)tg=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return tg=!1,Fj(a,b,c);tg=0!==(a.flags&131072)?!0:!1}else tg=!1,I&&0!==(b.flags&1048576)&&ah(b,Ug,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;var e=Xf(b,H.current);sg(b,c);e=Uh(null,b,d,a,e,c);var f=Zh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?\n(b.tag=1,b.memoizedState=null,b.updateQueue=null,Yf(d)?(f=!0,bg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,xg(b),e.updater=Mg,b.stateNode=e,e._reactInternals=b,Qg(b,d,a,c),b=pj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&bh(b),ej(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Yk(d);a=kg(d,a);switch(e){case 0:b=kj(null,b,d,a,c);break a;case 1:b=oj(null,b,\nd,a,c);break a;case 11:b=fj(null,b,d,a,c);break a;case 14:b=hj(null,b,d,kg(d.type,a),c);break a}throw Error(p(306,d,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:kg(d,e),kj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:kg(d,e),oj(a,b,d,e,c);case 3:a:{qj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;yg(a,b);Eg(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,\ncache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=f,b.memoizedState=f,b.flags&256){e=Error(p(423));b=rj(a,b,d,c,e);break a}else if(d!==e){e=Error(p(424));b=rj(a,b,d,c,e);break a}else for(eh=Kf(b.stateNode.containerInfo.firstChild),dh=b,I=!0,fh=null,c=zh(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{nh();if(d===e){b=gj(a,b,c);break a}ej(a,b,d,c)}b=b.child}return b;case 5:return Hh(b),null===a&&kh(b),d=b.type,e=\nb.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Df(d,e)?g=null:null!==f&&Df(d,f)&&(b.flags|=32),nj(a,b),ej(a,b,g,c),b.child;case 6:return null===a&&kh(b),null;case 13:return vj(a,b,c);case 4:return Fh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=yh(b,null,d,c):ej(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:kg(d,e),fj(a,b,d,e,c);case 7:return ej(a,b,b.pendingProps,c),b.child;case 8:return ej(a,b,b.pendingProps.children,c),b.child;case 12:return ej(a,\nb,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;g=e.value;G(lg,d._currentValue);d._currentValue=g;if(null!==f)if(Ge(f.value,g)){if(f.children===e.children&&!Vf.current){b=gj(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=zg(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var n=l.pending;null===n?k.next=\nk:(k.next=n.next,n.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);rg(f.return,c,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);rg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}ej(a,b,e.children,c);b=b.child}return b;\ncase 9:return e=b.type,d=b.pendingProps.children,sg(b,c),e=ug(e),d=d(e),b.flags|=1,ej(a,b,d,c),b.child;case 14:return d=b.type,e=kg(d,b.pendingProps),e=kg(d.type,e),hj(a,b,d,e,c);case 15:return jj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:kg(d,e),null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2),b.tag=1,Yf(d)?(a=!0,bg(b)):a=!1,sg(b,c),Og(b,d,e),Qg(b,d,e,c),pj(null,b,d,!0,a,c);case 19:return Ej(a,b,c);case 22:return lj(a,b,c)}throw Error(p(156,\nb.tag));};function Ek(a,b){return $b(a,b)}function Zk(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function hh(a,b,c,d){return new Zk(a,b,c,d)}\nfunction ij(a){a=a.prototype;return!(!a||!a.isReactComponent)}function Yk(a){if(\"function\"===typeof a)return ij(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Ca)return 11;if(a===Fa)return 14}return 2}\nfunction th(a,b){var c=a.alternate;null===c?(c=hh(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction vh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)ij(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case wa:return xh(c.children,e,f,b);case xa:g=8;e|=8;break;case za:return a=hh(12,c,b,e|2),a.elementType=za,a.lanes=f,a;case Da:return a=hh(13,c,b,e),a.elementType=Da,a.lanes=f,a;case Ea:return a=hh(19,c,b,e),a.elementType=Ea,a.lanes=f,a;case Ha:return wj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Aa:g=10;break a;case Ba:g=9;break a;case Ca:g=11;\nbreak a;case Fa:g=14;break a;case Ga:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=hh(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function xh(a,b,c,d){a=hh(7,a,d,b);a.lanes=c;return a}function wj(a,b,c,d){a=hh(22,a,d,b);a.elementType=Ha;a.lanes=c;a.stateNode={};return a}function uh(a,b,c){a=hh(6,a,null,b);a.lanes=c;return a}\nfunction wh(a,b,c){b=hh(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction $k(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=yc(0);this.expirationTimes=yc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=yc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function al(a,b,c,d,e,f,g,h,k){a=new $k(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=hh(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};xg(f);return a}function bl(a,b,c){var d=3>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a