{"version":3,"file":"static/js/756.1c88c31c.js","mappings":"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","sources":["node_modules/merge-options/index.mjs","node_modules/@react-native-async-storage/async-storage/lib/module/AsyncStorage.ts","node_modules/@react-native-async-storage/async-storage/lib/module/hooks.ts","node_modules/@react-native-async-storage/async-storage/lib/module/index.ts","node_modules/@react-native-picker/picker/js/PickerItem.js","node_modules/@react-native-picker/picker/js/Picker.web.js","node_modules/@react-native-picker/picker/js/UnimplementedView.web.js","node_modules/@react-native-picker/picker/js/PickerIOS.web.js","node_modules/@react-native/normalize-colors/index.js","node_modules/@react-navigation/routers/src/CommonActions.tsx","node_modules/@react-navigation/core/src/createNavigationContainerRef.tsx","node_modules/@react-navigation/core/src/EnsureSingleNavigator.tsx","node_modules/@react-navigation/core/src/findFocusedRoute.tsx","node_modules/@react-navigation/core/src/NavigationBuilderContext.tsx","node_modules/@react-navigation/core/src/NavigationContainerRefContext.tsx","node_modules/@react-navigation/core/src/NavigationContext.tsx","node_modules/@react-navigation/core/src/NavigationRouteContext.tsx","node_modules/@react-navigation/core/src/NavigationStateContext.tsx","node_modules/@react-navigation/core/src/UnhandledActionContext.tsx","node_modules/@react-navigation/core/src/useChildListeners.tsx","node_modules/@react-navigation/core/src/useEventEmitter.tsx","node_modules/@react-navigation/core/src/useKeyedChildListeners.tsx","node_modules/@react-navigation/core/src/useOptionsGetters.tsx","node_modules/@react-navigation/core/src/useScheduleUpdate.tsx","node_modules/@react-navigation/core/src/useSyncState.tsx","node_modules/@react-navigation/core/src/BaseNavigationContainer.tsx","node_modules/@react-navigation/core/src/Group.tsx","node_modules/@react-navigation/core/src/Screen.tsx","node_modules/@react-navigation/core/src/createNavigatorFactory.tsx","node_modules/@react-navigation/core/src/CurrentRenderContext.tsx","node_modules/@react-navigation/core/src/getActionFromState.tsx","node_modules/@react-navigation/core/src/useRouteCache.tsx","node_modules/@react-navigation/core/src/getFocusedRouteNameFromRoute.tsx","node_modules/@react-navigation/core/src/fromEntries.tsx","node_modules/@react-navigation/core/src/validatePathConfig.tsx","node_modules/@react-navigation/core/src/getPathFromState.tsx","node_modules/@react-navigation/core/src/getStateFromPath.tsx","node_modules/@react-navigation/core/src/NavigationHelpersContext.tsx","node_modules/@react-navigation/core/src/PreventRemoveContext.tsx","node_modules/@react-navigation/core/src/PreventRemoveProvider.tsx","node_modules/@react-navigation/core/src/types.tsx","node_modules/@react-navigation/core/src/useNavigation.tsx","node_modules/@react-navigation/core/src/useFocusEffect.tsx","node_modules/@react-navigation/core/src/useIsFocused.tsx","node_modules/@react-navigation/core/src/isArrayEqual.tsx","node_modules/@react-navigation/core/src/useComponent.tsx","node_modules/@react-navigation/core/src/StaticContainer.tsx","node_modules/@react-navigation/core/src/SceneView.tsx","node_modules/@react-navigation/core/src/useDescriptors.tsx","node_modules/@react-navigation/core/src/useNavigationCache.tsx","node_modules/@react-navigation/core/src/useOnPreventRemove.tsx","node_modules/@react-navigation/core/src/useOnAction.tsx","node_modules/@react-navigation/core/src/useNavigationBuilder.tsx","node_modules/@react-navigation/core/src/useRegisterNavigator.tsx","node_modules/@react-navigation/core/src/isRecordEqual.tsx","node_modules/@react-navigation/core/src/useFocusEvents.tsx","node_modules/@react-navigation/core/src/useOnRouteFocus.tsx","node_modules/@react-navigation/core/src/useNavigationHelpers.tsx","node_modules/@react-navigation/core/src/useFocusedListenersChildrenAdapter.tsx","node_modules/@react-navigation/core/src/useOnGetState.tsx","node_modules/@react-navigation/core/src/useCurrentRender.tsx","node_modules/@react-navigation/core/src/useNavigationContainerRef.tsx","node_modules/@react-navigation/core/src/useNavigationState.tsx","node_modules/@react-navigation/core/src/usePreventRemoveContext.tsx","node_modules/@react-navigation/core/src/useRoute.tsx","node_modules/@react-navigation/core/src/usePreventRemove.tsx","node_modules/@react-navigation/routers/src/BaseRouter.tsx","node_modules/@react-navigation/routers/src/TabRouter.tsx","node_modules/@react-navigation/routers/src/DrawerRouter.tsx","node_modules/@react-navigation/routers/src/StackRouter.tsx","node_modules/@react-navigation/core/node_modules/react-is/cjs/react-is.production.min.js","node_modules/@react-navigation/core/node_modules/react-is/index.js","node_modules/@react-navigation/native/src/LinkingContext.tsx","node_modules/@react-navigation/native/src/theming/ThemeProvider.tsx","node_modules/@react-navigation/native/src/createMemoryHistory.tsx","node_modules/@react-navigation/native/src/ServerContext.tsx","node_modules/@react-navigation/native/src/useLinking.tsx","node_modules/@react-navigation/native/src/useThenable.tsx","node_modules/@react-navigation/native/src/NavigationContainer.tsx","node_modules/@react-navigation/native/src/useDocumentTitle.tsx","node_modules/@react-navigation/native/src/theming/DefaultTheme.tsx","node_modules/@react-navigation/native/src/theming/ThemeContext.tsx","node_modules/react-native-safe-area-context/src/NativeSafeAreaProvider.web.tsx","node_modules/react-native-safe-area-context/src/SafeAreaContext.tsx","node_modules/@react-navigation/elements/src/SafeAreaProviderCompat.tsx","node_modules/@react-navigation/elements/src/getNamedContext.tsx","node_modules/@react-navigation/elements/src/Header/HeaderShownContext.tsx","node_modules/@react-navigation/stack/src/utils/ModalPresentationContext.tsx","node_modules/@react-navigation/stack/src/views/GestureHandler.tsx","node_modules/@react-navigation/elements/src/Header/HeaderBackContext.tsx","node_modules/@react-navigation/elements/src/Header/getHeaderTitle.tsx","node_modules/@react-navigation/stack/src/TransitionConfigs/HeaderStyleInterpolators.tsx","node_modules/@react-navigation/native/src/theming/useTheme.tsx","node_modules/@react-navigation/elements/src/PlatformPressable.tsx","node_modules/@react-navigation/elements/src/Header/HeaderBackButton.tsx","node_modules/@react-navigation/elements/src/Header/getDefaultHeaderHeight.tsx","node_modules/@react-navigation/elements/src/Header/HeaderTitle.tsx","node_modules/@react-navigation/elements/src/Header/HeaderBackground.tsx","node_modules/@react-navigation/elements/src/Header/Header.tsx","node_modules/@react-navigation/stack/src/utils/memoize.tsx","node_modules/@react-navigation/stack/src/views/Header/HeaderSegment.tsx","node_modules/@react-navigation/stack/src/views/Header/Header.tsx","node_modules/@react-navigation/stack/src/utils/debounce.tsx","node_modules/@react-navigation/stack/src/views/Header/HeaderContainer.tsx","node_modules/@react-navigation/elements/src/Background.tsx","node_modules/@react-navigation/stack/src/utils/conditional.tsx","node_modules/@react-navigation/stack/src/TransitionConfigs/CardStyleInterpolators.tsx","node_modules/@react-navigation/stack/src/TransitionConfigs/TransitionSpecs.tsx","node_modules/@react-navigation/stack/src/TransitionConfigs/TransitionPresets.tsx","node_modules/@react-navigation/stack/src/utils/findLastIndex.tsx","node_modules/@react-navigation/stack/src/utils/getInvertedMultiplier.tsx","node_modules/@react-navigation/stack/src/utils/getDistanceForDirection.tsx","node_modules/@react-navigation/stack/src/views/Screens.tsx","node_modules/@react-navigation/stack/src/utils/CardAnimationContext.tsx","node_modules/@react-navigation/stack/src/views/Stack/CardSheet.tsx","node_modules/@react-navigation/stack/src/views/Stack/Card.tsx","node_modules/@react-navigation/elements/src/Header/HeaderHeightContext.tsx","node_modules/@react-navigation/stack/src/views/Stack/CardContainer.tsx","node_modules/@react-navigation/stack/src/utils/useKeyboardManager.tsx","node_modules/@react-navigation/stack/src/views/Stack/CardStack.tsx","node_modules/@react-navigation/stack/src/views/Stack/StackView.tsx","node_modules/@react-navigation/stack/src/navigators/createStackNavigator.tsx","node_modules/expo-checkbox/src/ExpoCheckbox.web.tsx","node_modules/expo-checkbox/src/Checkbox.ts","node_modules/expo-image-manipulator/src/utils/getContext.web.ts","node_modules/expo-image-manipulator/src/actions/ResizeAction.web.ts","node_modules/expo-image-manipulator/src/actions/RotateAction.web.ts","node_modules/expo-image-manipulator/src/ExpoImageManipulator.web.ts","node_modules/expo-image-manipulator/src/actions/CropAction.web.ts","node_modules/expo-image-manipulator/src/actions/ExtentAction.web.ts","node_modules/expo-image-manipulator/src/actions/FlipAction.web.ts","node_modules/expo-image-manipulator/src/validators.ts","node_modules/expo-image-manipulator/src/ImageManipulator.ts","node_modules/expo-image-manipulator/src/ImageManipulator.types.ts","node_modules/expo-modules-core/src/PermissionsHook.ts","node_modules/expo-modules-core/src/PermissionsInterface.ts","node_modules/expo-modules-core/src/environment/browser.web.ts","node_modules/expo-modules-core/src/Platform.ts","node_modules/expo-image-picker/src/ExponentImagePicker.web.ts","node_modules/expo-image-picker/src/ImagePicker.ts","node_modules/expo-image-picker/src/ImagePicker.types.ts","node_modules/expo-modules-core/src/errors/CodedError.ts","node_modules/expo-modules-core/src/errors/UnavailabilityError.ts","node_modules/expo/src/Expo.fx.web.tsx","node_modules/react-native-web/dist/exports/unmountComponentAtNode/index.js","node_modules/react-native-web/dist/exports/AppRegistry/AppContainer.js","node_modules/react-native-web/dist/exports/render/index.js","node_modules/react-native-web/dist/exports/AppRegistry/index.js","node_modules/react-native-web/dist/exports/AppRegistry/renderApplication.js","node_modules/expo/src/launch/registerRootComponent.tsx","node_modules/react-native-web/dist/exports/TouchableWithoutFeedback/index.js","node_modules/react-native-web/dist/exports/ActivityIndicator/index.js","node_modules/react-native-web/dist/exports/Modal/ModalPortal.js","node_modules/react-native-web/dist/exports/Modal/ModalAnimation.js","node_modules/react-native-web/dist/exports/Modal/ModalContent.js","node_modules/react-native-web/dist/exports/Modal/ModalFocusTrap.js","node_modules/react-native-web/dist/exports/Modal/index.js","node_modules/react-native-awesome-alerts/src/styles.js","node_modules/react-native-awesome-alerts/src/AwesomeAlert.js","node_modules/react-native-awesome-alerts/index.js","node_modules/react-native-web/dist/exports/findNodeHandle/index.js","node_modules/react-native-iphone-x-helper/index.js","node_modules/react-native-keyboard-aware-scroll-view/lib/KeyboardAwareHOC.js","node_modules/react-native-keyboard-aware-scroll-view/lib/KeyboardAwareScrollView.js","node_modules/react-native-keyboard-aware-scroll-view/lib/KeyboardAwareFlatList.js","node_modules/react-native-keyboard-aware-scroll-view/lib/KeyboardAwareSectionList.js","node_modules/react-native-modal-datetime-picker/src/DateTimePickerModal.js","node_modules/react-native-modal-datetime-picker/src/index.js","node_modules/react-native-options-menu/index.js","node_modules/react-native-progress/Bar.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-svg/src/lib/SvgTouchableMixin.ts","node_modules/react-native-svg/src/lib/Matrix2D.ts","node_modules/react-native-svg/src/lib/extract/extractTransform.ts","node_modules/react-native-svg/src/ReactNativeSVG.web.ts","node_modules/react-native-svg/src/lib/resolve.ts","node_modules/react-native-progress/Shapes/Arc.js","node_modules/react-native-progress/withAnimation.js","node_modules/react-native-progress/Circle.js","node_modules/react-native-progress/CircleSnail.js","node_modules/react-native-progress/Shapes/Circle.js","node_modules/react-native-progress/Shapes/Sector.js","node_modules/react-native-progress/Pie.js","node_modules/react-native-screens/src/core.ts","node_modules/react-native-screens/src/components/Screen.web.tsx","node_modules/react-native-screens/src/components/ScreenContainer.web.tsx","node_modules/react-native-screens/src/components/ScreenStack.web.tsx","node_modules/react-native-screens/src/components/ScreenStackHeaderConfig.web.tsx","node_modules/react-native-screens/src/components/SearchBar.web.tsx","node_modules/react-native-screens/src/components/FullWindowOverlay.web.tsx","node_modules/react-native-screens/src/fabric/NativeScreensModule.web.ts","node_modules/react-native-screens/src/native-stack/contexts/GHContext.tsx","node_modules/react-native-screens/src/utils.ts","node_modules/react-native-screens/src/TransitionProgressContext.tsx","node_modules/react-native-screens/src/useTransitionProgress.tsx","node_modules/react-native-svg/src/lib/extract/transform.js","node_modules/react-native-toast-message/lib/src/utils/func.js","node_modules/react-native-toast-message/lib/src/contexts/LoggerContext.js","node_modules/react-native-toast-message/lib/src/hooks/useViewDimensions.js","node_modules/react-native-toast-message/lib/src/hooks/useSlideAnimation.js","node_modules/react-native-toast-message/lib/src/utils/array.js","node_modules/react-native-toast-message/lib/src/hooks/useKeyboard.js","node_modules/react-native-web/dist/vendor/react-native/TouchHistoryMath/index.js","node_modules/react-native-web/dist/vendor/react-native/PanResponder/index.js","node_modules/react-native-web/dist/exports/PanResponder/index.js","node_modules/react-native-toast-message/lib/src/hooks/usePanResponder.js","node_modules/react-native-toast-message/lib/src/utils/test-id.js","node_modules/react-native-toast-message/lib/src/components/AnimatedContainer.styles.js","node_modules/react-native-toast-message/lib/src/components/AnimatedContainer.js","node_modules/react-native-toast-message/lib/src/utils/number.js","node_modules/react-native-toast-message/lib/src/components/BaseToast.styles.js","node_modules/react-native-toast-message/lib/src/components/Touchable.js","node_modules/react-native-toast-message/lib/src/components/BaseToast.js","node_modules/react-native-toast-message/lib/src/components/ErrorToast.js","node_modules/react-native-toast-message/lib/src/components/InfoToast.js","node_modules/react-native-toast-message/lib/src/components/SuccessToast.js","node_modules/react-native-toast-message/lib/src/ToastUI.js","node_modules/react-native-toast-message/lib/src/utils/obj.js","node_modules/react-native-toast-message/lib/src/useToast.js","node_modules/react-native-toast-message/lib/src/hooks/useTimeout.js","node_modules/react-native-toast-message/lib/src/Toast.js","node_modules/react-native-web/dist/vendor/react-native/EventEmitter/RCTDeviceEventEmitter.js","node_modules/react-native-web/dist/vendor/react-native/EventEmitter/NativeEventEmitter.js","node_modules/react-native-web/dist/vendor/react-native/ReactNative/ReactNativeFeatureFlags.js","node_modules/react-native-web/dist/vendor/react-native/Animated/NativeAnimatedHelper.js","node_modules/react-native-web/dist/vendor/react-native/TurboModule/TurboModuleRegistry.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedNode.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedWithChildren.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedInterpolation.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedValue.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/Animated/useAnimatedProps.js","node_modules/react-native-web/dist/vendor/react-native/Utilities/useRefEffect.js","node_modules/react-native-web/dist/vendor/react-native/Animated/createAnimatedComponent.js","node_modules/react-native-web/dist/vendor/react-native/Utilities/useMergeRefs.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/nodes/AnimatedValueXY.js","node_modules/react-native-web/dist/vendor/react-native/Animated/animations/Animation.js","node_modules/react-native-web/dist/vendor/react-native/Animated/animations/DecayAnimation.js","node_modules/react-native-web/dist/vendor/react-native/Animated/SpringConfig.js","node_modules/react-native-web/dist/vendor/react-native/Animated/animations/SpringAnimation.js","node_modules/react-native-web/dist/vendor/react-native/Animated/animations/TimingAnimation.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedColor.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/react-native-web/dist/exports/BackHandler/index.js","node_modules/react-native-web/dist/exports/Dimensions/index.js","node_modules/react-native-web/dist/vendor/react-native/Animated/bezier.js","node_modules/react-native-web/dist/vendor/react-native/Animated/Easing.js","node_modules/react-native-web/dist/exports/Easing/index.js","node_modules/react-native-web/dist/vendor/react-native/deepDiffer/index.js","node_modules/react-native-web/node_modules/memoize-one/dist/memoize-one.esm.js","node_modules/react-native-web/dist/vendor/react-native/FlatList/index.js","node_modules/react-native-web/dist/exports/FlatList/index.js","node_modules/react-native-web/dist/exports/I18nManager/index.js","node_modules/react-native-web/dist/modules/AssetRegistry/index.js","node_modules/react-native-web/dist/modules/ImageLoader/index.js","node_modules/react-native-web/dist/exports/PixelRatio/index.js","node_modules/react-native-web/dist/exports/Image/index.js","node_modules/react-native-web/dist/exports/InteractionManager/TaskQueue.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/exports/Keyboard/index.js","node_modules/react-native-web/dist/exports/Linking/index.js","node_modules/react-native-web/dist/exports/Platform/index.js","node_modules/react-native-web/dist/modules/addEventListener/index.js","node_modules/react-native-web/dist/modules/modality/index.js","node_modules/react-native-web/dist/modules/useEvent/index.js","node_modules/react-native-web/dist/modules/useHover/index.js","node_modules/react-native-web/dist/exports/Pressable/index.js","node_modules/react-native-web/dist/exports/ScrollView/ScrollViewBase.js","node_modules/react-native-web/dist/exports/ScrollView/index.js","node_modules/react-native-web/dist/vendor/react-native/VirtualizedSectionList/index.js","node_modules/react-native-web/dist/vendor/react-native/SectionList/index.js","node_modules/react-native-web/dist/exports/SectionList/index.js","node_modules/react-native-web/dist/modules/isWebColor/index.js","node_modules/react-native-web/dist/exports/processColor/index.js","node_modules/react-native-web/dist/exports/StyleSheet/compiler/normalizeColor.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/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","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/react-native-web/dist/exports/StyleSheet/preprocess.js","node_modules/react-native-web/dist/exports/TextInput/index.js","node_modules/react-native-web/dist/exports/Text/TextAncestorContext.js","node_modules/react-native-web/dist/exports/Text/index.js","node_modules/react-native-web/dist/exports/TouchableOpacity/index.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","node_modules/react-native-web/dist/exports/View/index.js","node_modules/react-native-web/dist/modules/createDOMProps/index.js","node_modules/react-native-web/dist/exports/createElement/index.js","node_modules/react-native-web/dist/modules/AccessibilityUtil/propsToAriaRole.js","node_modules/react-native-web/dist/modules/AccessibilityUtil/propsToAccessibilityComponent.js","node_modules/react-native-web/dist/modules/AccessibilityUtil/index.js","node_modules/react-native-web/dist/modules/AccessibilityUtil/isDisabled.js","node_modules/react-native-web/dist/modules/TextInputState/index.js","node_modules/react-native-web/dist/modules/canUseDom/index.js","node_modules/react-native-web/dist/modules/dismissKeyboard/index.js","node_modules/react-native-web/dist/modules/forwardedProps/index.js","node_modules/react-native-web/dist/modules/getBoundingClientRect/index.js","node_modules/react-native-web/dist/modules/mergeRefs/index.js","node_modules/react-native-web/dist/modules/pick/index.js","node_modules/react-native-web/dist/modules/useElementLayout/index.js","node_modules/react-native-web/dist/modules/useLayoutEffect/index.js","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/modules/useMergeRefs/index.js","node_modules/react-native-web/dist/modules/usePlatformMethods/index.js","node_modules/react-native-web/dist/modules/usePressEvents/PressResponder.js","node_modules/react-native-web/dist/modules/usePressEvents/index.js","node_modules/react-native-web/dist/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/modules/useStable/index.js","node_modules/react-native-web/dist/modules/warnOnce/index.js","node_modules/react-native-web/dist/vendor/react-native/VirtualizeUtils/index.js","node_modules/react-native-web/dist/exports/RefreshControl/index.js","node_modules/react-native-web/dist/vendor/react-native/Batchinator/index.js","node_modules/react-native-web/dist/vendor/react-native/Utilities/clamp.js","node_modules/react-native-web/dist/vendor/react-native/infoLog/index.js","node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/CellRenderMask.js","node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/ChildListCollection.js","node_modules/react-native-web/dist/vendor/react-native/FillRateHelper/index.js","node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/StateSafePureComponent.js","node_modules/react-native-web/dist/vendor/react-native/ViewabilityHelper/index.js","node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/VirtualizedListContext.js","node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/VirtualizedListCellRenderer.js","node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/index.js","node_modules/react-native-web/dist/vendor/react-native/vendor/emitter/EventEmitter.js","node_modules/immer/src/utils/errors.ts","node_modules/immer/src/utils/common.ts","node_modules/immer/src/utils/plugins.ts","node_modules/immer/src/core/scope.ts","node_modules/immer/src/core/finalize.ts","node_modules/immer/src/core/proxy.ts","node_modules/immer/src/core/immerClass.ts","node_modules/immer/src/core/current.ts","node_modules/immer/src/plugins/es5.ts","node_modules/immer/src/immer.ts","node_modules/immer/src/utils/env.ts","node_modules/redux/es/redux.js","node_modules/reselect/es/defaultMemoize.js","node_modules/reselect/es/index.js","node_modules/redux-thunk/es/index.js","node_modules/@reduxjs/toolkit/src/createDraftSafeSelector.ts","node_modules/@reduxjs/toolkit/src/devtoolsExtension.ts","node_modules/@reduxjs/toolkit/src/isPlainObject.ts","node_modules/@reduxjs/toolkit/src/tsHelpers.ts","node_modules/@reduxjs/toolkit/src/createAction.ts","node_modules/@reduxjs/toolkit/src/actionCreatorInvariantMiddleware.ts","node_modules/@reduxjs/toolkit/src/utils.ts","node_modules/@reduxjs/toolkit/src/immutableStateInvariantMiddleware.ts","node_modules/@reduxjs/toolkit/src/serializableStateInvariantMiddleware.ts","node_modules/@reduxjs/toolkit/src/getDefaultMiddleware.ts","node_modules/@reduxjs/toolkit/src/configureStore.ts","node_modules/@reduxjs/toolkit/src/mapBuilders.ts","node_modules/@reduxjs/toolkit/src/createReducer.ts","node_modules/@reduxjs/toolkit/src/createSlice.ts","node_modules/@reduxjs/toolkit/src/entities/state_adapter.ts","node_modules/@reduxjs/toolkit/src/entities/utils.ts","node_modules/@reduxjs/toolkit/src/entities/unsorted_state_adapter.ts","node_modules/@reduxjs/toolkit/src/entities/create_adapter.ts","node_modules/@reduxjs/toolkit/src/entities/entity_state.ts","node_modules/@reduxjs/toolkit/src/entities/state_selectors.ts","node_modules/@reduxjs/toolkit/src/entities/sorted_state_adapter.ts","node_modules/@reduxjs/toolkit/src/nanoid.ts","node_modules/@reduxjs/toolkit/src/createAsyncThunk.ts","node_modules/@reduxjs/toolkit/src/matchers.ts","node_modules/@reduxjs/toolkit/src/listenerMiddleware/utils.ts","node_modules/@reduxjs/toolkit/src/listenerMiddleware/exceptions.ts","node_modules/@reduxjs/toolkit/src/listenerMiddleware/task.ts","node_modules/@reduxjs/toolkit/src/listenerMiddleware/index.ts","node_modules/@reduxjs/toolkit/src/autoBatchEnhancer.ts","node_modules/@reduxjs/toolkit/src/index.ts","node_modules/async/asyncify.js","node_modules/async/each.js","node_modules/async/eachOf.js","node_modules/async/eachOfLimit.js","node_modules/async/internal/breakLoop.js","node_modules/async/internal/doLimit.js","node_modules/async/internal/eachOfLimit.js","node_modules/async/internal/getIterator.js","node_modules/async/internal/initialParams.js","node_modules/async/internal/iterator.js","node_modules/async/internal/once.js","node_modules/async/internal/onlyOnce.js","node_modules/async/internal/setImmediate.js","node_modules/async/internal/slice.js","node_modules/async/internal/withoutIndex.js","node_modules/async/internal/wrapAsync.js","node_modules/base-64/base64.js","node_modules/color-convert/conversions.js","node_modules/color-convert/index.js","node_modules/color-convert/route.js","node_modules/color-name/index.js","node_modules/color-string/index.js","node_modules/color/index.js","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","node_modules/css-in-js-utils/lib/hyphenateProperty.js","node_modules/css-in-js-utils/lib/isPrefixedValue.js","node_modules/decode-uri-component/index.js","node_modules/escape-string-regexp/index.js","node_modules/fast-deep-equal/index.js","node_modules/fbjs/lib/emptyFunction.js","node_modules/fbjs/lib/invariant.js","node_modules/fbjs/lib/warning.js","node_modules/filter-obj/index.js","node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","node_modules/hoist-non-react-statics/node_modules/react-is/index.js","node_modules/hyphenate-style-name/index.js","node_modules/inline-style-prefixer/lib/createPrefixer.js","node_modules/inline-style-prefixer/lib/plugins/backgroundClip.js","node_modules/inline-style-prefixer/lib/plugins/crossFade.js","node_modules/inline-style-prefixer/lib/plugins/cursor.js","node_modules/inline-style-prefixer/lib/plugins/filter.js","node_modules/inline-style-prefixer/lib/plugins/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/inline-style-prefixer/lib/utils/addNewValuesOnly.js","node_modules/inline-style-prefixer/lib/utils/capitalizeString.js","node_modules/inline-style-prefixer/lib/utils/isObject.js","node_modules/inline-style-prefixer/lib/utils/prefixProperty.js","node_modules/inline-style-prefixer/lib/utils/prefixValue.js","node_modules/is-plain-obj/index.js","node_modules/jquery/dist/jquery.js","node_modules/lodash/_Symbol.js","node_modules/lodash/_arrayLikeKeys.js","node_modules/lodash/_baseGetTag.js","node_modules/lodash/_baseIsArguments.js","node_modules/lodash/_baseIsTypedArray.js","node_modules/lodash/_baseKeys.js","node_modules/lodash/_baseTimes.js","node_modules/lodash/_baseUnary.js","node_modules/lodash/_freeGlobal.js","node_modules/lodash/_getRawTag.js","node_modules/lodash/_isIndex.js","node_modules/lodash/_isPrototype.js","node_modules/lodash/_nativeKeys.js","node_modules/lodash/_nodeUtil.js","node_modules/lodash/_objectToString.js","node_modules/lodash/_overArg.js","node_modules/lodash/_root.js","node_modules/lodash/isArguments.js","node_modules/lodash/isArray.js","node_modules/lodash/isArrayLike.js","node_modules/lodash/isBuffer.js","node_modules/lodash/isFunction.js","node_modules/lodash/isLength.js","node_modules/lodash/isObject.js","node_modules/lodash/isObjectLike.js","node_modules/lodash/isTypedArray.js","node_modules/lodash/keys.js","node_modules/lodash/noop.js","node_modules/lodash/stubFalse.js","node_modules/merge-options/index.js","node_modules/moment/locale/af.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/ar.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-bd.js","node_modules/moment/locale/bn.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-at.js","node_modules/moment/locale/de-ch.js","node_modules/moment/locale/de.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-do.js","node_modules/moment/locale/es-mx.js","node_modules/moment/locale/es-us.js","node_modules/moment/locale/es.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-ca.js","node_modules/moment/locale/fr-ch.js","node_modules/moment/locale/fr.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-ch.js","node_modules/moment/locale/it.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-kmr.js","node_modules/moment/locale/ku.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-my.js","node_modules/moment/locale/ms.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-be.js","node_modules/moment/locale/nl.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-br.js","node_modules/moment/locale/pt.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-cyrl.js","node_modules/moment/locale/sr.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-latn.js","node_modules/moment/locale/tzm.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-latn.js","node_modules/moment/locale/uz.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/moment/moment.js","node_modules/nullthrows/nullthrows.js","node_modules/prop-types/factoryWithThrowingShims.js","node_modules/prop-types/index.js","node_modules/prop-types/lib/ReactPropTypesSecret.js","node_modules/query-string/index.js","node_modules/react-dom/cjs/react-dom.production.min.js","node_modules/react-dom/client.js","node_modules/react-dom/index.js","node_modules/react-dom/node_modules/scheduler/cjs/scheduler.production.min.js","node_modules/react-dom/node_modules/scheduler/index.js","node_modules/react-is/cjs/react-is.production.min.js","node_modules/react-is/index.js","node_modules/react-redux/es/utils/batch.js","node_modules/react-redux/es/components/Context.js","node_modules/react-redux/es/hooks/useReduxContext.js","node_modules/react-redux/es/utils/useSyncExternalStore.js","node_modules/react-redux/es/hooks/useSelector.js","node_modules/react-redux/es/connect/selectorFactory.js","node_modules/react-redux/es/connect/wrapMapToProps.js","node_modules/react-redux/es/connect/invalidArgFactory.js","node_modules/react-redux/es/connect/mergeProps.js","node_modules/react-redux/es/utils/Subscription.js","node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","node_modules/react-redux/es/utils/shallowEqual.js","node_modules/react-redux/es/components/connect.js","node_modules/react-redux/es/connect/mapStateToProps.js","node_modules/react-redux/es/connect/mapDispatchToProps.js","node_modules/react-redux/es/utils/bindActionCreators.js","node_modules/react-redux/es/components/Provider.js","node_modules/react-redux/es/hooks/useStore.js","node_modules/react-redux/es/hooks/useDispatch.js","node_modules/react-redux/es/index.js","node_modules/react/cjs/react-jsx-runtime.production.min.js","node_modules/react/cjs/react.production.min.js","node_modules/react/index.js","node_modules/react/jsx-runtime.js","node_modules/simple-swizzle/index.js","node_modules/simple-swizzle/node_modules/is-arrayish/index.js","node_modules/split-on-first/index.js","node_modules/strict-uri-encode/index.js","node_modules/styleq/dist/styleq.js","node_modules/styleq/dist/transform-localize-style.js","node_modules/use-latest-callback/lib/src/index.js","node_modules/use-latest-callback/lib/src/useIsomorphicLayoutEffect.js","node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js","node_modules/use-sync-external-store/shim/index.js","node_modules/use-sync-external-store/shim/with-selector.js","node_modules/warn-once/index.js","node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelperLoose.js","node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","node_modules/@babel/runtime/helpers/esm/typeof.js","node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","node_modules/@babel/runtime/helpers/esm/toPrimitive.js","node_modules/@babel/runtime/helpers/esm/defineProperty.js","node_modules/@babel/runtime/helpers/esm/extends.js","node_modules/@babel/runtime/helpers/esm/objectSpread2.js","node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","node_modules/axios/lib/helpers/bind.js","node_modules/axios/lib/utils.js","node_modules/axios/lib/core/AxiosError.js","node_modules/axios/lib/helpers/toFormData.js","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/core/settle.js","node_modules/axios/lib/helpers/speedometer.js","node_modules/axios/lib/helpers/throttle.js","node_modules/axios/lib/helpers/progressEventReducer.js","node_modules/axios/lib/helpers/isURLSameOrigin.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/core/mergeConfig.js","node_modules/axios/lib/helpers/resolveConfig.js","node_modules/axios/lib/adapters/xhr.js","node_modules/axios/lib/helpers/parseProtocol.js","node_modules/axios/lib/helpers/composeSignals.js","node_modules/axios/lib/helpers/trackStream.js","node_modules/axios/lib/adapters/fetch.js","node_modules/axios/lib/adapters/adapters.js","node_modules/axios/lib/helpers/null.js","node_modules/axios/lib/core/dispatchRequest.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","node_modules/nanoid/non-secure/index.js"],"sourcesContent":["/**\n * Thin ESM wrapper for CJS named exports.\n *\n * Ref: https://redfin.engineering/node-modules-at-war-why-commonjs-and-es-modules-cant-get-along-9617135eeca1\n */\n\nimport mergeOptions from './index.js';\nexport default mergeOptions;\n","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport mergeOptions from \"merge-options\";\nimport type {\n AsyncStorageStatic,\n MultiCallback,\n MultiGetCallback,\n} from \"./types\";\n\n// eslint-disable-next-line @typescript-eslint/ban-types\ntype OnMultiResult = Function;\n// eslint-disable-next-line @typescript-eslint/ban-types\ntype OnResult = Function;\n\nconst merge = mergeOptions.bind({\n concatArrays: true,\n ignoreUndefined: true,\n});\n\nfunction mergeLocalStorageItem(key: string, value: string) {\n const oldValue = window.localStorage.getItem(key);\n if (oldValue) {\n const oldObject = JSON.parse(oldValue);\n const newObject = JSON.parse(value);\n const nextValue = JSON.stringify(merge(oldObject, newObject));\n window.localStorage.setItem(key, nextValue);\n } else {\n window.localStorage.setItem(key, value);\n }\n}\n\nfunction createPromise(\n getValue: () => Result,\n callback?: Callback\n): Promise {\n return new Promise((resolve, reject) => {\n try {\n const value = getValue();\n callback?.(null, value);\n resolve(value);\n } catch (err) {\n callback?.(err);\n reject(err);\n }\n });\n}\n\nfunction createPromiseAll<\n ReturnType,\n Result,\n ResultProcessor extends OnMultiResult\n>(\n promises: Promise[],\n callback?: MultiCallback | MultiGetCallback,\n processResult?: ResultProcessor\n): Promise {\n return Promise.all(promises).then(\n (result) => {\n const value = processResult?.(result) ?? null;\n callback?.(null, value);\n return Promise.resolve(value);\n },\n (errors) => {\n callback?.(errors);\n return Promise.reject(errors);\n }\n );\n}\n\nconst AsyncStorage: AsyncStorageStatic = {\n /**\n * Fetches `key` value.\n */\n getItem: (key, callback) => {\n return createPromise(() => window.localStorage.getItem(key), callback);\n },\n\n /**\n * Sets `value` for `key`.\n */\n setItem: (key, value, callback) => {\n return createPromise(\n () => window.localStorage.setItem(key, value),\n callback\n );\n },\n\n /**\n * Removes a `key`\n */\n removeItem: (key, callback) => {\n return createPromise(() => window.localStorage.removeItem(key), callback);\n },\n\n /**\n * Merges existing value with input value, assuming they are stringified JSON.\n */\n mergeItem: (key, value, callback) => {\n return createPromise(() => mergeLocalStorageItem(key, value), callback);\n },\n\n /**\n * Erases *all* AsyncStorage for the domain.\n */\n clear: (callback) => {\n return createPromise(() => window.localStorage.clear(), callback);\n },\n\n /**\n * Gets *all* keys known to the app, for all callers, libraries, etc.\n */\n getAllKeys: (callback) => {\n return createPromise(() => {\n const numberOfKeys = window.localStorage.length;\n const keys: string[] = [];\n for (let i = 0; i < numberOfKeys; i += 1) {\n const key = window.localStorage.key(i) || \"\";\n keys.push(key);\n }\n return keys;\n }, callback);\n },\n\n /**\n * (stub) Flushes any pending requests using a single batch call to get the data.\n */\n flushGetRequests: () => undefined,\n\n /**\n * multiGet resolves to an array of key-value pair arrays that matches the\n * input format of multiSet.\n *\n * multiGet(['k1', 'k2']) -> [['k1', 'val1'], ['k2', 'val2']]\n */\n multiGet: (keys, callback) => {\n const promises = keys.map((key) => AsyncStorage.getItem(key));\n const processResult = (result: string[]) =>\n result.map((value, i) => [keys[i], value]);\n return createPromiseAll(promises, callback, processResult);\n },\n\n /**\n * Takes an array of key-value array pairs.\n * multiSet([['k1', 'val1'], ['k2', 'val2']])\n */\n multiSet: (keyValuePairs, callback) => {\n const promises = keyValuePairs.map((item) =>\n AsyncStorage.setItem(item[0], item[1])\n );\n return createPromiseAll(promises, callback);\n },\n\n /**\n * Delete all the keys in the `keys` array.\n */\n multiRemove: (keys, callback) => {\n const promises = keys.map((key) => AsyncStorage.removeItem(key));\n return createPromiseAll(promises, callback);\n },\n\n /**\n * Takes an array of key-value array pairs and merges them with existing\n * values, assuming they are stringified JSON.\n *\n * multiMerge([['k1', 'val1'], ['k2', 'val2']])\n */\n multiMerge: (keyValuePairs, callback) => {\n const promises = keyValuePairs.map((item) =>\n AsyncStorage.mergeItem(item[0], item[1])\n );\n return createPromiseAll(promises, callback);\n },\n};\n\nexport default AsyncStorage;\n","import AsyncStorage from \"./AsyncStorage\";\nimport type { AsyncStorageHook } from \"./types\";\n\nexport function useAsyncStorage(key: string): AsyncStorageHook {\n return {\n getItem: (...args) => AsyncStorage.getItem(key, ...args),\n setItem: (...args) => AsyncStorage.setItem(key, ...args),\n mergeItem: (...args) => AsyncStorage.mergeItem(key, ...args),\n removeItem: (...args) => AsyncStorage.removeItem(key, ...args),\n };\n}\n","import AsyncStorage from \"./AsyncStorage\";\n\nexport { useAsyncStorage } from \"./hooks\";\n\nexport type { AsyncStorageStatic } from \"./types\";\n\nexport default AsyncStorage;\n","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * @flow\n *\n */\n\nimport type {ColorValue} from 'react-native/Libraries/StyleSheet/StyleSheet';\n\nimport * as React from 'react';\nimport * as ReactNativeWeb from 'react-native-web';\n\ntype Props = {\n color?: ColorValue,\n label: string,\n testID?: string,\n enabled?: boolean,\n value?: number | string,\n};\n\nconst Option = (props: any) =>\n ReactNativeWeb.unstable_createElement('option', props);\n\n/**\n * PickerItem Component for React Native Web\n * @returns\n */\nexport default function PickerItem({\n color,\n label,\n testID,\n value,\n enabled = true,\n}: Props): React.Node {\n return (\n \n {label}\n \n );\n}\n","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * @flow\n *\n */\n\nimport * as React from 'react';\nimport {unstable_createElement} from 'react-native-web';\nimport {forwardRef} from 'react';\nimport type {ViewProps} from 'react-native-web/src/exports/View/types';\nimport type {GenericStyleProp} from 'react-native-web/src/types';\nimport type {TextStyle} from 'react-native-web/src/exports/Text/types';\nimport PickerItem from './PickerItem';\n\ntype PickerProps = {\n ...ViewProps,\n children?: typeof PickerItem | Array,\n enabled?: boolean,\n onValueChange?: (number | string, number) => void,\n selectedValue?: number | string,\n /**\n * dropdownIconColor\n * Not used for Web.\n */\n dropdownIconColor?: string,\n /* compat */\n itemStyle?: GenericStyleProp,\n mode?: string,\n prompt?: string,\n};\n\nconst Select = forwardRef((props: $FlowFixMe, forwardedRef: $FlowFixMe) =>\n unstable_createElement('select', {\n ...props,\n ref: forwardedRef,\n }),\n);\n\nconst Picker: React$AbstractComponent = forwardRef<\n PickerProps,\n $FlowFixMe,\n>((props, forwardedRef) => {\n const {\n enabled,\n onValueChange,\n selectedValue,\n itemStyle,\n mode,\n prompt,\n dropdownIconColor,\n ...other\n } = props;\n\n const handleChange = React.useCallback(\n (e: Object) => {\n const {selectedIndex, value} = e.target;\n if (onValueChange) {\n onValueChange(value, selectedIndex);\n }\n },\n [onValueChange],\n );\n\n return (\n // $FlowFixMe\n \n );\n});\n\n// $FlowFixMe\nPicker.Item = PickerItem;\n\nexport default Picker;\n","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport * as React from 'react';\nimport {View, StyleSheet} from 'react-native';\ndeclare var __DEV__: boolean;\n/**\n * Common implementation for a simple stubbed view. Simply applies the view's styles to the inner\n * View component and renders its children.\n */\nconst UnimplementedView = (props: $FlowFixMeProps): React.Node => {\n return (\n \n {props.children}\n \n );\n};\n\nconst styles = StyleSheet.create({\n unimplementedView:\n process.env.NODE_ENV !== 'production'\n ? {\n alignSelf: 'flex-start',\n borderColor: 'red',\n borderWidth: 1,\n }\n : {},\n});\n\nexport default UnimplementedView;\n","/**\n * @flow\n */\n\nimport * as React from 'react';\nimport UnimplementedView from './UnimplementedView';\n\nfunction PickerIOS(): React.Node {\n return ;\n}\n\n/**\n * Fallback for other platforms\n */\nPickerIOS.Item = UnimplementedView;\n\nexport default PickerIOS;\n","/**\n * Copyright (c) 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 * @noflow\n */\n\n/* eslint no-bitwise: 0 */\n\n'use strict';\n\nfunction normalizeColor(color) {\n if (typeof color === 'number') {\n if (color >>> 0 === color && color >= 0 && color <= 0xffffffff) {\n return color;\n }\n return null;\n }\n\n if (typeof color !== 'string') {\n return null;\n }\n\n const matchers = getMatchers();\n let match;\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 const colorFromKeyword = normalizeKeyword(color);\n if (colorFromKeyword != null) {\n return colorFromKeyword;\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\n if ((match = matchers.rgba.exec(color))) {\n // rgba(R G B / A) notation\n if (match[6] !== undefined) {\n return (\n ((parse255(match[6]) << 24) | // r\n (parse255(match[7]) << 16) | // g\n (parse255(match[8]) << 8) | // b\n parse1(match[9])) >>> // a\n 0\n );\n }\n\n // rgba(R, G, B, A) notation\n return (\n ((parse255(match[2]) << 24) | // r\n (parse255(match[3]) << 16) | // g\n (parse255(match[4]) << 8) | // b\n parse1(match[5])) >>> // a\n 0\n );\n }\n\n if ((match = matchers.hex3.exec(color))) {\n return (\n parseInt(\n 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,\n ) >>> 0\n );\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 (\n parseInt(\n 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,\n ) >>> 0\n );\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\n if ((match = matchers.hsla.exec(color))) {\n // hsla(H S L / A) notation\n if (match[6] !== undefined) {\n return (\n (hslToRgb(\n parse360(match[6]), // h\n parsePercentage(match[7]), // s\n parsePercentage(match[8]), // l\n ) |\n parse1(match[9])) >>> // a\n 0\n );\n }\n\n // hsla(H, S, L, A) notation\n return (\n (hslToRgb(\n parse360(match[2]), // h\n parsePercentage(match[3]), // s\n parsePercentage(match[4]), // l\n ) |\n parse1(match[5])) >>> // a\n 0\n );\n }\n\n if ((match = matchers.hwb.exec(color))) {\n return (\n (hwbToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // w\n parsePercentage(match[3]), // b\n ) |\n 0x000000ff) >>> // a\n 0\n );\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 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\n return (\n (Math.round(r * 255) << 24) |\n (Math.round(g * 255) << 16) |\n (Math.round(b * 255) << 8)\n );\n}\n\nfunction hwbToRgb(h, w, b) {\n if (w + b >= 1) {\n const gray = Math.round((w * 255) / (w + b));\n\n return (gray << 24) | (gray << 16) | (gray << 8);\n }\n\n const red = hue2rgb(0, 1, h + 1 / 3) * (1 - w - b) + w;\n const green = hue2rgb(0, 1, h) * (1 - w - b) + w;\n const blue = hue2rgb(0, 1, h - 1 / 3) * (1 - w - b) + w;\n\n return (\n (Math.round(red * 255) << 24) |\n (Math.round(green * 255) << 16) |\n (Math.round(blue * 255) << 8)\n );\n}\n\nconst NUMBER = '[-+]?\\\\d*\\\\.?\\\\d+';\nconst PERCENTAGE = NUMBER + '%';\n\nfunction call(...args) {\n return '\\\\(\\\\s*(' + args.join(')\\\\s*,?\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nfunction callWithSlashSeparator(...args) {\n return (\n '\\\\(\\\\s*(' +\n args.slice(0, args.length - 1).join(')\\\\s*,?\\\\s*(') +\n ')\\\\s*/\\\\s*(' +\n args[args.length - 1] +\n ')\\\\s*\\\\)'\n );\n}\n\nfunction commaSeparatedCall(...args) {\n return '\\\\(\\\\s*(' + args.join(')\\\\s*,\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nlet cachedMatchers;\n\nfunction getMatchers() {\n if (cachedMatchers === undefined) {\n cachedMatchers = {\n rgb: new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER)),\n rgba: new RegExp(\n 'rgba(' +\n commaSeparatedCall(NUMBER, NUMBER, NUMBER, NUMBER) +\n '|' +\n callWithSlashSeparator(NUMBER, NUMBER, NUMBER, NUMBER) +\n ')',\n ),\n hsl: new RegExp('hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE)),\n hsla: new RegExp(\n 'hsla(' +\n commaSeparatedCall(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER) +\n '|' +\n callWithSlashSeparator(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER) +\n ')',\n ),\n hwb: new RegExp('hwb' + call(NUMBER, PERCENTAGE, PERCENTAGE)),\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 }\n return cachedMatchers;\n}\n\nfunction parse255(str) {\n const 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 const int = parseFloat(str);\n return (((int % 360) + 360) % 360) / 360;\n}\n\nfunction parse1(str) {\n const 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 const int = parseFloat(str);\n if (int < 0) {\n return 0;\n }\n if (int > 100) {\n return 1;\n }\n return int / 100;\n}\n\nfunction normalizeKeyword(name) {\n // prettier-ignore\n switch (name) {\n case 'transparent': return 0x00000000;\n // http://www.w3.org/TR/css3-color/#svg-color\n case 'aliceblue': return 0xf0f8ffff;\n case 'antiquewhite': return 0xfaebd7ff;\n case 'aqua': return 0x00ffffff;\n case 'aquamarine': return 0x7fffd4ff;\n case 'azure': return 0xf0ffffff;\n case 'beige': return 0xf5f5dcff;\n case 'bisque': return 0xffe4c4ff;\n case 'black': return 0x000000ff;\n case 'blanchedalmond': return 0xffebcdff;\n case 'blue': return 0x0000ffff;\n case 'blueviolet': return 0x8a2be2ff;\n case 'brown': return 0xa52a2aff;\n case 'burlywood': return 0xdeb887ff;\n case 'burntsienna': return 0xea7e5dff;\n case 'cadetblue': return 0x5f9ea0ff;\n case 'chartreuse': return 0x7fff00ff;\n case 'chocolate': return 0xd2691eff;\n case 'coral': return 0xff7f50ff;\n case 'cornflowerblue': return 0x6495edff;\n case 'cornsilk': return 0xfff8dcff;\n case 'crimson': return 0xdc143cff;\n case 'cyan': return 0x00ffffff;\n case 'darkblue': return 0x00008bff;\n case 'darkcyan': return 0x008b8bff;\n case 'darkgoldenrod': return 0xb8860bff;\n case 'darkgray': return 0xa9a9a9ff;\n case 'darkgreen': return 0x006400ff;\n case 'darkgrey': return 0xa9a9a9ff;\n case 'darkkhaki': return 0xbdb76bff;\n case 'darkmagenta': return 0x8b008bff;\n case 'darkolivegreen': return 0x556b2fff;\n case 'darkorange': return 0xff8c00ff;\n case 'darkorchid': return 0x9932ccff;\n case 'darkred': return 0x8b0000ff;\n case 'darksalmon': return 0xe9967aff;\n case 'darkseagreen': return 0x8fbc8fff;\n case 'darkslateblue': return 0x483d8bff;\n case 'darkslategray': return 0x2f4f4fff;\n case 'darkslategrey': return 0x2f4f4fff;\n case 'darkturquoise': return 0x00ced1ff;\n case 'darkviolet': return 0x9400d3ff;\n case 'deeppink': return 0xff1493ff;\n case 'deepskyblue': return 0x00bfffff;\n case 'dimgray': return 0x696969ff;\n case 'dimgrey': return 0x696969ff;\n case 'dodgerblue': return 0x1e90ffff;\n case 'firebrick': return 0xb22222ff;\n case 'floralwhite': return 0xfffaf0ff;\n case 'forestgreen': return 0x228b22ff;\n case 'fuchsia': return 0xff00ffff;\n case 'gainsboro': return 0xdcdcdcff;\n case 'ghostwhite': return 0xf8f8ffff;\n case 'gold': return 0xffd700ff;\n case 'goldenrod': return 0xdaa520ff;\n case 'gray': return 0x808080ff;\n case 'green': return 0x008000ff;\n case 'greenyellow': return 0xadff2fff;\n case 'grey': return 0x808080ff;\n case 'honeydew': return 0xf0fff0ff;\n case 'hotpink': return 0xff69b4ff;\n case 'indianred': return 0xcd5c5cff;\n case 'indigo': return 0x4b0082ff;\n case 'ivory': return 0xfffff0ff;\n case 'khaki': return 0xf0e68cff;\n case 'lavender': return 0xe6e6faff;\n case 'lavenderblush': return 0xfff0f5ff;\n case 'lawngreen': return 0x7cfc00ff;\n case 'lemonchiffon': return 0xfffacdff;\n case 'lightblue': return 0xadd8e6ff;\n case 'lightcoral': return 0xf08080ff;\n case 'lightcyan': return 0xe0ffffff;\n case 'lightgoldenrodyellow': return 0xfafad2ff;\n case 'lightgray': return 0xd3d3d3ff;\n case 'lightgreen': return 0x90ee90ff;\n case 'lightgrey': return 0xd3d3d3ff;\n case 'lightpink': return 0xffb6c1ff;\n case 'lightsalmon': return 0xffa07aff;\n case 'lightseagreen': return 0x20b2aaff;\n case 'lightskyblue': return 0x87cefaff;\n case 'lightslategray': return 0x778899ff;\n case 'lightslategrey': return 0x778899ff;\n case 'lightsteelblue': return 0xb0c4deff;\n case 'lightyellow': return 0xffffe0ff;\n case 'lime': return 0x00ff00ff;\n case 'limegreen': return 0x32cd32ff;\n case 'linen': return 0xfaf0e6ff;\n case 'magenta': return 0xff00ffff;\n case 'maroon': return 0x800000ff;\n case 'mediumaquamarine': return 0x66cdaaff;\n case 'mediumblue': return 0x0000cdff;\n case 'mediumorchid': return 0xba55d3ff;\n case 'mediumpurple': return 0x9370dbff;\n case 'mediumseagreen': return 0x3cb371ff;\n case 'mediumslateblue': return 0x7b68eeff;\n case 'mediumspringgreen': return 0x00fa9aff;\n case 'mediumturquoise': return 0x48d1ccff;\n case 'mediumvioletred': return 0xc71585ff;\n case 'midnightblue': return 0x191970ff;\n case 'mintcream': return 0xf5fffaff;\n case 'mistyrose': return 0xffe4e1ff;\n case 'moccasin': return 0xffe4b5ff;\n case 'navajowhite': return 0xffdeadff;\n case 'navy': return 0x000080ff;\n case 'oldlace': return 0xfdf5e6ff;\n case 'olive': return 0x808000ff;\n case 'olivedrab': return 0x6b8e23ff;\n case 'orange': return 0xffa500ff;\n case 'orangered': return 0xff4500ff;\n case 'orchid': return 0xda70d6ff;\n case 'palegoldenrod': return 0xeee8aaff;\n case 'palegreen': return 0x98fb98ff;\n case 'paleturquoise': return 0xafeeeeff;\n case 'palevioletred': return 0xdb7093ff;\n case 'papayawhip': return 0xffefd5ff;\n case 'peachpuff': return 0xffdab9ff;\n case 'peru': return 0xcd853fff;\n case 'pink': return 0xffc0cbff;\n case 'plum': return 0xdda0ddff;\n case 'powderblue': return 0xb0e0e6ff;\n case 'purple': return 0x800080ff;\n case 'rebeccapurple': return 0x663399ff;\n case 'red': return 0xff0000ff;\n case 'rosybrown': return 0xbc8f8fff;\n case 'royalblue': return 0x4169e1ff;\n case 'saddlebrown': return 0x8b4513ff;\n case 'salmon': return 0xfa8072ff;\n case 'sandybrown': return 0xf4a460ff;\n case 'seagreen': return 0x2e8b57ff;\n case 'seashell': return 0xfff5eeff;\n case 'sienna': return 0xa0522dff;\n case 'silver': return 0xc0c0c0ff;\n case 'skyblue': return 0x87ceebff;\n case 'slateblue': return 0x6a5acdff;\n case 'slategray': return 0x708090ff;\n case 'slategrey': return 0x708090ff;\n case 'snow': return 0xfffafaff;\n case 'springgreen': return 0x00ff7fff;\n case 'steelblue': return 0x4682b4ff;\n case 'tan': return 0xd2b48cff;\n case 'teal': return 0x008080ff;\n case 'thistle': return 0xd8bfd8ff;\n case 'tomato': return 0xff6347ff;\n case 'turquoise': return 0x40e0d0ff;\n case 'violet': return 0xee82eeff;\n case 'wheat': return 0xf5deb3ff;\n case 'white': return 0xffffffff;\n case 'whitesmoke': return 0xf5f5f5ff;\n case 'yellow': return 0xffff00ff;\n case 'yellowgreen': return 0x9acd32ff;\n }\n return null;\n}\n\nmodule.exports = normalizeColor;\n","import type { NavigationState, PartialState, Route } from './types';\n\ntype ResetState =\n | PartialState\n | NavigationState\n | (Omit & {\n routes: Omit, 'key'>[];\n });\n\nexport type Action =\n | {\n type: 'GO_BACK';\n source?: string;\n target?: string;\n }\n | {\n type: 'NAVIGATE';\n payload:\n | {\n key: string;\n name?: undefined;\n params?: object;\n path?: string;\n merge?: boolean;\n }\n | {\n name: string;\n key?: string;\n params?: object;\n path?: string;\n merge?: boolean;\n };\n source?: string;\n target?: string;\n }\n | {\n type: 'RESET';\n payload: ResetState | undefined;\n source?: string;\n target?: string;\n }\n | {\n type: 'SET_PARAMS';\n payload: { params?: object };\n source?: string;\n target?: string;\n };\n\nexport function goBack(): Action {\n return { type: 'GO_BACK' };\n}\n\nexport function navigate(\n options:\n | { key: string; params?: object; path?: string; merge?: boolean }\n | {\n name: string;\n key?: string;\n params?: object;\n path?: string;\n merge?: boolean;\n }\n): Action;\n// eslint-disable-next-line no-redeclare\nexport function navigate(name: string, params?: object): Action;\n// eslint-disable-next-line no-redeclare\nexport function navigate(...args: any): Action {\n if (typeof args[0] === 'string') {\n return { type: 'NAVIGATE', payload: { name: args[0], params: args[1] } };\n } else {\n const payload = args[0] || {};\n\n if (!payload.hasOwnProperty('key') && !payload.hasOwnProperty('name')) {\n throw new Error(\n 'You need to specify name or key when calling navigate with an object as the argument. See https://reactnavigation.org/docs/navigation-actions#navigate for usage.'\n );\n }\n\n return { type: 'NAVIGATE', payload };\n }\n}\n\nexport function reset(state: ResetState | undefined): Action {\n return { type: 'RESET', payload: state };\n}\n\nexport function setParams(params: object): Action {\n return { type: 'SET_PARAMS', payload: { params } };\n}\n","import { CommonActions } from '@react-navigation/routers';\n\nimport type {\n NavigationContainerEventMap,\n NavigationContainerRef,\n NavigationContainerRefWithCurrent,\n} from './types';\n\nexport const NOT_INITIALIZED_ERROR =\n \"The 'navigation' object hasn't been initialized yet. This might happen if you don't have a navigator mounted, or if the navigator hasn't finished mounting. See https://reactnavigation.org/docs/navigating-without-navigation-prop#handling-initialization for more details.\";\n\nexport default function createNavigationContainerRef<\n ParamList extends {} = ReactNavigation.RootParamList\n>(): NavigationContainerRefWithCurrent {\n const methods = [\n ...Object.keys(CommonActions),\n 'addListener',\n 'removeListener',\n 'resetRoot',\n 'dispatch',\n 'isFocused',\n 'canGoBack',\n 'getRootState',\n 'getState',\n 'getParent',\n 'getCurrentRoute',\n 'getCurrentOptions',\n ] as const;\n\n const listeners: Record void)[]> = {};\n\n const removeListener = (\n event: string,\n callback: (...args: any[]) => void\n ) => {\n if (listeners[event]) {\n listeners[event] = listeners[event].filter((cb) => cb !== callback);\n }\n };\n\n let current: NavigationContainerRef | null = null;\n\n const ref: NavigationContainerRefWithCurrent = {\n get current() {\n return current;\n },\n set current(value: NavigationContainerRef | null) {\n current = value;\n\n if (value != null) {\n Object.entries(listeners).forEach(([event, callbacks]) => {\n callbacks.forEach((callback) => {\n value.addListener(\n event as keyof NavigationContainerEventMap,\n callback\n );\n });\n });\n }\n },\n isReady: () => {\n if (current == null) {\n return false;\n }\n\n return current.isReady();\n },\n ...methods.reduce((acc, name) => {\n acc[name] = (...args: any[]) => {\n if (current == null) {\n switch (name) {\n case 'addListener': {\n const [event, callback] = args;\n\n listeners[event] = listeners[event] || [];\n listeners[event].push(callback);\n\n return () => removeListener(event, callback);\n }\n case 'removeListener': {\n const [event, callback] = args;\n\n removeListener(event, callback);\n break;\n }\n default:\n console.error(NOT_INITIALIZED_ERROR);\n }\n } else {\n // @ts-expect-error: this is ok\n return current[name](...args);\n }\n };\n return acc;\n }, {}),\n };\n\n return ref;\n}\n","import * as React from 'react';\n\ntype Props = {\n children: React.ReactNode;\n};\n\nconst MULTIPLE_NAVIGATOR_ERROR = `Another navigator is already registered for this container. You likely have multiple navigators under a single \"NavigationContainer\" or \"Screen\". Make sure each navigator is under a separate \"Screen\" container. See https://reactnavigation.org/docs/nesting-navigators for a guide on nesting.`;\n\nexport const SingleNavigatorContext = React.createContext<\n | {\n register(key: string): void;\n unregister(key: string): void;\n }\n | undefined\n>(undefined);\n\n/**\n * Component which ensures that there's only one navigator nested under it.\n */\nexport default function EnsureSingleNavigator({ children }: Props) {\n const navigatorKeyRef = React.useRef();\n\n const value = React.useMemo(\n () => ({\n register(key: string) {\n const currentKey = navigatorKeyRef.current;\n\n if (currentKey !== undefined && key !== currentKey) {\n throw new Error(MULTIPLE_NAVIGATOR_ERROR);\n }\n\n navigatorKeyRef.current = key;\n },\n unregister(key: string) {\n const currentKey = navigatorKeyRef.current;\n\n if (key !== currentKey) {\n return;\n }\n\n navigatorKeyRef.current = undefined;\n },\n }),\n []\n );\n\n return (\n \n {children}\n \n );\n}\n","import type { InitialState } from '@react-navigation/routers';\n\nexport default function findFocusedRoute(state: InitialState) {\n let current: InitialState | undefined = state;\n\n while (current?.routes[current.index ?? 0].state != null) {\n current = current.routes[current.index ?? 0].state;\n }\n\n const route = current?.routes[current?.index ?? 0];\n\n return route;\n}\n","import type {\n NavigationAction,\n NavigationState,\n ParamListBase,\n} from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport type { NavigationHelpers } from './types';\n\nexport type ListenerMap = {\n action: ChildActionListener;\n focus: FocusedNavigationListener;\n};\n\nexport type KeyedListenerMap = {\n getState: GetStateListener;\n beforeRemove: ChildBeforeRemoveListener;\n};\n\nexport type AddListener = (\n type: T,\n listener: ListenerMap[T]\n) => void;\n\nexport type AddKeyedListener = (\n type: T,\n key: string,\n listener: KeyedListenerMap[T]\n) => void;\n\nexport type ChildActionListener = (\n action: NavigationAction,\n visitedNavigators?: Set\n) => boolean;\n\nexport type FocusedNavigationCallback = (\n navigation: NavigationHelpers\n) => T;\n\nexport type FocusedNavigationListener = (\n callback: FocusedNavigationCallback\n) => {\n handled: boolean;\n result: T;\n};\n\nexport type GetStateListener = () => NavigationState;\n\nexport type ChildBeforeRemoveListener = (action: NavigationAction) => boolean;\n\n/**\n * Context which holds the required helpers needed to build nested navigators.\n */\nconst NavigationBuilderContext = React.createContext<{\n onAction?: (\n action: NavigationAction,\n visitedNavigators?: Set\n ) => boolean;\n addListener?: AddListener;\n addKeyedListener?: AddKeyedListener;\n onRouteFocus?: (key: string) => void;\n onDispatchAction: (action: NavigationAction, noop: boolean) => void;\n onOptionsChange: (options: object) => void;\n stackRef?: React.MutableRefObject;\n}>({\n onDispatchAction: () => undefined,\n onOptionsChange: () => undefined,\n});\n\nexport default NavigationBuilderContext;\n","import type { ParamListBase } from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport type { NavigationContainerRef } from './types';\n\n/**\n * Context which holds the route prop for a screen.\n */\nconst NavigationContainerRefContext = React.createContext<\n NavigationContainerRef | undefined\n>(undefined);\n\nexport default NavigationContainerRefContext;\n","import type { ParamListBase } from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport type { NavigationProp } from './types';\n\n/**\n * Context which holds the navigation prop for a screen.\n */\nconst NavigationContext = React.createContext<\n NavigationProp | undefined\n>(undefined);\n\nexport default NavigationContext;\n","import type { Route } from '@react-navigation/routers';\nimport * as React from 'react';\n\n/**\n * Context which holds the route prop for a screen.\n */\nconst NavigationRouteContext = React.createContext | undefined>(\n undefined\n);\n\nexport default NavigationRouteContext;\n","import type { NavigationState, PartialState } from '@react-navigation/routers';\nimport * as React from 'react';\n\nconst MISSING_CONTEXT_ERROR =\n \"Couldn't find a navigation context. Have you wrapped your app with 'NavigationContainer'? See https://reactnavigation.org/docs/getting-started for setup instructions.\";\n\nexport default React.createContext<{\n isDefault?: true;\n state?: NavigationState | PartialState;\n getKey: () => string | undefined;\n setKey: (key: string) => void;\n getState: () => NavigationState | PartialState | undefined;\n setState: (\n state: NavigationState | PartialState | undefined\n ) => void;\n getIsInitial: () => boolean;\n addOptionsGetter?: (\n key: string,\n getter: () => object | undefined | null\n ) => void;\n}>({\n isDefault: true,\n\n get getKey(): any {\n throw new Error(MISSING_CONTEXT_ERROR);\n },\n get setKey(): any {\n throw new Error(MISSING_CONTEXT_ERROR);\n },\n get getState(): any {\n throw new Error(MISSING_CONTEXT_ERROR);\n },\n get setState(): any {\n throw new Error(MISSING_CONTEXT_ERROR);\n },\n get getIsInitial(): any {\n throw new Error(MISSING_CONTEXT_ERROR);\n },\n});\n","import type { NavigationAction } from '@react-navigation/routers';\nimport * as React from 'react';\n\nconst UnhandledActionContext = React.createContext<\n ((action: NavigationAction) => void) | undefined\n>(undefined);\n\nexport default UnhandledActionContext;\n","import * as React from 'react';\n\nimport type { ListenerMap } from './NavigationBuilderContext';\n\n/**\n * Hook which lets child navigators add action listeners.\n */\nexport default function useChildListeners() {\n const { current: listeners } = React.useRef<{\n [K in keyof ListenerMap]: ListenerMap[K][];\n }>({\n action: [],\n focus: [],\n });\n\n const addListener = React.useCallback(\n (type: T, listener: ListenerMap[T]) => {\n listeners[type].push(listener);\n\n let removed = false;\n return () => {\n const index = listeners[type].indexOf(listener);\n\n if (!removed && index > -1) {\n removed = true;\n listeners[type].splice(index, 1);\n }\n };\n },\n [listeners]\n );\n\n return {\n listeners,\n addListener,\n };\n}\n","import * as React from 'react';\n\nimport type { EventArg, EventConsumer, EventEmitter } from './types';\n\nexport type NavigationEventEmitter> =\n EventEmitter & {\n create: (target: string) => EventConsumer;\n };\n\ntype Listeners = ((e: any) => void)[];\n\n/**\n * Hook to manage the event system used by the navigator to notify screens of various events.\n */\nexport default function useEventEmitter>(\n listen?: (e: any) => void\n): NavigationEventEmitter {\n const listenRef = React.useRef(listen);\n\n React.useEffect(() => {\n listenRef.current = listen;\n });\n\n const listeners = React.useRef>>(\n Object.create(null)\n );\n\n const create = React.useCallback((target: string) => {\n const removeListener = (type: string, callback: (data: any) => void) => {\n const callbacks = listeners.current[type]\n ? listeners.current[type][target]\n : undefined;\n\n if (!callbacks) {\n return;\n }\n\n const index = callbacks.indexOf(callback);\n\n if (index > -1) {\n callbacks.splice(index, 1);\n }\n };\n\n const addListener = (type: string, callback: (data: any) => void) => {\n listeners.current[type] = listeners.current[type] || {};\n listeners.current[type][target] = listeners.current[type][target] || [];\n listeners.current[type][target].push(callback);\n\n 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\n return {\n addListener,\n removeListener,\n };\n }, []);\n\n const emit = React.useCallback(\n ({\n type,\n data,\n target,\n canPreventDefault,\n }: {\n type: string;\n data?: any;\n target?: string;\n canPreventDefault?: boolean;\n }) => {\n const items = listeners.current[type] || {};\n\n // Copy the current list of callbacks in case they are mutated during execution\n const callbacks =\n target !== undefined\n ? items[target]?.slice()\n : ([] as Listeners)\n .concat(...Object.keys(items).map((t) => items[t]))\n .filter((cb, i, self) => self.lastIndexOf(cb) === i);\n\n const event: EventArg = {\n get type() {\n return type;\n },\n };\n\n if (target !== undefined) {\n Object.defineProperty(event, 'target', {\n enumerable: true,\n get() {\n return target;\n },\n });\n }\n\n if (data !== undefined) {\n Object.defineProperty(event, 'data', {\n enumerable: true,\n get() {\n return data;\n },\n });\n }\n\n if (canPreventDefault) {\n let defaultPrevented = false;\n\n Object.defineProperties(event, {\n defaultPrevented: {\n enumerable: true,\n get() {\n return defaultPrevented;\n },\n },\n preventDefault: {\n enumerable: true,\n value() {\n defaultPrevented = true;\n },\n },\n });\n }\n\n listenRef.current?.(event);\n\n callbacks?.forEach((cb) => cb(event));\n\n return event as any;\n },\n []\n );\n\n return React.useMemo(() => ({ create, emit }), [create, emit]);\n}\n","import * as React from 'react';\n\nimport type { KeyedListenerMap } from './NavigationBuilderContext';\n\n/**\n * Hook which lets child navigators add getters to be called for obtaining rehydrated state.\n */\nexport default function useKeyedChildListeners() {\n const { current: keyedListeners } = React.useRef<{\n [K in keyof KeyedListenerMap]: Record<\n string,\n KeyedListenerMap[K] | undefined\n >;\n }>(\n Object.assign(Object.create(null), {\n getState: {},\n beforeRemove: {},\n })\n );\n\n const addKeyedListener = React.useCallback(\n (\n type: T,\n key: string,\n listener: KeyedListenerMap[T]\n ) => {\n // @ts-expect-error: according to ref stated above you can use `key` to index type\n keyedListeners[type][key] = listener;\n\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 },\n [keyedListeners]\n );\n\n return {\n keyedListeners,\n addKeyedListener,\n };\n}\n","import type { ParamListBase } from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport NavigationBuilderContext from './NavigationBuilderContext';\nimport NavigationStateContext from './NavigationStateContext';\nimport type { NavigationProp } from './types';\n\ntype Options = {\n key?: string;\n navigation?: NavigationProp;\n options?: object | undefined;\n};\n\nexport default function useOptionsGetters({\n key,\n options,\n navigation,\n}: Options) {\n const optionsRef = React.useRef(options);\n const optionsGettersFromChildRef = React.useRef<\n Record object | undefined | null>\n >({});\n\n const { onOptionsChange } = React.useContext(NavigationBuilderContext);\n const { addOptionsGetter: parentAddOptionsGetter } = React.useContext(\n NavigationStateContext\n );\n\n const optionsChangeListener = React.useCallback(() => {\n const isFocused = navigation?.isFocused() ?? true;\n const hasChildren = Object.keys(optionsGettersFromChildRef.current).length;\n\n if (isFocused && !hasChildren) {\n onOptionsChange(optionsRef.current ?? {});\n }\n }, [navigation, onOptionsChange]);\n\n React.useEffect(() => {\n optionsRef.current = options;\n optionsChangeListener();\n\n return navigation?.addListener('focus', optionsChangeListener);\n }, [navigation, options, optionsChangeListener]);\n\n const getOptionsFromListener = React.useCallback(() => {\n for (let key in optionsGettersFromChildRef.current) {\n if (optionsGettersFromChildRef.current.hasOwnProperty(key)) {\n const result = optionsGettersFromChildRef.current[key]?.();\n\n // null means unfocused route\n if (result !== null) {\n return result;\n }\n }\n }\n\n return null;\n }, []);\n\n const getCurrentOptions = React.useCallback(() => {\n const isFocused = navigation?.isFocused() ?? true;\n\n if (!isFocused) {\n return null;\n }\n\n const optionsFromListener = getOptionsFromListener();\n\n if (optionsFromListener !== null) {\n return optionsFromListener;\n }\n\n return optionsRef.current;\n }, [navigation, getOptionsFromListener]);\n\n React.useEffect(() => {\n return parentAddOptionsGetter?.(key!, getCurrentOptions);\n }, [getCurrentOptions, parentAddOptionsGetter, key]);\n\n const addOptionsGetter = React.useCallback(\n (key: string, getter: () => object | undefined | null) => {\n optionsGettersFromChildRef.current[key] = getter;\n optionsChangeListener();\n\n return () => {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete optionsGettersFromChildRef.current[key];\n optionsChangeListener();\n };\n },\n [optionsChangeListener]\n );\n\n return {\n addOptionsGetter,\n getCurrentOptions,\n };\n}\n","import * as React from 'react';\n\nconst MISSING_CONTEXT_ERROR = \"Couldn't find a schedule context.\";\n\nexport const ScheduleUpdateContext = React.createContext<{\n scheduleUpdate: (callback: () => void) => void;\n flushUpdates: () => void;\n}>({\n scheduleUpdate() {\n throw new Error(MISSING_CONTEXT_ERROR);\n },\n flushUpdates() {\n throw new Error(MISSING_CONTEXT_ERROR);\n },\n});\n\n/**\n * When screen config changes, we want to update the navigator in the same update phase.\n * However, navigation state is in the root component and React won't let us update it from a child.\n * This is a workaround for that, the scheduled update is stored in the ref without actually calling setState.\n * It lets all subsequent updates access the latest state so it stays correct.\n * Then we call setState during after the component updates.\n */\nexport default function useScheduleUpdate(callback: () => void) {\n const { scheduleUpdate, flushUpdates } = React.useContext(\n ScheduleUpdateContext\n );\n\n scheduleUpdate(callback);\n\n React.useEffect(flushUpdates);\n}\n","import * as React from 'react';\n\nconst UNINTIALIZED_STATE = {};\n\n/**\n * This is definitely not compatible with concurrent mode, but we don't have a solution for sync state yet.\n */\nexport default function useSyncState(initialState?: (() => T) | T) {\n const stateRef = React.useRef(UNINTIALIZED_STATE as any);\n const isSchedulingRef = React.useRef(false);\n const isMountedRef = React.useRef(true);\n\n React.useEffect(() => {\n isMountedRef.current = true;\n\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n\n if (stateRef.current === UNINTIALIZED_STATE) {\n stateRef.current =\n // @ts-expect-error: initialState is a function, but TypeScript doesn't think so\n typeof initialState === 'function' ? initialState() : initialState;\n }\n\n const [trackingState, setTrackingState] = React.useState(stateRef.current);\n\n const getState = React.useCallback(() => stateRef.current, []);\n\n const setState = React.useCallback((state: T) => {\n if (state === stateRef.current || !isMountedRef.current) {\n return;\n }\n\n stateRef.current = state;\n\n if (!isSchedulingRef.current) {\n setTrackingState(state);\n }\n }, []);\n\n const scheduleUpdate = React.useCallback((callback: () => void) => {\n isSchedulingRef.current = true;\n\n try {\n callback();\n } finally {\n isSchedulingRef.current = false;\n }\n }, []);\n\n const flushUpdates = React.useCallback(() => {\n if (!isMountedRef.current) {\n return;\n }\n\n // Make sure that the tracking state is up-to-date.\n // We call it unconditionally, but React should skip the update if state is unchanged.\n setTrackingState(stateRef.current);\n }, []);\n\n // If we're rendering and the tracking state is out of date, update it immediately\n // This will make sure that our updates are applied as early as possible.\n if (trackingState !== stateRef.current) {\n setTrackingState(stateRef.current);\n }\n\n const state = stateRef.current;\n\n React.useDebugValue(state);\n\n return [state, getState, setState, scheduleUpdate, flushUpdates] as const;\n}\n","import {\n CommonActions,\n InitialState,\n NavigationAction,\n NavigationState,\n ParamListBase,\n PartialState,\n Route,\n} from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport checkDuplicateRouteNames from './checkDuplicateRouteNames';\nimport checkSerializable from './checkSerializable';\nimport { NOT_INITIALIZED_ERROR } from './createNavigationContainerRef';\nimport EnsureSingleNavigator from './EnsureSingleNavigator';\nimport findFocusedRoute from './findFocusedRoute';\nimport NavigationBuilderContext from './NavigationBuilderContext';\nimport NavigationContainerRefContext from './NavigationContainerRefContext';\nimport NavigationContext from './NavigationContext';\nimport NavigationRouteContext from './NavigationRouteContext';\nimport NavigationStateContext from './NavigationStateContext';\nimport type {\n NavigationContainerEventMap,\n NavigationContainerProps,\n NavigationContainerRef,\n} from './types';\nimport UnhandledActionContext from './UnhandledActionContext';\nimport useChildListeners from './useChildListeners';\nimport useEventEmitter from './useEventEmitter';\nimport useKeyedChildListeners from './useKeyedChildListeners';\nimport useOptionsGetters from './useOptionsGetters';\nimport { ScheduleUpdateContext } from './useScheduleUpdate';\nimport useSyncState from './useSyncState';\n\ntype State = NavigationState | PartialState | undefined;\n\nconst serializableWarnings: string[] = [];\nconst duplicateNameWarnings: string[] = [];\n\n/**\n * Remove `key` and `routeNames` from the state objects recursively to get partial state.\n *\n * @param state Initial state object.\n */\nconst getPartialState = (\n state: InitialState | undefined\n): PartialState | undefined => {\n if (state === undefined) {\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { key, routeNames, ...partialState } = state;\n\n return {\n ...partialState,\n stale: true,\n routes: state.routes.map((route) => {\n if (route.state === undefined) {\n return route as Route & {\n state?: PartialState;\n };\n }\n\n return { ...route, state: getPartialState(route.state) };\n }),\n };\n};\n\n/**\n * Container component which holds the navigation state.\n * This should be rendered at the root wrapping the whole app.\n *\n * @param props.initialState Initial state object for the navigation tree.\n * @param props.onStateChange Callback which is called with the latest navigation state when it changes.\n * @param props.children Child elements to render the content.\n * @param props.ref Ref object which refers to the navigation object containing helper methods.\n */\nconst BaseNavigationContainer = React.forwardRef(\n function BaseNavigationContainer(\n {\n initialState,\n onStateChange,\n onUnhandledAction,\n independent,\n children,\n }: NavigationContainerProps,\n ref?: React.Ref>\n ) {\n const parent = React.useContext(NavigationStateContext);\n\n if (!parent.isDefault && !independent) {\n throw new Error(\n \"Looks like you have nested a 'NavigationContainer' inside another. Normally you need only one container at the root of the app, so this was probably an error. If this was intentional, pass 'independent={true}' explicitly. Note that this will make the child navigators disconnected from the parent and you won't be able to navigate between them.\"\n );\n }\n\n const [state, getState, setState, scheduleUpdate, flushUpdates] =\n useSyncState(() =>\n getPartialState(initialState == null ? undefined : initialState)\n );\n\n const isFirstMountRef = React.useRef(true);\n\n const navigatorKeyRef = React.useRef();\n\n const getKey = React.useCallback(() => navigatorKeyRef.current, []);\n\n const setKey = React.useCallback((key: string) => {\n navigatorKeyRef.current = key;\n }, []);\n\n const { listeners, addListener } = useChildListeners();\n\n const { keyedListeners, addKeyedListener } = useKeyedChildListeners();\n\n const dispatch = React.useCallback(\n (\n action:\n | NavigationAction\n | ((state: NavigationState) => NavigationAction)\n ) => {\n if (listeners.focus[0] == null) {\n console.error(NOT_INITIALIZED_ERROR);\n } else {\n listeners.focus[0]((navigation) => navigation.dispatch(action));\n }\n },\n [listeners.focus]\n );\n\n const canGoBack = React.useCallback(() => {\n if (listeners.focus[0] == null) {\n return false;\n }\n\n const { result, handled } = listeners.focus[0]((navigation) =>\n navigation.canGoBack()\n );\n\n if (handled) {\n return result;\n } else {\n return false;\n }\n }, [listeners.focus]);\n\n const resetRoot = React.useCallback(\n (state?: PartialState | NavigationState) => {\n const target = state?.key ?? keyedListeners.getState.root?.().key;\n\n if (target == null) {\n console.error(NOT_INITIALIZED_ERROR);\n } else {\n listeners.focus[0]((navigation) =>\n navigation.dispatch({\n ...CommonActions.reset(state),\n target,\n })\n );\n }\n },\n [keyedListeners.getState, listeners.focus]\n );\n\n const getRootState = React.useCallback(() => {\n return keyedListeners.getState.root?.();\n }, [keyedListeners.getState]);\n\n const getCurrentRoute = React.useCallback(() => {\n const state = getRootState();\n\n if (state == null) {\n return undefined;\n }\n\n const route = findFocusedRoute(state);\n\n return route as Route | undefined;\n }, [getRootState]);\n\n const emitter = useEventEmitter();\n\n const { addOptionsGetter, getCurrentOptions } = useOptionsGetters({});\n\n const navigation: NavigationContainerRef = React.useMemo(\n () => ({\n ...Object.keys(CommonActions).reduce((acc, name) => {\n acc[name] = (...args: any[]) =>\n // @ts-expect-error: this is ok\n dispatch(CommonActions[name](...args));\n return acc;\n }, {}),\n ...emitter.create('root'),\n dispatch,\n resetRoot,\n isFocused: () => true,\n canGoBack,\n getParent: () => undefined,\n getState: () => stateRef.current,\n getRootState,\n getCurrentRoute,\n getCurrentOptions,\n isReady: () => listeners.focus[0] != null,\n setOptions: () => {\n throw new Error('Cannot call setOptions outside a screen');\n },\n }),\n [\n canGoBack,\n dispatch,\n emitter,\n getCurrentOptions,\n getCurrentRoute,\n getRootState,\n listeners.focus,\n resetRoot,\n ]\n );\n\n React.useImperativeHandle(ref, () => navigation, [navigation]);\n\n const onDispatchAction = React.useCallback(\n (action: NavigationAction, noop: boolean) => {\n emitter.emit({\n type: '__unsafe_action__',\n data: { action, noop, stack: stackRef.current },\n });\n },\n [emitter]\n );\n\n const lastEmittedOptionsRef = React.useRef();\n\n const onOptionsChange = React.useCallback(\n (options: object) => {\n if (lastEmittedOptionsRef.current === options) {\n return;\n }\n\n lastEmittedOptionsRef.current = options;\n\n emitter.emit({\n type: 'options',\n data: { options },\n });\n },\n [emitter]\n );\n\n const stackRef = React.useRef();\n\n const builderContext = React.useMemo(\n () => ({\n addListener,\n addKeyedListener,\n onDispatchAction,\n onOptionsChange,\n stackRef,\n }),\n [addListener, addKeyedListener, onDispatchAction, onOptionsChange]\n );\n\n const scheduleContext = React.useMemo(\n () => ({ scheduleUpdate, flushUpdates }),\n [scheduleUpdate, flushUpdates]\n );\n\n const isInitialRef = React.useRef(true);\n\n const getIsInitial = React.useCallback(() => isInitialRef.current, []);\n\n const context = React.useMemo(\n () => ({\n state,\n getState,\n setState,\n getKey,\n setKey,\n getIsInitial,\n addOptionsGetter,\n }),\n [\n state,\n getState,\n setState,\n getKey,\n setKey,\n getIsInitial,\n addOptionsGetter,\n ]\n );\n\n const onStateChangeRef = React.useRef(onStateChange);\n const stateRef = React.useRef(state);\n\n React.useEffect(() => {\n isInitialRef.current = false;\n onStateChangeRef.current = onStateChange;\n stateRef.current = state;\n });\n\n React.useEffect(() => {\n const hydratedState = getRootState();\n\n if (process.env.NODE_ENV !== 'production') {\n if (hydratedState !== undefined) {\n const serializableResult = checkSerializable(hydratedState);\n\n if (!serializableResult.serializable) {\n const { location, reason } = serializableResult;\n\n let path = '';\n let pointer: Record = hydratedState;\n let params = false;\n\n for (let i = 0; i < location.length; i++) {\n const curr = location[i];\n const prev = location[i - 1];\n\n pointer = pointer[curr];\n\n if (!params && curr === 'state') {\n continue;\n } else if (!params && curr === 'routes') {\n if (path) {\n path += ' > ';\n }\n } else if (\n !params &&\n typeof curr === 'number' &&\n prev === 'routes'\n ) {\n path += pointer?.name;\n } else if (!params) {\n path += ` > ${curr}`;\n params = true;\n } else {\n if (typeof curr === 'number' || /^[0-9]+$/.test(curr)) {\n path += `[${curr}]`;\n } else if (/^[a-z$_]+$/i.test(curr)) {\n path += `.${curr}`;\n } else {\n path += `[${JSON.stringify(curr)}]`;\n }\n }\n }\n\n const message = `Non-serializable values were found in the navigation state. Check:\\n\\n${path} (${reason})\\n\\nThis can break usage such as persisting and restoring state. This might happen if you passed non-serializable values such as function, class instances etc. in params. If you need to use components with callbacks in your options, you can use 'navigation.setOptions' instead. See https://reactnavigation.org/docs/troubleshooting#i-get-the-warning-non-serializable-values-were-found-in-the-navigation-state for more details.`;\n\n if (!serializableWarnings.includes(message)) {\n serializableWarnings.push(message);\n console.warn(message);\n }\n }\n\n const duplicateRouteNamesResult =\n checkDuplicateRouteNames(hydratedState);\n\n if (duplicateRouteNamesResult.length) {\n const message = `Found screens with the same name nested inside one another. Check:\\n${duplicateRouteNamesResult.map(\n (locations) => `\\n${locations.join(', ')}`\n )}\\n\\nThis can cause confusing behavior during navigation. Consider using unique names for each screen instead.`;\n\n if (!duplicateNameWarnings.includes(message)) {\n duplicateNameWarnings.push(message);\n console.warn(message);\n }\n }\n }\n }\n\n emitter.emit({ type: 'state', data: { state } });\n\n if (!isFirstMountRef.current && onStateChangeRef.current) {\n onStateChangeRef.current(hydratedState);\n }\n\n isFirstMountRef.current = false;\n }, [getRootState, emitter, state]);\n\n const defaultOnUnhandledAction = React.useCallback(\n (action: NavigationAction) => {\n if (process.env.NODE_ENV === 'production') {\n return;\n }\n\n const payload: Record | undefined = action.payload;\n\n let message = `The action '${action.type}'${\n payload ? ` with payload ${JSON.stringify(action.payload)}` : ''\n } was not handled by any navigator.`;\n\n switch (action.type) {\n case 'NAVIGATE':\n case 'PUSH':\n case 'REPLACE':\n case 'JUMP_TO':\n if (payload?.name) {\n message += `\\n\\nDo you have a screen named '${payload.name}'?\\n\\nIf you're trying to navigate to a screen in a nested navigator, see https://reactnavigation.org/docs/nesting-navigators#navigating-to-a-screen-in-a-nested-navigator.`;\n } else {\n message += `\\n\\nYou need to pass the name of the screen to navigate to.\\n\\nSee https://reactnavigation.org/docs/navigation-actions for usage.`;\n }\n\n break;\n case 'GO_BACK':\n case 'POP':\n case 'POP_TO_TOP':\n message += `\\n\\nIs there any screen to go back to?`;\n break;\n case 'OPEN_DRAWER':\n case 'CLOSE_DRAWER':\n case 'TOGGLE_DRAWER':\n message += `\\n\\nIs your screen inside a Drawer navigator?`;\n break;\n }\n\n message += `\\n\\nThis is a development-only warning and won't be shown in production.`;\n\n console.error(message);\n },\n []\n );\n\n let element = (\n \n \n \n \n \n {children}\n \n \n \n \n \n );\n\n if (independent) {\n // We need to clear any existing contexts for nested independent container to work correctly\n element = (\n \n \n {element}\n \n \n );\n }\n\n return element;\n }\n);\n\nexport default BaseNavigationContainer;\n","import type { ParamListBase } from '@react-navigation/routers';\n\nimport type { RouteGroupConfig } from './types';\n\n/**\n * Empty component used for grouping screen configs.\n */\nexport default function Group<\n ParamList extends ParamListBase,\n ScreenOptions extends {}\n>(_: RouteGroupConfig) {\n /* istanbul ignore next */\n return null;\n}\n","import type { NavigationState, ParamListBase } from '@react-navigation/routers';\n\nimport type { EventMapBase, RouteConfig } from './types';\n\n/**\n * Empty component used for specifying route configuration.\n */\nexport default function Screen<\n ParamList extends ParamListBase,\n RouteName extends keyof ParamList,\n State extends NavigationState,\n ScreenOptions extends {},\n EventMap extends EventMapBase\n>(_: RouteConfig) {\n /* istanbul ignore next */\n return null;\n}\n","import type { NavigationState, ParamListBase } from '@react-navigation/routers';\nimport type * as React from 'react';\n\nimport Group from './Group';\nimport Screen from './Screen';\nimport type { EventMapBase, TypedNavigator } from './types';\n\n/**\n * Higher order component to create a `Navigator` and `Screen` pair.\n * Custom navigators should wrap the navigator component in `createNavigator` before exporting.\n *\n * @param Navigator The navigtor component to wrap.\n * @returns Factory method to create a `Navigator` and `Screen` pair.\n */\nexport default function createNavigatorFactory<\n State extends NavigationState,\n ScreenOptions extends {},\n EventMap extends EventMapBase,\n NavigatorComponent extends React.ComponentType\n>(Navigator: NavigatorComponent) {\n return function (): TypedNavigator<\n ParamList,\n State,\n ScreenOptions,\n EventMap,\n typeof Navigator\n > {\n if (arguments[0] !== undefined) {\n throw new Error(\n \"Creating a navigator doesn't take an argument. Maybe you are trying to use React Navigation 4 API? See https://reactnavigation.org/docs/hello-react-navigation for the latest API and guides.\"\n );\n }\n\n return {\n Navigator,\n Group,\n Screen,\n };\n };\n}\n","import * as React from 'react';\n\n/**\n * Context which holds the values for the current navigation tree.\n * Intended for use in SSR. This is not safe to use on the client.\n */\nconst CurrentRenderContext = React.createContext<\n { options?: object } | undefined\n>(undefined);\n\nexport default CurrentRenderContext;\n","import type {\n CommonActions,\n NavigationState,\n ParamListBase,\n PartialRoute,\n PartialState,\n Route,\n} from '@react-navigation/routers';\n\nimport type { NavigatorScreenParams, PathConfig, PathConfigMap } from './types';\n\ntype ConfigItem = {\n initialRouteName?: string;\n screens?: Record;\n};\n\ntype Options = {\n initialRouteName?: string;\n screens: PathConfigMap;\n};\n\ntype NavigateAction = {\n type: 'NAVIGATE';\n payload: {\n name: string;\n params?: NavigatorScreenParams;\n path?: string;\n };\n};\n\nexport default function getActionFromState(\n state: PartialState,\n options?: Options\n): NavigateAction | CommonActions.Action | undefined {\n // Create a normalized configs object which will be easier to use\n const normalizedConfig = options\n ? createNormalizedConfigItem(options as PathConfig | string)\n : {};\n\n const routes =\n state.index != null ? state.routes.slice(0, state.index + 1) : state.routes;\n\n if (routes.length === 0) {\n return undefined;\n }\n\n if (\n !(\n (routes.length === 1 && routes[0].key === undefined) ||\n (routes.length === 2 &&\n routes[0].key === undefined &&\n routes[0].name === normalizedConfig?.initialRouteName &&\n routes[1].key === undefined)\n )\n ) {\n return {\n type: 'RESET',\n payload: state,\n };\n }\n\n const route = state.routes[state.index ?? state.routes.length - 1];\n\n let current: PartialState | undefined = route?.state;\n let config: ConfigItem | undefined = normalizedConfig?.screens?.[route?.name];\n let params = { ...route.params } as NavigatorScreenParams<\n ParamListBase,\n NavigationState\n >;\n\n let payload = route\n ? { name: route.name, path: route.path, params }\n : undefined;\n\n while (current) {\n if (current.routes.length === 0) {\n return undefined;\n }\n\n const routes =\n current.index != null\n ? current.routes.slice(0, current.index + 1)\n : current.routes;\n\n const route: Route | PartialRoute> =\n routes[routes.length - 1];\n\n // Explicitly set to override existing value when merging params\n Object.assign(params, {\n initial: undefined,\n screen: undefined,\n params: undefined,\n state: undefined,\n });\n\n if (routes.length === 1 && routes[0].key === undefined) {\n params.initial = true;\n params.screen = route.name;\n } else if (\n routes.length === 2 &&\n routes[0].key === undefined &&\n routes[0].name === config?.initialRouteName &&\n routes[1].key === undefined\n ) {\n params.initial = false;\n params.screen = route.name;\n } else {\n params.state = current;\n break;\n }\n\n if (route.state) {\n params.params = { ...route.params };\n params = params.params as NavigatorScreenParams<\n ParamListBase,\n NavigationState\n >;\n } else {\n params.path = route.path;\n params.params = route.params;\n }\n\n current = route.state;\n config = config?.screens?.[route.name];\n }\n\n if (!payload) {\n return;\n }\n\n // Try to construct payload for a `NAVIGATE` action from the state\n // This lets us preserve the navigation state and not lose it\n return {\n type: 'NAVIGATE',\n payload,\n };\n}\n\nconst createNormalizedConfigItem = (config: PathConfig | string) =>\n typeof config === 'object' && config != null\n ? {\n initialRouteName: config.initialRouteName,\n screens:\n config.screens != null\n ? createNormalizedConfigs(config.screens)\n : undefined,\n }\n : {};\n\nconst createNormalizedConfigs = (options: PathConfigMap) =>\n Object.entries(options).reduce>((acc, [k, v]) => {\n acc[k] = createNormalizedConfigItem(v);\n return acc;\n }, {});\n","import type {\n NavigationState,\n ParamListBase,\n Route,\n} from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport type { RouteProp } from './types';\n\ntype RouteCache = Map, RouteProp>;\n\n/**\n * Utilites such as `getFocusedRouteNameFromRoute` need to access state.\n * So we need a way to suppress the warning for those use cases.\n * This is fine since they are internal utilities and this is not public API.\n */\nexport const CHILD_STATE = Symbol('CHILD_STATE');\n\n/**\n * Hook to cache route props for each screen in the navigator.\n * This lets add warnings and modifications to the route object but keep references between renders.\n */\nexport default function useRouteCache(\n routes: State['routes']\n) {\n // Cache object which holds route objects for each screen\n const cache = React.useMemo(() => ({ current: new Map() as RouteCache }), []);\n\n if (process.env.NODE_ENV === 'production') {\n // We don't want the overhead of creating extra maps every render in prod\n return routes;\n }\n\n cache.current = routes.reduce((acc, route) => {\n const previous = cache.current.get(route);\n\n if (previous) {\n // If a cached route object already exists, reuse it\n acc.set(route, previous);\n } else {\n const { state, ...proxy } = route;\n\n Object.defineProperty(proxy, CHILD_STATE, {\n enumerable: false,\n value: state,\n });\n\n acc.set(route, proxy);\n }\n\n return acc;\n }, new Map() as RouteCache);\n\n return Array.from(cache.current.values());\n}\n","import type { Route } from '@react-navigation/routers';\n\nimport { CHILD_STATE } from './useRouteCache';\n\nexport default function getFocusedRouteNameFromRoute(\n route: Partial>\n): string | undefined {\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 as { screen?: unknown } | undefined;\n\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 ??\n (typeof state.type === 'string' && state.type !== 'stack'\n ? 0\n : state.routes.length - 1)\n ].name\n : // If state doesn't exist, we need to default to `screen` param if available\n typeof params?.screen === 'string'\n ? params.screen\n : undefined;\n\n return routeName;\n}\n","// Object.fromEntries is not available in older iOS versions\nexport default function fromEntries(\n entries: (readonly [K, V])[]\n) {\n return entries.reduce((acc, [k, v]) => {\n if (acc.hasOwnProperty(k)) {\n throw new Error(`A value for key '${k}' already exists in the object.`);\n }\n\n acc[k] = v;\n return acc;\n }, {} as Record);\n}\n","const formatToList = (items: string[]) =>\n items.map((key) => `- ${key}`).join('\\n');\n\nexport default function validatePathConfig(config: any, root = true) {\n const validKeys = ['initialRouteName', 'screens'];\n\n if (!root) {\n validKeys.push('path', 'exact', 'stringify', 'parse');\n }\n\n const invalidKeys = Object.keys(config).filter(\n (key) => !validKeys.includes(key)\n );\n\n if (invalidKeys.length) {\n throw new Error(\n `Found invalid properties in the configuration:\\n${formatToList(\n invalidKeys\n )}\\n\\nDid you forget to specify them under a 'screens' property?\\n\\nYou can only specify the following properties:\\n${formatToList(\n validKeys\n )}\\n\\nSee https://reactnavigation.org/docs/configuring-links for more details on how to specify a linking configuration.`\n );\n }\n\n if (config.screens) {\n Object.entries(config.screens).forEach(([_, value]) => {\n if (typeof value !== 'string') {\n validatePathConfig(value, false);\n }\n });\n }\n}\n","import type {\n NavigationState,\n PartialState,\n Route,\n} from '@react-navigation/routers';\nimport * as queryString from 'query-string';\n\nimport fromEntries from './fromEntries';\nimport type { PathConfig, PathConfigMap } from './types';\nimport validatePathConfig from './validatePathConfig';\n\ntype Options = {\n initialRouteName?: string;\n screens: PathConfigMap;\n};\n\ntype State = NavigationState | Omit, 'stale'>;\n\ntype StringifyConfig = Record string>;\n\ntype ConfigItem = {\n pattern?: string;\n stringify?: StringifyConfig;\n screens?: Record;\n};\n\nconst getActiveRoute = (state: State): { name: string; params?: object } => {\n const route =\n typeof state.index === 'number'\n ? state.routes[state.index]\n : state.routes[state.routes.length - 1];\n\n if (route.state) {\n return getActiveRoute(route.state);\n }\n\n return route;\n};\n\n/**\n * Utility to serialize a navigation state object to a path string.\n *\n * @example\n * ```js\n * getPathFromState(\n * {\n * routes: [\n * {\n * name: 'Chat',\n * params: { author: 'Jane', id: 42 },\n * },\n * ],\n * },\n * {\n * screens: {\n * Chat: {\n * path: 'chat/:author/:id',\n * stringify: { author: author => author.toLowerCase() }\n * }\n * }\n * }\n * )\n * ```\n *\n * @param state Navigation state to serialize.\n * @param options Extra options to fine-tune how to serialize the path.\n * @returns Path representing the state, e.g. /foo/bar?count=42.\n */\nexport default function getPathFromState(\n state: State,\n options?: Options\n): string {\n if (state == null) {\n throw Error(\n \"Got 'undefined' for the navigation state. You must pass a valid state object.\"\n );\n }\n\n if (options) {\n validatePathConfig(options);\n }\n\n // Create a normalized configs object which will be easier to use\n const configs: Record = options?.screens\n ? createNormalizedConfigs(options?.screens)\n : {};\n\n let path = '/';\n let current: State | undefined = state;\n\n const allParams: Record = {};\n\n while (current) {\n let index = typeof current.index === 'number' ? current.index : 0;\n let route = current.routes[index] as Route & {\n state?: State;\n };\n\n let pattern: string | undefined;\n\n let focusedParams: Record | undefined;\n let focusedRoute = getActiveRoute(state);\n let currentOptions = configs;\n\n // Keep all the route names that appeared during going deeper in config in case the pattern is resolved to undefined\n let nestedRouteNames = [];\n\n let hasNext = true;\n\n while (route.name in currentOptions && hasNext) {\n pattern = currentOptions[route.name].pattern;\n\n nestedRouteNames.push(route.name);\n\n if (route.params) {\n const stringify = currentOptions[route.name]?.stringify;\n\n const currentParams = fromEntries(\n Object.entries(route.params).map(([key, value]) => [\n key,\n stringify?.[key] ? stringify[key](value) : String(value),\n ])\n );\n\n if (pattern) {\n Object.assign(allParams, currentParams);\n }\n\n if (focusedRoute === route) {\n // If this is the focused route, keep the params for later use\n // We save it here since it's been stringified already\n focusedParams = { ...currentParams };\n\n pattern\n ?.split('/')\n .filter((p) => p.startsWith(':'))\n // eslint-disable-next-line no-loop-func\n .forEach((p) => {\n const name = getParamName(p);\n\n // Remove the params present in the pattern since we'll only use the rest for query string\n if (focusedParams) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete focusedParams[name];\n }\n });\n }\n }\n\n // If there is no `screens` property or no nested state, we return pattern\n if (!currentOptions[route.name].screens || route.state === undefined) {\n hasNext = false;\n } else {\n index =\n typeof route.state.index === 'number'\n ? route.state.index\n : route.state.routes.length - 1;\n\n const nextRoute = route.state.routes[index];\n const nestedConfig = currentOptions[route.name].screens;\n\n // if there is config for next route name, we go deeper\n if (nestedConfig && nextRoute.name in nestedConfig) {\n route = nextRoute as Route & { state?: State };\n currentOptions = nestedConfig;\n } else {\n // If not, there is no sense in going deeper in config\n hasNext = false;\n }\n }\n }\n\n if (pattern === undefined) {\n pattern = nestedRouteNames.join('/');\n }\n\n if (currentOptions[route.name] !== undefined) {\n path += pattern\n .split('/')\n .map((p) => {\n const name = getParamName(p);\n\n // We don't know what to show for wildcard patterns\n // Showing the route name seems ok, though whatever we show here will be incorrect\n // Since the page doesn't actually exist\n if (p === '*') {\n return route.name;\n }\n\n // If the path has a pattern for a param, put the param in the path\n if (p.startsWith(':')) {\n const value = allParams[name];\n\n if (value === undefined && p.endsWith('?')) {\n // Optional params without value assigned in route.params should be ignored\n return '';\n }\n\n return encodeURIComponent(value);\n }\n\n return encodeURIComponent(p);\n })\n .join('/');\n } else {\n path += encodeURIComponent(route.name);\n }\n\n if (!focusedParams) {\n focusedParams = focusedRoute.params;\n }\n\n if (route.state) {\n path += '/';\n } else if (focusedParams) {\n for (let param in focusedParams) {\n if (focusedParams[param] === 'undefined') {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete focusedParams[param];\n }\n }\n\n const query = queryString.stringify(focusedParams, { sort: false });\n\n if (query) {\n path += `?${query}`;\n }\n }\n\n current = route.state;\n }\n\n // Remove multiple as well as trailing slashes\n path = path.replace(/\\/+/g, '/');\n path = path.length > 1 ? path.replace(/\\/$/, '') : path;\n\n return path;\n}\n\nconst getParamName = (pattern: string) =>\n pattern.replace(/^:/, '').replace(/\\?$/, '');\n\nconst joinPaths = (...paths: string[]): string =>\n ([] as string[])\n .concat(...paths.map((p) => p.split('/')))\n .filter(Boolean)\n .join('/');\n\nconst createConfigItem = (\n config: PathConfig | string,\n parentPattern?: string\n): ConfigItem => {\n if (typeof config === 'string') {\n // If a string is specified as the value of the key(e.g. Foo: '/path'), use it as the pattern\n const pattern = parentPattern ? joinPaths(parentPattern, config) : config;\n\n return { pattern };\n }\n\n // If an object is specified as the value (e.g. Foo: { ... }),\n // It can have `path` property and `screens` prop which has nested configs\n let pattern: string | undefined;\n\n if (config.exact && config.path === undefined) {\n throw new Error(\n \"A 'path' needs to be specified when specifying 'exact: true'. If you don't want this screen in the URL, specify it as empty string, e.g. `path: ''`.\"\n );\n }\n\n pattern =\n config.exact !== true\n ? joinPaths(parentPattern || '', config.path || '')\n : config.path || '';\n\n const screens = config.screens\n ? createNormalizedConfigs(config.screens, pattern)\n : undefined;\n\n return {\n // Normalize pattern to remove any leading, trailing slashes, duplicate slashes etc.\n pattern: pattern?.split('/').filter(Boolean).join('/'),\n stringify: config.stringify,\n screens,\n };\n};\n\nconst createNormalizedConfigs = (\n options: PathConfigMap,\n pattern?: string\n): Record =>\n fromEntries(\n Object.entries(options).map(([name, c]) => {\n const result = createConfigItem(c, pattern);\n\n return [name, result];\n })\n );\n","import type {\n InitialState,\n NavigationState,\n PartialState,\n} from '@react-navigation/routers';\nimport escape from 'escape-string-regexp';\nimport * as queryString from 'query-string';\n\nimport findFocusedRoute from './findFocusedRoute';\nimport type { PathConfigMap } from './types';\nimport validatePathConfig from './validatePathConfig';\n\ntype Options = {\n initialRouteName?: string;\n screens: PathConfigMap;\n};\n\ntype ParseConfig = Record any>;\n\ntype RouteConfig = {\n screen: string;\n regex?: RegExp;\n path: string;\n pattern: string;\n routeNames: string[];\n parse?: ParseConfig;\n};\n\ntype InitialRouteConfig = {\n initialRouteName: string;\n parentScreens: string[];\n};\n\ntype ResultState = PartialState & {\n state?: ResultState;\n};\n\ntype ParsedRoute = {\n name: string;\n path?: string;\n params?: Record | undefined;\n};\n\n/**\n * Utility to parse a path string to initial state object accepted by the container.\n * This is useful for deep linking when we need to handle the incoming URL.\n *\n * @example\n * ```js\n * getStateFromPath(\n * '/chat/jane/42',\n * {\n * screens: {\n * Chat: {\n * path: 'chat/:author/:id',\n * parse: { id: Number }\n * }\n * }\n * }\n * )\n * ```\n * @param path Path string to parse and convert, e.g. /foo/bar?count=42.\n * @param options Extra options to fine-tune how to parse the path.\n */\nexport default function getStateFromPath(\n path: string,\n options?: Options\n): ResultState | undefined {\n if (options) {\n validatePathConfig(options);\n }\n\n let initialRoutes: InitialRouteConfig[] = [];\n\n if (options?.initialRouteName) {\n initialRoutes.push({\n initialRouteName: options.initialRouteName,\n parentScreens: [],\n });\n }\n\n const screens = options?.screens;\n\n let remaining = path\n .replace(/\\/+/g, '/') // Replace multiple slash (//) with single ones\n .replace(/^\\//, '') // Remove extra leading slash\n .replace(/\\?.*$/, ''); // Remove query params which we will handle later\n\n // Make sure there is a trailing slash\n remaining = remaining.endsWith('/') ? remaining : `${remaining}/`;\n\n if (screens === undefined) {\n // When no config is specified, use the path segments as route names\n const routes = remaining\n .split('/')\n .filter(Boolean)\n .map((segment) => {\n const name = decodeURIComponent(segment);\n return { name };\n });\n\n if (routes.length) {\n return createNestedStateObject(path, routes, initialRoutes);\n }\n\n return undefined;\n }\n\n // Create a normalized configs array which will be easier to use\n const configs = ([] as RouteConfig[])\n .concat(\n ...Object.keys(screens).map((key) =>\n createNormalizedConfigs(\n key,\n screens as PathConfigMap,\n [],\n initialRoutes,\n []\n )\n )\n )\n .sort((a, b) => {\n // Sort config so that:\n // - the most exhaustive ones are always at the beginning\n // - patterns with wildcard are always at the end\n\n // If 2 patterns are same, move the one with less route names up\n // This is an error state, so it's only useful for consistent error messages\n if (a.pattern === b.pattern) {\n return b.routeNames.join('>').localeCompare(a.routeNames.join('>'));\n }\n\n // If one of the patterns starts with the other, it's more exhaustive\n // So move it up\n if (a.pattern.startsWith(b.pattern)) {\n return -1;\n }\n\n if (b.pattern.startsWith(a.pattern)) {\n return 1;\n }\n\n const aParts = a.pattern.split('/');\n const bParts = b.pattern.split('/');\n\n for (let i = 0; i < Math.max(aParts.length, bParts.length); i++) {\n // if b is longer, b get higher priority\n if (aParts[i] == null) {\n return 1;\n }\n // if a is longer, a get higher priority\n if (bParts[i] == null) {\n return -1;\n }\n const aWildCard = aParts[i] === '*' || aParts[i].startsWith(':');\n const bWildCard = bParts[i] === '*' || bParts[i].startsWith(':');\n // if both are wildcard we compare next component\n if (aWildCard && bWildCard) {\n continue;\n }\n // if only a is wild card, b get higher priority\n if (aWildCard) {\n return 1;\n }\n // if only b is wild card, a get higher priority\n if (bWildCard) {\n return -1;\n }\n }\n return bParts.length - aParts.length;\n });\n\n // Check for duplicate patterns in the config\n configs.reduce>((acc, config) => {\n if (acc[config.pattern]) {\n const a = acc[config.pattern].routeNames;\n const b = config.routeNames;\n\n // It's not a problem if the path string omitted from a inner most screen\n // For example, it's ok if a path resolves to `A > B > C` or `A > B`\n const intersects =\n a.length > b.length\n ? b.every((it, i) => a[i] === it)\n : a.every((it, i) => b[i] === it);\n\n if (!intersects) {\n throw new Error(\n `Found conflicting screens with the same pattern. The pattern '${\n config.pattern\n }' resolves to both '${a.join(' > ')}' and '${b.join(\n ' > '\n )}'. Patterns must be unique and cannot resolve to more than one screen.`\n );\n }\n }\n\n return Object.assign(acc, {\n [config.pattern]: config,\n });\n }, {});\n\n if (remaining === '/') {\n // We need to add special handling of empty path so navigation to empty path also works\n // When handling empty path, we should only look at the root level config\n const match = configs.find(\n (config) =>\n config.path === '' &&\n config.routeNames.every(\n // Make sure that none of the parent configs have a non-empty path defined\n (name) => !configs.find((c) => c.screen === name)?.path\n )\n );\n\n if (match) {\n return createNestedStateObject(\n path,\n match.routeNames.map((name) => ({ name })),\n initialRoutes,\n configs\n );\n }\n\n return undefined;\n }\n\n let result: PartialState | undefined;\n let current: PartialState | undefined;\n\n // We match the whole path against the regex instead of segments\n // This makes sure matches such as wildcard will catch any unmatched routes, even if nested\n const { routes, remainingPath } = matchAgainstConfigs(\n remaining,\n configs.map((c) => ({\n ...c,\n // Add `$` to the regex to make sure it matches till end of the path and not just beginning\n regex: c.regex ? new RegExp(c.regex.source + '$') : undefined,\n }))\n );\n\n if (routes !== undefined) {\n // This will always be empty if full path matched\n current = createNestedStateObject(path, routes, initialRoutes, configs);\n remaining = remainingPath;\n result = current;\n }\n\n if (current == null || result == null) {\n return undefined;\n }\n\n return result;\n}\n\nconst joinPaths = (...paths: string[]): string =>\n ([] as string[])\n .concat(...paths.map((p) => p.split('/')))\n .filter(Boolean)\n .join('/');\n\nconst matchAgainstConfigs = (remaining: string, configs: RouteConfig[]) => {\n let routes: ParsedRoute[] | undefined;\n let remainingPath = remaining;\n\n // Go through all configs, and see if the next path segment matches our regex\n for (const config of configs) {\n if (!config.regex) {\n continue;\n }\n\n const match = remainingPath.match(config.regex);\n\n // If our regex matches, we need to extract params from the path\n if (match) {\n const matchResult = config.pattern?.split('/').reduce<{\n pos: number; // Position of the current path param segment in the path (e.g in pattern `a/:b/:c`, `:a` is 0 and `:b` is 1)\n matchedParams: Record>; // The extracted params\n }>(\n (acc, p, index) => {\n if (!p.startsWith(':')) {\n return acc;\n }\n\n // Path parameter so increment position for the segment\n acc.pos += 1;\n\n const decodedParamSegment = decodeURIComponent(\n // The param segments appear every second item starting from 2 in the regex match result\n match![(acc.pos + 1) * 2]\n // Remove trailing slash\n .replace(/\\/$/, '')\n );\n\n Object.assign(acc.matchedParams, {\n [p]: Object.assign(acc.matchedParams[p] || {}, {\n [index]: decodedParamSegment,\n }),\n });\n\n return acc;\n },\n { pos: -1, matchedParams: {} }\n );\n\n const matchedParams = matchResult.matchedParams || {};\n\n routes = config.routeNames.map((name) => {\n const routeConfig = configs.find((c) => {\n // Check matching name AND pattern in case same screen is used at different levels in config\n return c.screen === name && config.pattern.startsWith(c.pattern);\n });\n\n // Normalize pattern to remove any leading, trailing slashes, duplicate slashes etc.\n const normalizedPath = routeConfig?.path\n .split('/')\n .filter(Boolean)\n .join('/');\n\n // Get the number of segments in the initial pattern\n const numInitialSegments = routeConfig?.pattern\n // Extract the prefix from the pattern by removing the ending path pattern (e.g pattern=`a/b/c/d` and normalizedPath=`c/d` becomes `a/b`)\n .replace(new RegExp(`${escape(normalizedPath!)}$`), '')\n ?.split('/').length;\n\n const params = normalizedPath\n ?.split('/')\n .reduce>((acc, p, index) => {\n if (!p.startsWith(':')) {\n return acc;\n }\n\n // Get the real index of the path parameter in the matched path\n // by offsetting by the number of segments in the initial pattern\n const offset = numInitialSegments ? numInitialSegments - 1 : 0;\n const value = matchedParams[p]?.[index + offset];\n\n if (value) {\n const key = p.replace(/^:/, '').replace(/\\?$/, '');\n acc[key] = routeConfig?.parse?.[key]\n ? routeConfig.parse[key](value)\n : value;\n }\n\n return acc;\n }, {});\n\n if (params && Object.keys(params).length) {\n return { name, params };\n }\n\n return { name };\n });\n\n remainingPath = remainingPath.replace(match[1], '');\n\n break;\n }\n }\n\n return { routes, remainingPath };\n};\n\nconst createNormalizedConfigs = (\n screen: string,\n routeConfig: PathConfigMap,\n routeNames: string[] = [],\n initials: InitialRouteConfig[],\n parentScreens: string[],\n parentPattern?: string\n): RouteConfig[] => {\n const configs: RouteConfig[] = [];\n\n routeNames.push(screen);\n\n parentScreens.push(screen);\n\n // @ts-expect-error: we can't strongly typecheck this for now\n const config = routeConfig[screen];\n\n if (typeof config === 'string') {\n // If a string is specified as the value of the key(e.g. Foo: '/path'), use it as the pattern\n const pattern = parentPattern ? joinPaths(parentPattern, config) : config;\n\n configs.push(createConfigItem(screen, routeNames, pattern, config));\n } else if (typeof config === 'object') {\n let pattern: string | undefined;\n\n // if an object is specified as the value (e.g. Foo: { ... }),\n // it can have `path` property and\n // it could have `screens` prop which has nested configs\n if (typeof config.path === 'string') {\n if (config.exact && config.path === undefined) {\n throw new Error(\n \"A 'path' needs to be specified when specifying 'exact: true'. If you don't want this screen in the URL, specify it as empty string, e.g. `path: ''`.\"\n );\n }\n\n pattern =\n config.exact !== true\n ? joinPaths(parentPattern || '', config.path || '')\n : config.path || '';\n\n configs.push(\n createConfigItem(\n screen,\n routeNames,\n pattern!,\n config.path,\n config.parse\n )\n );\n }\n\n if (config.screens) {\n // property `initialRouteName` without `screens` has no purpose\n if (config.initialRouteName) {\n initials.push({\n initialRouteName: config.initialRouteName,\n parentScreens,\n });\n }\n\n Object.keys(config.screens).forEach((nestedConfig) => {\n const result = createNormalizedConfigs(\n nestedConfig,\n config.screens as PathConfigMap,\n routeNames,\n initials,\n [...parentScreens],\n pattern ?? parentPattern\n );\n\n configs.push(...result);\n });\n }\n }\n\n routeNames.pop();\n\n return configs;\n};\n\nconst createConfigItem = (\n screen: string,\n routeNames: string[],\n pattern: string,\n path: string,\n parse?: ParseConfig\n): RouteConfig => {\n // Normalize pattern to remove any leading, trailing slashes, duplicate slashes etc.\n pattern = pattern.split('/').filter(Boolean).join('/');\n\n const regex = pattern\n ? new RegExp(\n `^(${pattern\n .split('/')\n .map((it) => {\n if (it.startsWith(':')) {\n return `(([^/]+\\\\/)${it.endsWith('?') ? '?' : ''})`;\n }\n\n return `${it === '*' ? '.*' : escape(it)}\\\\/`;\n })\n .join('')})`\n )\n : undefined;\n\n return {\n screen,\n regex,\n pattern,\n path,\n // The routeNames array is mutated, so copy it to keep the current state\n routeNames: [...routeNames],\n parse,\n };\n};\n\nconst findParseConfigForRoute = (\n routeName: string,\n flatConfig: RouteConfig[]\n): ParseConfig | undefined => {\n for (const config of flatConfig) {\n if (routeName === config.routeNames[config.routeNames.length - 1]) {\n return config.parse;\n }\n }\n\n return undefined;\n};\n\n// Try to find an initial route connected with the one passed\nconst findInitialRoute = (\n routeName: string,\n parentScreens: string[],\n initialRoutes: InitialRouteConfig[]\n): string | undefined => {\n for (const config of initialRoutes) {\n if (parentScreens.length === config.parentScreens.length) {\n let sameParents = true;\n for (let i = 0; i < parentScreens.length; i++) {\n if (parentScreens[i].localeCompare(config.parentScreens[i]) !== 0) {\n sameParents = false;\n break;\n }\n }\n if (sameParents) {\n return routeName !== config.initialRouteName\n ? config.initialRouteName\n : undefined;\n }\n }\n }\n return undefined;\n};\n\n// returns state object with values depending on whether\n// it is the end of state and if there is initialRoute for this level\nconst createStateObject = (\n initialRoute: string | undefined,\n route: ParsedRoute,\n isEmpty: boolean\n): InitialState => {\n if (isEmpty) {\n if (initialRoute) {\n return {\n index: 1,\n routes: [{ name: initialRoute }, route],\n };\n } else {\n return {\n routes: [route],\n };\n }\n } else {\n if (initialRoute) {\n return {\n index: 1,\n routes: [{ name: initialRoute }, { ...route, state: { routes: [] } }],\n };\n } else {\n return {\n routes: [{ ...route, state: { routes: [] } }],\n };\n }\n }\n};\n\nconst createNestedStateObject = (\n path: string,\n routes: ParsedRoute[],\n initialRoutes: InitialRouteConfig[],\n flatConfig?: RouteConfig[]\n) => {\n let state: InitialState;\n let route = routes.shift() as ParsedRoute;\n const parentScreens: string[] = [];\n\n let initialRoute = findInitialRoute(route.name, parentScreens, initialRoutes);\n\n parentScreens.push(route.name);\n\n state = createStateObject(initialRoute, route, routes.length === 0);\n\n if (routes.length > 0) {\n let nestedState = state;\n\n while ((route = routes.shift() as ParsedRoute)) {\n initialRoute = findInitialRoute(route.name, parentScreens, initialRoutes);\n\n const nestedStateIndex =\n nestedState.index || nestedState.routes.length - 1;\n\n nestedState.routes[nestedStateIndex].state = createStateObject(\n initialRoute,\n route,\n routes.length === 0\n );\n\n if (routes.length > 0) {\n nestedState = nestedState.routes[nestedStateIndex]\n .state as InitialState;\n }\n\n parentScreens.push(route.name);\n }\n }\n\n route = findFocusedRoute(state) as ParsedRoute;\n route.path = path;\n\n const params = parseQueryParams(\n path,\n flatConfig ? findParseConfigForRoute(route.name, flatConfig) : undefined\n );\n\n if (params) {\n route.params = { ...route.params, ...params };\n }\n\n return state;\n};\n\nconst parseQueryParams = (\n path: string,\n parseConfig?: Record any>\n) => {\n const query = path.split('?')[1];\n const params = queryString.parse(query);\n\n if (parseConfig) {\n Object.keys(params).forEach((name) => {\n if (\n Object.hasOwnProperty.call(parseConfig, name) &&\n typeof params[name] === 'string'\n ) {\n params[name] = parseConfig[name](params[name] as string);\n }\n });\n }\n\n return Object.keys(params).length ? params : undefined;\n};\n","import type { ParamListBase } from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport type { NavigationHelpers } from './types';\n\n/**\n * Context which holds the navigation helpers of the parent navigator.\n * Navigators should use this context in their view component.\n */\nconst NavigationHelpersContext = React.createContext<\n NavigationHelpers | undefined\n>(undefined);\n\nexport default NavigationHelpersContext;\n","import * 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 */\nexport type PreventedRoutes = Record;\n\nconst PreventRemoveContext = React.createContext<\n | {\n preventedRoutes: PreventedRoutes;\n setPreventRemove: (\n id: string,\n routeKey: string,\n preventRemove: boolean\n ) => void;\n }\n | undefined\n>(undefined);\n\nexport default PreventRemoveContext;\n","import { nanoid } from 'nanoid/non-secure';\nimport * as React from 'react';\nimport useLatestCallback from 'use-latest-callback';\n\nimport NavigationHelpersContext from './NavigationHelpersContext';\nimport NavigationRouteContext from './NavigationRouteContext';\nimport PreventRemoveContext, { PreventedRoutes } from './PreventRemoveContext';\n\ntype Props = {\n children: React.ReactNode;\n};\n\ntype PreventedRoutesMap = Map<\n string,\n {\n routeKey: string;\n preventRemove: boolean;\n }\n>;\n\n/**\n * Util function to transform map of prevented routes to a simpler object.\n */\nconst transformPreventedRoutes = (\n preventedRoutesMap: PreventedRoutesMap\n): PreventedRoutes => {\n const preventedRoutesToTransform = [...preventedRoutesMap.values()];\n\n const preventedRoutes = preventedRoutesToTransform.reduce(\n (acc, { routeKey, preventRemove }) => {\n acc[routeKey] = {\n preventRemove: acc[routeKey]?.preventRemove || preventRemove,\n };\n return acc;\n },\n {}\n );\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({ children }: Props) {\n const [parentId] = React.useState(() => nanoid());\n const [preventedRoutesMap, setPreventedRoutesMap] =\n React.useState(new Map());\n\n const navigation = React.useContext(NavigationHelpersContext);\n const route = React.useContext(NavigationRouteContext);\n\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?.setPreventRemove;\n\n const setPreventRemove = useLatestCallback(\n (id: string, routeKey: string, preventRemove: boolean): void => {\n if (\n preventRemove &&\n (navigation == null ||\n navigation\n ?.getState()\n .routes.every((route) => route.key !== routeKey))\n ) {\n throw new Error(\n `Couldn't find a route with the key ${routeKey}. Is your component inside NavigationContent?`\n );\n }\n\n setPreventedRoutesMap((prevPrevented) => {\n // values haven't changed - do nothing\n if (\n routeKey === prevPrevented.get(id)?.routeKey &&\n preventRemove === prevPrevented.get(id)?.preventRemove\n ) {\n return prevPrevented;\n }\n\n const nextPrevented = new Map(prevPrevented);\n\n if (preventRemove) {\n nextPrevented.set(id, {\n routeKey,\n preventRemove,\n });\n } else {\n nextPrevented.delete(id);\n }\n\n return nextPrevented;\n });\n }\n );\n\n const isPrevented = [...preventedRoutesMap.values()].some(\n ({ preventRemove }) => preventRemove\n );\n\n React.useEffect(() => {\n if (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\n return;\n }, [parentId, isPrevented, route?.key, setParentPrevented]);\n\n const value = React.useMemo(\n () => ({\n setPreventRemove,\n preventedRoutes: transformPreventedRoutes(preventedRoutesMap),\n }),\n [setPreventRemove, preventedRoutesMap]\n );\n\n return (\n \n {children}\n \n );\n}\n","import type {\n DefaultRouterOptions,\n InitialState,\n NavigationAction,\n NavigationState,\n ParamListBase,\n PartialState,\n Route,\n} from '@react-navigation/routers';\nimport type * as React from 'react';\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace ReactNavigation {\n // eslint-disable-next-line @typescript-eslint/no-empty-interface\n interface RootParamList {}\n }\n}\n\ntype Keyof = Extract;\n\nexport type DefaultNavigatorOptions<\n ParamList extends ParamListBase,\n State extends NavigationState,\n ScreenOptions extends {},\n EventMap extends EventMapBase\n> = DefaultRouterOptions> & {\n /**\n * Optional ID for the navigator. Can be used with `navigation.getParent(id)` to refer to a parent.\n */\n id?: string;\n /**\n * Children React Elements to extract the route configuration from.\n * Only `Screen`, `Group` and `React.Fragment` are supported as children.\n */\n children: React.ReactNode;\n /**\n * Event listeners for all the screens in the navigator.\n */\n screenListeners?:\n | ScreenListeners\n | ((props: {\n route: RouteProp;\n navigation: any;\n }) => ScreenListeners);\n /**\n * Default options for all screens under this navigator.\n */\n screenOptions?:\n | ScreenOptions\n | ((props: {\n route: RouteProp;\n navigation: any;\n }) => ScreenOptions);\n};\n\nexport type EventMapBase = Record<\n string,\n { data?: any; canPreventDefault?: boolean }\n>;\n\nexport type EventMapCore = {\n focus: { data: undefined };\n blur: { data: undefined };\n state: { data: { state: State } };\n beforeRemove: { data: { action: NavigationAction }; canPreventDefault: true };\n};\n\nexport type EventArg<\n EventName extends string,\n CanPreventDefault extends boolean | undefined = false,\n Data = undefined\n> = {\n /**\n * Type of the event (e.g. `focus`, `blur`)\n */\n readonly type: EventName;\n readonly target?: string;\n} & (CanPreventDefault extends true\n ? {\n /**\n * Whether `event.preventDefault()` was called on this event object.\n */\n readonly defaultPrevented: boolean;\n /**\n * Prevent the default action which happens on this event.\n */\n preventDefault(): void;\n }\n : {}) &\n (undefined extends Data\n ? { readonly data?: Readonly }\n : { readonly data: Readonly });\n\nexport type EventListenerCallback<\n EventMap extends EventMapBase,\n EventName extends keyof EventMap\n> = (\n e: EventArg<\n Extract,\n EventMap[EventName]['canPreventDefault'],\n EventMap[EventName]['data']\n >\n) => void;\n\nexport type EventConsumer = {\n /**\n * Subscribe to events from the parent navigator.\n *\n * @param type Type of the event (e.g. `focus`, `blur`)\n * @param callback Callback listener which is executed upon receiving the event.\n */\n addListener>(\n type: EventName,\n callback: EventListenerCallback\n ): () => void;\n removeListener>(\n type: EventName,\n callback: EventListenerCallback\n ): void;\n};\n\nexport type EventEmitter = {\n /**\n * Emit an event to child screens.\n *\n * @param options.type Type of the event (e.g. `focus`, `blur`)\n * @param [options.data] Optional information regarding the event.\n * @param [options.target] Key of the target route which should receive the event.\n * If not specified, all routes receive the event.\n */\n emit>(\n options: {\n type: EventName;\n target?: string;\n } & (EventMap[EventName]['canPreventDefault'] extends true\n ? { canPreventDefault: true }\n : {}) &\n (undefined extends EventMap[EventName]['data']\n ? { data?: EventMap[EventName]['data'] }\n : { data: EventMap[EventName]['data'] })\n ): EventArg<\n EventName,\n EventMap[EventName]['canPreventDefault'],\n EventMap[EventName]['data']\n >;\n};\n\nexport class PrivateValueStore {\n /**\n * UGLY HACK! DO NOT USE THE TYPE!!!\n *\n * TypeScript requires a type to be used to be able to infer it.\n * The type should exist as its own without any operations such as union.\n * So we need to figure out a way to store this type in a property.\n * The problem with a normal property is that it shows up in intelliSense.\n * Adding private keyword works, but the annotation is stripped away in declaration.\n * Turns out if we use an empty string, it doesn't show up in intelliSense.\n */\n protected ''?: T;\n}\n\ntype NavigationHelpersCommon<\n ParamList extends ParamListBase,\n State extends NavigationState = NavigationState\n> = {\n /**\n * Dispatch an action or an update function to the router.\n * The update function will receive the current state,\n *\n * @param action Action object or update function.\n */\n dispatch(\n action: NavigationAction | ((state: State) => NavigationAction)\n ): void;\n\n /**\n * Navigate to a route in current navigation tree.\n *\n * @param name Name of the route to navigate to.\n * @param [params] Params object for the route.\n */\n navigate(\n ...args: // this first condition allows us to iterate over a union type\n // This is to avoid getting a union of all the params from `ParamList[RouteName]`,\n // which will get our types all mixed up if a union RouteName is passed in.\n RouteName extends unknown\n ? // This condition checks if the params are optional,\n // which means it's either undefined or a union with undefined\n undefined extends ParamList[RouteName]\n ?\n | [screen: RouteName] // if the params are optional, we don't have to provide it\n | [screen: RouteName, params: ParamList[RouteName]]\n : [screen: RouteName, params: ParamList[RouteName]]\n : never\n ): void;\n\n /**\n * Navigate to a route in current navigation tree.\n *\n * @param route Object with `key` or `name` for the route to navigate to, and a `params` object.\n */\n navigate(\n options: RouteName extends unknown\n ?\n | { key: string; params?: ParamList[RouteName]; merge?: boolean }\n | {\n name: RouteName;\n key?: string;\n params: ParamList[RouteName];\n merge?: boolean;\n }\n : never\n ): void;\n\n /**\n * Reset the navigation state to the provided state.\n *\n * @param state Navigation state object.\n */\n reset(state: PartialState | State): void;\n\n /**\n * Go back to the previous route in history.\n */\n goBack(): void;\n\n /**\n * Check if the screen is focused. The method returns `true` if focused, `false` otherwise.\n * Note that this method doesn't re-render screen when the focus changes. So don't use it in `render`.\n * To get notified of focus changes, use `addListener('focus', cb)` and `addListener('blur', cb)`.\n * To conditionally render content based on focus state, use the `useIsFocused` hook.\n */\n isFocused(): boolean;\n\n /**\n * Check if dispatching back action will be handled by navigation.\n * Note that this method doesn't re-render screen when the result changes. So don't use it in `render`.\n */\n canGoBack(): boolean;\n\n /**\n * Returns the name of the navigator specified in the `name` prop.\n * If no name is specified, returns `undefined`.\n */\n getId(): string | undefined;\n\n /**\n * Returns the navigation helpers from a parent navigator based on the ID.\n * If an ID is provided, the navigation helper from the parent navigator with matching ID (including current) will be returned.\n * If no ID is provided, the navigation helper from the immediate parent navigator will be returned.\n *\n * @param id Optional ID of a parent navigator.\n */\n getParent | undefined>(id?: string): T;\n\n /**\n * Returns the navigator's state.\n * Note that this method doesn't re-render screen when the result changes. So don't use it in `render`.\n */\n getState(): State;\n} & PrivateValueStore<[ParamList, unknown, unknown]>;\n\nexport type NavigationHelpers<\n ParamList extends ParamListBase,\n EventMap extends EventMapBase = {}\n> = NavigationHelpersCommon &\n EventEmitter & {\n /**\n * Update the param object for the route.\n * The new params will be shallow merged with the old one.\n *\n * @param params Params object for the current route.\n */\n setParams(\n params: Partial\n ): void;\n };\n\nexport type NavigationContainerProps = {\n /**\n * Initial navigation state for the child navigators.\n */\n initialState?: InitialState;\n /**\n * Callback which is called with the latest navigation state when it changes.\n */\n onStateChange?: (state: NavigationState | undefined) => void;\n /**\n * Callback which is called when an action is not handled.\n */\n onUnhandledAction?: (action: NavigationAction) => void;\n /**\n * Whether this navigation container should be independent of parent containers.\n * If this is not set to `true`, this container cannot be nested inside another container.\n * Setting it to `true` disconnects any children navigators from parent container.\n */\n independent?: boolean;\n /**\n * Children elements to render.\n */\n children: React.ReactNode;\n};\n\nexport type NavigationProp<\n ParamList extends {},\n RouteName extends keyof ParamList = Keyof,\n NavigatorID extends string | undefined = undefined,\n State extends NavigationState = NavigationState,\n ScreenOptions extends {} = {},\n EventMap extends EventMapBase = {}\n> = Omit, 'getParent'> & {\n /**\n * Returns the navigation prop from a parent navigator based on the ID.\n * If an ID is provided, the navigation prop from the parent navigator with matching ID (including current) will be returned.\n * If no ID is provided, the navigation prop from the immediate parent navigator will be returned.\n *\n * @param id Optional ID of a parent navigator.\n */\n getParent | undefined>(id?: NavigatorID): T;\n\n /**\n * Update the param object for the route.\n * The new params will be shallow merged with the old one.\n *\n * @param params Params object for the current route.\n */\n setParams(\n params: ParamList[RouteName] extends undefined\n ? undefined\n : Partial\n ): void;\n\n /**\n * Update the options for the route.\n * The options object will be shallow merged with default options object.\n *\n * @param options Options object for the route.\n */\n setOptions(options: Partial): void;\n} & EventConsumer> &\n PrivateValueStore<[ParamList, RouteName, EventMap]>;\n\nexport type RouteProp<\n ParamList extends ParamListBase,\n RouteName extends keyof ParamList = Keyof\n> = Route, ParamList[RouteName]>;\n\nexport type CompositeNavigationProp<\n A extends NavigationProp,\n B extends NavigationHelpersCommon\n> = Omit> &\n NavigationProp<\n /**\n * Param list from both navigation objects needs to be combined\n * For example, we should be able to navigate to screens in both A and B\n */\n (A extends NavigationHelpersCommon ? T : never) &\n (B extends NavigationHelpersCommon ? U : never),\n /**\n * The route name should refer to the route name specified in the first type\n * Ideally it should work for any of them, but it's not possible to infer that way\n */\n A extends NavigationProp ? R : string,\n /**\n * ID from both navigation objects needs to be combined for `getParent`\n */\n | (A extends NavigationProp ? I : never)\n | (B extends NavigationProp ? J : never),\n /**\n * The type of state should refer to the state specified in the first type\n */\n A extends NavigationProp ? S : NavigationState,\n /**\n * Screen options from both navigation objects needs to be combined\n * This allows typechecking `setOptions`\n */\n (A extends NavigationProp ? O : {}) &\n (B extends NavigationProp ? P : {}),\n /**\n * Event consumer config should refer to the config specified in the first type\n * This allows typechecking `addListener`/`removeListener`\n */\n A extends NavigationProp ? E : {}\n >;\n\nexport type CompositeScreenProps<\n A extends {\n navigation: NavigationProp<\n ParamListBase,\n string,\n string | undefined,\n any,\n any,\n any\n >;\n route: RouteProp;\n },\n B extends {\n navigation: NavigationHelpersCommon;\n }\n> = {\n navigation: CompositeNavigationProp;\n route: A['route'];\n};\n\nexport type Descriptor<\n ScreenOptions extends {},\n Navigation extends NavigationProp,\n Route extends RouteProp\n> = {\n /**\n * Render the component associated with this route.\n */\n render(): JSX.Element;\n\n /**\n * Options for the route.\n */\n options: ScreenOptions;\n\n /**\n * Route object for the screen\n */\n route: Route;\n\n /**\n * Navigation object for the screen\n */\n navigation: Navigation;\n};\n\nexport type ScreenListeners<\n State extends NavigationState,\n EventMap extends EventMapBase\n> = Partial<{\n [EventName in keyof (EventMap & EventMapCore)]: EventListenerCallback<\n EventMap & EventMapCore,\n EventName\n >;\n}>;\n\ntype ScreenComponentType<\n ParamList extends ParamListBase,\n RouteName extends keyof ParamList\n> =\n | React.ComponentType<{\n route: RouteProp;\n navigation: any;\n }>\n | React.ComponentType<{}>;\n\nexport type RouteConfigComponent<\n ParamList extends ParamListBase,\n RouteName extends keyof ParamList\n> =\n | {\n /**\n * React component to render for this screen.\n */\n component: ScreenComponentType;\n getComponent?: never;\n children?: never;\n }\n | {\n /**\n * Lazily get a React component to render for this screen.\n */\n getComponent: () => ScreenComponentType;\n component?: never;\n children?: never;\n }\n | {\n /**\n * Render callback to render content of this screen.\n */\n children: (props: {\n route: RouteProp;\n navigation: any;\n }) => React.ReactNode;\n component?: never;\n getComponent?: never;\n };\n\nexport type RouteConfig<\n ParamList extends ParamListBase,\n RouteName extends keyof ParamList,\n State extends NavigationState,\n ScreenOptions extends {},\n EventMap extends EventMapBase\n> = {\n /**\n * Optional key for this screen. This doesn't need to be unique.\n * If the key changes, existing screens with this name will be removed or reset.\n * Useful when we have some common screens and have conditional rendering.\n */\n navigationKey?: string;\n\n /**\n * Route name of this screen.\n */\n name: RouteName;\n\n /**\n * Navigator options for this screen.\n */\n options?:\n | ScreenOptions\n | ((props: {\n route: RouteProp;\n navigation: any;\n }) => ScreenOptions);\n\n /**\n * Event listeners for this screen.\n */\n listeners?:\n | ScreenListeners\n | ((props: {\n route: RouteProp;\n navigation: any;\n }) => ScreenListeners);\n\n /**\n * Function to return an unique ID for this screen.\n * Receives an object with the route params.\n * For a given screen name, there will always be only one screen corresponding to an ID.\n * If `undefined` is returned, it acts same as no `getId` being specified.\n */\n getId?: ({ params }: { params: ParamList[RouteName] }) => string | undefined;\n\n /**\n * Initial params object for the route.\n */\n initialParams?: Partial;\n} & RouteConfigComponent;\n\nexport type RouteGroupConfig<\n ParamList extends ParamListBase,\n ScreenOptions extends {}\n> = {\n /**\n * Optional key for the screens in this group.\n * If the key changes, all existing screens in this group will be removed or reset.\n */\n navigationKey?: string;\n\n /**\n * Navigator options for this screen.\n */\n screenOptions?:\n | ScreenOptions\n | ((props: {\n route: RouteProp;\n navigation: any;\n }) => ScreenOptions);\n /**\n * Children React Elements to extract the route configuration from.\n * Only `Screen`, `Group` and `React.Fragment` are supported as children.\n */\n children: React.ReactNode;\n};\n\nexport type NavigationContainerEventMap = {\n /**\n * Event which fires when the navigation state changes.\n */\n state: {\n data: {\n /**\n * The updated state object after the state change.\n */\n state: NavigationState | PartialState | undefined;\n };\n };\n /**\n * Event which fires when current options changes.\n */\n options: { data: { options: object } };\n /**\n * Event which fires when an action is dispatched.\n * Only intended for debugging purposes, don't use it for app logic.\n * This event will be emitted before state changes have been applied.\n */\n __unsafe_action__: {\n data: {\n /**\n * The action object which was dispatched.\n */\n action: NavigationAction;\n /**\n * Whether the action was a no-op, i.e. resulted any state changes.\n */\n noop: boolean;\n /**\n * Stack trace of the action, this will only be available during development.\n */\n stack: string | undefined;\n };\n };\n};\n\nexport type NavigationContainerRef =\n NavigationHelpers &\n EventConsumer & {\n /**\n * Reset the navigation state of the root navigator to the provided state.\n *\n * @param state Navigation state object.\n */\n resetRoot(state?: PartialState | NavigationState): void;\n /**\n * Get the rehydrated navigation state of the navigation tree.\n */\n getRootState(): NavigationState;\n /**\n * Get the currently focused navigation route.\n */\n getCurrentRoute(): Route | undefined;\n /**\n * Get the currently focused route's options.\n */\n getCurrentOptions(): object | undefined;\n /**\n * Whether the navigation container is ready to handle actions.\n */\n isReady(): boolean;\n /**\n * Stub function for setOptions on navigation object for use with useNavigation.\n */\n setOptions(): never;\n /**\n * Stub function for getParent on navigation object for use with useNavigation.\n */\n getParent(): undefined;\n };\n\nexport type NavigationContainerRefWithCurrent =\n NavigationContainerRef & {\n current: NavigationContainerRef | null;\n };\n\nexport type TypedNavigator<\n ParamList extends ParamListBase,\n State extends NavigationState,\n ScreenOptions extends {},\n EventMap extends EventMapBase,\n Navigator extends React.ComponentType\n> = {\n /**\n * Navigator component which manages the child screens.\n */\n Navigator: React.ComponentType<\n Omit<\n React.ComponentProps,\n keyof DefaultNavigatorOptions\n > &\n DefaultNavigatorOptions\n >;\n /**\n * Component used for grouping multiple route configuration.\n */\n Group: React.ComponentType>;\n /**\n * Component used for specifying route configuration.\n */\n Screen: (\n _: RouteConfig\n ) => null;\n};\n\nexport type NavigatorScreenParams<\n ParamList,\n State extends NavigationState = NavigationState\n> =\n | {\n screen?: never;\n params?: never;\n initial?: never;\n path?: string;\n state: PartialState | State | undefined;\n }\n | {\n [RouteName in keyof ParamList]: undefined extends ParamList[RouteName]\n ? {\n screen: RouteName;\n params?: ParamList[RouteName];\n initial?: boolean;\n path?: string;\n state?: never;\n }\n : {\n screen: RouteName;\n params: ParamList[RouteName];\n initial?: boolean;\n path?: string;\n state?: never;\n };\n }[keyof ParamList];\n\nexport type PathConfig = {\n path?: string;\n exact?: boolean;\n parse?: Record any>;\n stringify?: Record string>;\n screens?: PathConfigMap;\n initialRouteName?: keyof ParamList;\n};\n\nexport type PathConfigMap = {\n [RouteName in keyof ParamList]?: NonNullable<\n ParamList[RouteName]\n > extends NavigatorScreenParams\n ? string | PathConfig\n : string | Omit, 'screens' | 'initialRouteName'>;\n};\n","import type { NavigationState } from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport NavigationContainerRefContext from './NavigationContainerRefContext';\nimport NavigationContext from './NavigationContext';\nimport type { NavigationProp } from './types';\n\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 T = Omit, 'getState'> & {\n getState(): NavigationState | undefined;\n }\n>(): T {\n const root = React.useContext(NavigationContainerRefContext);\n const navigation = React.useContext(NavigationContext);\n\n if (navigation === undefined && root === undefined) {\n throw new Error(\n \"Couldn't find a navigation object. Is your component inside NavigationContainer?\"\n );\n }\n\n // FIXME: Figure out a better way to do this\n return (navigation ?? root) as unknown as T;\n}\n","import * as React from 'react';\n\nimport useNavigation from './useNavigation';\n\ntype EffectCallback = () => undefined | void | (() => void);\n\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: EffectCallback) {\n const navigation = useNavigation();\n\n if (arguments[1] !== undefined) {\n const message =\n \"You passed a second argument to 'useFocusEffect', but it only accepts one argument. \" +\n \"If you want to pass a dependency array, you can use 'React.useCallback':\\n\\n\" +\n 'useFocusEffect(\\n' +\n ' React.useCallback(() => {\\n' +\n ' // Your code here\\n' +\n ' }, [depA, depB])\\n' +\n ');\\n\\n' +\n 'See usage guide: https://reactnavigation.org/docs/use-focus-effect';\n\n console.error(message);\n }\n\n React.useEffect(() => {\n let isFocused = false;\n let cleanup: undefined | void | (() => void);\n\n const callback = () => {\n const destroy = effect();\n\n if (destroy === undefined || typeof destroy === 'function') {\n return destroy;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n let message =\n 'An effect function must not return anything besides a function, which is used for clean-up.';\n\n if (destroy === null) {\n message +=\n \" You returned 'null'. If your effect does not require clean-up, return 'undefined' (or nothing).\";\n } else if (typeof (destroy as any).then === 'function') {\n message +=\n \"\\n\\nIt looks like you wrote 'useFocusEffect(async () => ...)' or returned a Promise. \" +\n 'Instead, write the async function inside your effect ' +\n 'and call it immediately:\\n\\n' +\n 'useFocusEffect(\\n' +\n ' React.useCallback(() => {\\n' +\n ' async function fetchData() {\\n' +\n ' // You can await here\\n' +\n ' const response = await MyAPI.getData(someId);\\n' +\n ' // ...\\n' +\n ' }\\n\\n' +\n ' fetchData();\\n' +\n ' }, [someId])\\n' +\n ');\\n\\n' +\n 'See usage guide: https://reactnavigation.org/docs/use-focus-effect';\n } else {\n message += ` You returned '${JSON.stringify(destroy)}'.`;\n }\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\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\n if (cleanup !== undefined) {\n cleanup();\n }\n\n cleanup = callback();\n isFocused = true;\n });\n\n const unsubscribeBlur = navigation.addListener('blur', () => {\n if (cleanup !== undefined) {\n cleanup();\n }\n\n cleanup = undefined;\n isFocused = false;\n });\n\n return () => {\n if (cleanup !== undefined) {\n cleanup();\n }\n\n unsubscribeFocus();\n unsubscribeBlur();\n };\n }, [effect, navigation]);\n}\n","import * as React from 'react';\nimport { useState } from 'react';\n\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(): boolean {\n const navigation = useNavigation();\n const [isFocused, setIsFocused] = useState(navigation.isFocused);\n\n const valueToReturn = navigation.isFocused();\n\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\n React.useEffect(() => {\n const unsubscribeFocus = navigation.addListener('focus', () =>\n setIsFocused(true)\n );\n\n const unsubscribeBlur = navigation.addListener('blur', () =>\n setIsFocused(false)\n );\n\n return () => {\n unsubscribeFocus();\n unsubscribeBlur();\n };\n }, [navigation]);\n\n React.useDebugValue(valueToReturn);\n\n return valueToReturn;\n}\n","/**\n * Compare two arrays with primitive values as the content.\n * We need to make sure that both values and order match.\n */\nexport default function isArrayEqual(a: any[], b: any[]) {\n if (a === b) {\n return true;\n }\n\n if (a.length !== b.length) {\n return false;\n }\n\n return a.every((it, index) => it === b[index]);\n}\n","import * as React from 'react';\n\ntype Render = (children: React.ReactNode) => JSX.Element;\n\ntype Props = {\n render: Render;\n children: React.ReactNode;\n};\n\nconst NavigationContent = ({ render, children }: Props) => {\n return render(children);\n};\n\nexport default function useComponent(render: 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\n React.useEffect(() => {\n renderRef.current = null;\n });\n\n return React.useRef(({ children }: { children: React.ReactNode }) => {\n const render = renderRef.current;\n\n if (render === null) {\n throw new Error(\n 'The returned component must be rendered in the same render phase as the hook.'\n );\n }\n\n return {children};\n }).current;\n}\n","import * as React from 'react';\n\n/**\n * Component which prevents updates for children if no props changed\n */\nfunction StaticContainer(props: any) {\n return props.children;\n}\n\nexport default React.memo(StaticContainer, (prevProps: any, nextProps: any) => {\n const prevPropKeys = Object.keys(prevProps);\n const nextPropKeys = Object.keys(nextProps);\n\n if (prevPropKeys.length !== nextPropKeys.length) {\n return false;\n }\n\n for (const key of prevPropKeys) {\n if (key === 'children') {\n continue;\n }\n\n if (prevProps[key] !== nextProps[key]) {\n return false;\n }\n }\n\n return true;\n});\n","import type {\n NavigationState,\n ParamListBase,\n PartialState,\n Route,\n} from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport EnsureSingleNavigator from './EnsureSingleNavigator';\nimport NavigationStateContext from './NavigationStateContext';\nimport StaticContainer from './StaticContainer';\nimport type { NavigationProp, RouteConfigComponent } from './types';\nimport useOptionsGetters from './useOptionsGetters';\n\ntype Props = {\n screen: RouteConfigComponent & { name: string };\n navigation: NavigationProp<\n ParamListBase,\n string,\n string | undefined,\n State,\n ScreenOptions\n >;\n route: Route;\n routeState: NavigationState | PartialState | undefined;\n getState: () => State;\n setState: (state: State) => void;\n options: object;\n clearOptions: () => void;\n};\n\n/**\n * Component which takes care of rendering the screen for a route.\n * It provides all required contexts and applies optimizations when applicable.\n */\nexport default function SceneView<\n State extends NavigationState,\n ScreenOptions extends {}\n>({\n screen,\n route,\n navigation,\n routeState,\n getState,\n setState,\n options,\n clearOptions,\n}: Props) {\n const navigatorKeyRef = React.useRef();\n const getKey = React.useCallback(() => navigatorKeyRef.current, []);\n\n const { addOptionsGetter } = useOptionsGetters({\n key: route.key,\n options,\n navigation,\n });\n\n const setKey = React.useCallback((key: string) => {\n navigatorKeyRef.current = key;\n }, []);\n\n const getCurrentState = React.useCallback(() => {\n const state = getState();\n const currentRoute = state.routes.find((r) => r.key === route.key);\n\n return currentRoute ? currentRoute.state : undefined;\n }, [getState, route.key]);\n\n const setCurrentState = React.useCallback(\n (child: NavigationState | PartialState | undefined) => {\n const state = getState();\n\n setState({\n ...state,\n routes: state.routes.map((r) =>\n r.key === route.key ? { ...r, state: child } : r\n ),\n });\n },\n [getState, route.key, setState]\n );\n\n const isInitialRef = React.useRef(true);\n\n React.useEffect(() => {\n isInitialRef.current = false;\n });\n\n // Clear options set by this screen when it is unmounted\n React.useEffect(() => {\n return clearOptions;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const getIsInitial = React.useCallback(() => isInitialRef.current, []);\n\n const context = React.useMemo(\n () => ({\n state: routeState,\n getState: getCurrentState,\n setState: setCurrentState,\n getKey,\n setKey,\n getIsInitial,\n addOptionsGetter,\n }),\n [\n routeState,\n getCurrentState,\n setCurrentState,\n getKey,\n setKey,\n getIsInitial,\n addOptionsGetter,\n ]\n );\n\n const ScreenComponent = screen.getComponent\n ? screen.getComponent()\n : screen.component;\n\n return (\n \n \n \n {ScreenComponent !== undefined ? (\n \n ) : screen.children !== undefined ? (\n screen.children({ navigation, route })\n ) : null}\n \n \n \n );\n}\n","import type {\n NavigationAction,\n NavigationState,\n ParamListBase,\n Router,\n} from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport NavigationBuilderContext, {\n AddKeyedListener,\n AddListener,\n} from './NavigationBuilderContext';\nimport NavigationContext from './NavigationContext';\nimport NavigationRouteContext from './NavigationRouteContext';\nimport SceneView from './SceneView';\nimport type {\n Descriptor,\n EventMapBase,\n NavigationHelpers,\n NavigationProp,\n RouteConfig,\n RouteProp,\n} from './types';\nimport type { NavigationEventEmitter } from './useEventEmitter';\nimport useNavigationCache from './useNavigationCache';\nimport useRouteCache from './useRouteCache';\n\nexport type ScreenConfigWithParent<\n State extends NavigationState,\n ScreenOptions extends {},\n EventMap extends EventMapBase\n> = {\n keys: (string | undefined)[];\n options: (ScreenOptionsOrCallback | undefined)[] | undefined;\n props: RouteConfig;\n};\n\ntype ScreenOptionsOrCallback =\n | ScreenOptions\n | ((props: {\n route: RouteProp;\n navigation: any;\n }) => ScreenOptions);\n\ntype Options<\n State extends NavigationState,\n ScreenOptions extends {},\n EventMap extends EventMapBase\n> = {\n state: State;\n screens: Record<\n string,\n ScreenConfigWithParent\n >;\n navigation: NavigationHelpers;\n screenOptions?: ScreenOptionsOrCallback;\n defaultScreenOptions?:\n | ScreenOptions\n | ((props: {\n route: RouteProp;\n navigation: any;\n options: ScreenOptions;\n }) => ScreenOptions);\n onAction: (action: NavigationAction) => boolean;\n getState: () => State;\n setState: (state: State) => void;\n addListener: AddListener;\n addKeyedListener: AddKeyedListener;\n onRouteFocus: (key: string) => void;\n router: Router;\n emitter: NavigationEventEmitter;\n};\n\n/**\n * Hook to create descriptor objects for the child routes.\n *\n * A descriptor object provides 3 things:\n * - Helper method to render a screen\n * - Options specified by the screen for the navigator\n * - Navigation object intended for the route\n */\nexport default function useDescriptors<\n State extends NavigationState,\n ActionHelpers extends Record void>,\n ScreenOptions extends {},\n EventMap extends EventMapBase\n>({\n state,\n screens,\n navigation,\n screenOptions,\n defaultScreenOptions,\n onAction,\n getState,\n setState,\n addListener,\n addKeyedListener,\n onRouteFocus,\n router,\n emitter,\n}: Options) {\n const [options, setOptions] = React.useState>({});\n const { onDispatchAction, onOptionsChange, stackRef } = React.useContext(\n NavigationBuilderContext\n );\n\n const context = React.useMemo(\n () => ({\n navigation,\n onAction,\n addListener,\n addKeyedListener,\n onRouteFocus,\n onDispatchAction,\n onOptionsChange,\n stackRef,\n }),\n [\n navigation,\n onAction,\n addListener,\n addKeyedListener,\n onRouteFocus,\n onDispatchAction,\n onOptionsChange,\n stackRef,\n ]\n );\n\n const navigations = useNavigationCache({\n state,\n getState,\n navigation,\n setOptions,\n router,\n emitter,\n });\n\n const routes = useRouteCache(state.routes);\n\n return routes.reduce<\n Record<\n string,\n Descriptor<\n ScreenOptions,\n NavigationProp<\n ParamListBase,\n string,\n string | undefined,\n State,\n ScreenOptions,\n EventMap\n > &\n ActionHelpers,\n RouteProp\n >\n >\n >((acc, route, i) => {\n const config = screens[route.name];\n const screen = config.props;\n const navigation = navigations[route.key];\n\n const optionsList = [\n // The default `screenOptions` passed to the navigator\n screenOptions,\n // The `screenOptions` props passed to `Group` elements\n ...((config.options\n ? config.options.filter(Boolean)\n : []) as ScreenOptionsOrCallback[]),\n // The `options` prop passed to `Screen` elements,\n screen.options,\n // The options set via `navigation.setOptions`\n options[route.key],\n ];\n\n const customOptions = optionsList.reduce(\n (acc, curr) =>\n Object.assign(\n acc,\n // @ts-expect-error: we check for function but TS still complains\n typeof curr !== 'function' ? curr : curr({ route, navigation })\n ),\n {} as ScreenOptions\n );\n\n const mergedOptions = {\n ...(typeof defaultScreenOptions === 'function'\n ? // @ts-expect-error: ts gives incorrect error here\n defaultScreenOptions({\n route,\n navigation,\n options: customOptions,\n })\n : defaultScreenOptions),\n ...customOptions,\n };\n\n const clearOptions = () =>\n setOptions((o) => {\n if (route.key in o) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { [route.key]: _, ...rest } = o;\n return rest;\n }\n\n return o;\n });\n\n acc[route.key] = {\n route,\n // @ts-expect-error: it's missing action helpers, fix later\n navigation,\n render() {\n return (\n \n \n \n \n \n \n \n );\n },\n options: mergedOptions as ScreenOptions,\n };\n\n return acc;\n }, {});\n}\n","import {\n CommonActions,\n NavigationAction,\n NavigationState,\n ParamListBase,\n Router,\n} from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport NavigationBuilderContext from './NavigationBuilderContext';\nimport type { NavigationHelpers, NavigationProp } from './types';\nimport type { NavigationEventEmitter } from './useEventEmitter';\n\ntype Options<\n State extends NavigationState,\n EventMap extends Record\n> = {\n state: State;\n getState: () => State;\n navigation: NavigationHelpers &\n Partial>;\n setOptions: (\n cb: (options: Record) => Record\n ) => void;\n router: Router;\n emitter: NavigationEventEmitter;\n};\n\ntype NavigationCache<\n State extends NavigationState,\n ScreenOptions extends {},\n EventMap extends Record\n> = Record<\n string,\n NavigationProp<\n ParamListBase,\n string,\n string | undefined,\n State,\n ScreenOptions,\n EventMap\n >\n>;\n\n/**\n * Hook to cache navigation objects for each screen in the navigator.\n * It's important to cache them to make sure navigation objects don't change between renders.\n * This lets us apply optimizations like `React.memo` to minimize re-rendering screens.\n */\nexport default function useNavigationCache<\n State extends NavigationState,\n ScreenOptions extends {},\n EventMap extends Record\n>({\n state,\n getState,\n navigation,\n setOptions,\n router,\n emitter,\n}: Options) {\n const { stackRef } = React.useContext(NavigationBuilderContext);\n\n // Cache object which holds navigation objects for each screen\n // We use `React.useMemo` instead of `React.useRef` coz we want to invalidate it when deps change\n // In reality, these deps will rarely change, if ever\n const cache = React.useMemo(\n () => ({ current: {} as NavigationCache }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [getState, navigation, setOptions, router, emitter]\n );\n\n const actions = {\n ...router.actionCreators,\n ...CommonActions,\n };\n\n cache.current = state.routes.reduce<\n NavigationCache\n >((acc, route) => {\n const previous = cache.current[route.key];\n\n type Thunk =\n | NavigationAction\n | ((state: State) => NavigationAction | null | undefined);\n\n if (previous) {\n // If a cached navigation object already exists, reuse it\n acc[route.key] = previous;\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { emit, ...rest } = navigation;\n\n const dispatch = (thunk: Thunk) => {\n const action = typeof thunk === 'function' ? thunk(getState()) : thunk;\n\n if (action != null) {\n navigation.dispatch({ source: route.key, ...action });\n }\n };\n\n const withStack = (callback: () => void) => {\n let isStackSet = false;\n\n try {\n if (\n process.env.NODE_ENV !== 'production' &&\n stackRef &&\n !stackRef.current\n ) {\n // Capture the stack trace for devtools\n stackRef.current = new Error().stack;\n isStackSet = true;\n }\n\n callback();\n } finally {\n if (isStackSet && stackRef) {\n stackRef.current = undefined;\n }\n }\n };\n\n const helpers = Object.keys(actions).reduce void>>(\n (acc, name) => {\n acc[name] = (...args: any) =>\n withStack(() =>\n // @ts-expect-error: name is a valid key, but TypeScript is dumb\n dispatch(actions[name](...args))\n );\n\n return acc;\n },\n {}\n );\n\n acc[route.key] = {\n ...rest,\n ...helpers,\n // FIXME: too much work to fix the types for now\n ...(emitter.create(route.key) as any),\n dispatch: (thunk: Thunk) => withStack(() => dispatch(thunk)),\n getParent: (id?: string) => {\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\n return rest.getParent(id);\n },\n setOptions: (options: object) =>\n setOptions((o) => ({\n ...o,\n [route.key]: { ...o[route.key], ...options },\n })),\n isFocused: () => {\n const state = getState();\n\n if (state.routes[state.index].key !== route.key) {\n return false;\n }\n\n // If the current screen is focused, we also need to check if parent navigator is focused\n // This makes sure that we return the focus state in the whole tree, not just this navigator\n return navigation ? navigation.isFocused() : true;\n },\n };\n }\n\n return acc;\n }, {});\n\n return cache.current;\n}\n","import type {\n NavigationAction,\n NavigationState,\n} from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport NavigationBuilderContext, {\n ChildBeforeRemoveListener,\n} from './NavigationBuilderContext';\nimport NavigationRouteContext from './NavigationRouteContext';\nimport type { EventMapCore } from './types';\nimport type { NavigationEventEmitter } from './useEventEmitter';\n\ntype Options = {\n getState: () => NavigationState;\n emitter: NavigationEventEmitter>;\n beforeRemoveListeners: Record;\n};\n\nconst VISITED_ROUTE_KEYS = Symbol('VISITED_ROUTE_KEYS');\n\nexport const shouldPreventRemove = (\n emitter: NavigationEventEmitter>,\n beforeRemoveListeners: Record,\n currentRoutes: { key: string }[],\n nextRoutes: { key?: string | undefined }[],\n action: NavigationAction\n) => {\n const nextRouteKeys = nextRoutes.map((route) => route.key);\n\n // Call these in reverse order so last screens handle the event first\n const removedRoutes = currentRoutes\n .filter((route) => !nextRouteKeys.includes(route.key))\n .reverse();\n\n const visitedRouteKeys: Set =\n // @ts-expect-error: add this property to mark that we've already emitted this action\n action[VISITED_ROUTE_KEYS] ?? new Set();\n\n const beforeRemoveAction = {\n ...action,\n [VISITED_ROUTE_KEYS]: visitedRouteKeys,\n };\n\n for (const route of removedRoutes) {\n if (visitedRouteKeys.has(route.key)) {\n // Skip if we've already emitted this action for this screen\n continue;\n }\n\n // First, we need to check if any child screens want to prevent it\n const isPrevented = beforeRemoveListeners[route.key]?.(beforeRemoveAction);\n\n if (isPrevented) {\n return true;\n }\n\n visitedRouteKeys.add(route.key);\n\n const event = emitter.emit({\n type: 'beforeRemove',\n target: route.key,\n data: { action: beforeRemoveAction },\n canPreventDefault: true,\n });\n\n if (event.defaultPrevented) {\n return true;\n }\n }\n\n return false;\n};\n\nexport default function useOnPreventRemove({\n getState,\n emitter,\n beforeRemoveListeners,\n}: Options) {\n const { addKeyedListener } = React.useContext(NavigationBuilderContext);\n const route = React.useContext(NavigationRouteContext);\n const routeKey = route?.key;\n\n React.useEffect(() => {\n if (routeKey) {\n return addKeyedListener?.('beforeRemove', routeKey, (action) => {\n const state = getState();\n\n return shouldPreventRemove(\n emitter,\n beforeRemoveListeners,\n state.routes,\n [],\n action\n );\n });\n }\n }, [addKeyedListener, beforeRemoveListeners, emitter, getState, routeKey]);\n}\n","import type {\n NavigationAction,\n NavigationState,\n PartialState,\n Router,\n RouterConfigOptions,\n} from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport NavigationBuilderContext, {\n ChildActionListener,\n ChildBeforeRemoveListener,\n} from './NavigationBuilderContext';\nimport type { EventMapCore } from './types';\nimport type { NavigationEventEmitter } from './useEventEmitter';\nimport useOnPreventRemove, { shouldPreventRemove } from './useOnPreventRemove';\n\ntype Options = {\n router: Router;\n key?: string;\n getState: () => NavigationState;\n setState: (state: NavigationState | PartialState) => void;\n actionListeners: ChildActionListener[];\n beforeRemoveListeners: Record;\n routerConfigOptions: RouterConfigOptions;\n emitter: NavigationEventEmitter>;\n};\n\n/**\n * Hook to handle actions for a navigator, including state updates and bubbling.\n *\n * Bubbling an action is achieved in 2 ways:\n * 1. To bubble action to parent, we expose the action handler in context and then access the parent context\n * 2. To bubble action to child, child adds event listeners subscribing to actions from parent\n *\n * When the action handler handles as action, it returns `true`, otherwise `false`.\n */\nexport default function useOnAction({\n router,\n getState,\n setState,\n key,\n actionListeners,\n beforeRemoveListeners,\n routerConfigOptions,\n emitter,\n}: Options) {\n const {\n onAction: onActionParent,\n onRouteFocus: onRouteFocusParent,\n addListener: addListenerParent,\n onDispatchAction,\n } = React.useContext(NavigationBuilderContext);\n\n const routerConfigOptionsRef =\n React.useRef(routerConfigOptions);\n\n React.useEffect(() => {\n routerConfigOptionsRef.current = routerConfigOptions;\n });\n\n const onAction = React.useCallback(\n (\n action: NavigationAction,\n visitedNavigators: Set = new Set()\n ) => {\n const state = getState();\n\n // Since actions can bubble both up and down, they could come to the same navigator again\n // We keep track of navigators which have already tried to handle the action and return if it's already visited\n if (visitedNavigators.has(state.key)) {\n return false;\n }\n\n visitedNavigators.add(state.key);\n\n if (typeof action.target !== 'string' || action.target === state.key) {\n let result = router.getStateForAction(\n state,\n action,\n routerConfigOptionsRef.current\n );\n\n // If a target is specified and set to current navigator, the action shouldn't bubble\n // So instead of `null`, we use the state object for such cases to signal that action was handled\n result =\n result === null && action.target === state.key ? state : result;\n\n if (result !== null) {\n onDispatchAction(action, state === result);\n\n if (state !== result) {\n const isPrevented = shouldPreventRemove(\n emitter,\n beforeRemoveListeners,\n state.routes,\n result.routes,\n action\n );\n\n if (isPrevented) {\n return true;\n }\n\n setState(result);\n }\n\n if (onRouteFocusParent !== undefined) {\n // Some actions such as `NAVIGATE` also want to bring the navigated route to focus in the whole tree\n // This means we need to focus all of the parent navigators of this navigator as well\n const shouldFocus = router.shouldActionChangeFocus(action);\n\n if (shouldFocus && key !== undefined) {\n onRouteFocusParent(key);\n }\n }\n\n return true;\n }\n }\n\n if (onActionParent !== undefined) {\n // Bubble action to the parent if the current navigator didn't handle it\n if (onActionParent(action, visitedNavigators)) {\n return true;\n }\n }\n\n // If the action wasn't handled by current navigator or a parent navigator, let children handle it\n for (let i = actionListeners.length - 1; i >= 0; i--) {\n const listener = actionListeners[i];\n\n if (listener(action, visitedNavigators)) {\n return true;\n }\n }\n\n return false;\n },\n [\n actionListeners,\n beforeRemoveListeners,\n emitter,\n getState,\n key,\n onActionParent,\n onDispatchAction,\n onRouteFocusParent,\n router,\n setState,\n ]\n );\n\n useOnPreventRemove({\n getState,\n emitter,\n beforeRemoveListeners,\n });\n\n React.useEffect(\n () => addListenerParent?.('action', onAction),\n [addListenerParent, onAction]\n );\n\n return onAction;\n}\n","import {\n CommonActions,\n DefaultRouterOptions,\n NavigationAction,\n NavigationState,\n ParamListBase,\n PartialState,\n Route,\n Router,\n RouterConfigOptions,\n RouterFactory,\n} from '@react-navigation/routers';\nimport * as React from 'react';\nimport { isValidElementType } from 'react-is';\n\nimport Group from './Group';\nimport isArrayEqual from './isArrayEqual';\nimport isRecordEqual from './isRecordEqual';\nimport NavigationHelpersContext from './NavigationHelpersContext';\nimport NavigationRouteContext from './NavigationRouteContext';\nimport NavigationStateContext from './NavigationStateContext';\nimport PreventRemoveProvider from './PreventRemoveProvider';\nimport Screen from './Screen';\nimport {\n DefaultNavigatorOptions,\n EventMapBase,\n EventMapCore,\n NavigatorScreenParams,\n PrivateValueStore,\n RouteConfig,\n RouteProp,\n} from './types';\nimport useChildListeners from './useChildListeners';\nimport useComponent from './useComponent';\nimport useCurrentRender from './useCurrentRender';\nimport useDescriptors, { ScreenConfigWithParent } from './useDescriptors';\nimport useEventEmitter from './useEventEmitter';\nimport useFocusedListenersChildrenAdapter from './useFocusedListenersChildrenAdapter';\nimport useFocusEvents from './useFocusEvents';\nimport useKeyedChildListeners from './useKeyedChildListeners';\nimport useNavigationHelpers from './useNavigationHelpers';\nimport useOnAction from './useOnAction';\nimport useOnGetState from './useOnGetState';\nimport useOnRouteFocus from './useOnRouteFocus';\nimport useRegisterNavigator from './useRegisterNavigator';\nimport useScheduleUpdate from './useScheduleUpdate';\n\n// This is to make TypeScript compiler happy\n// eslint-disable-next-line babel/no-unused-expressions\nPrivateValueStore;\n\ntype NavigationBuilderOptions = {\n /**\n * Default options specified by the navigator.\n * It receives the custom options in the arguments if a function is specified.\n */\n defaultScreenOptions?:\n | ScreenOptions\n | ((props: {\n route: RouteProp;\n navigation: any;\n options: ScreenOptions;\n }) => ScreenOptions);\n};\n\ntype NavigatorRoute = {\n key: string;\n params?: NavigatorScreenParams;\n};\n\nconst isValidKey = (key: unknown) =>\n key === undefined || (typeof key === 'string' && key !== '');\n\n/**\n * Extract route config object from React children elements.\n *\n * @param children React Elements to extract the config from.\n */\nconst getRouteConfigsFromChildren = <\n State extends NavigationState,\n ScreenOptions extends {},\n EventMap extends EventMapBase\n>(\n children: React.ReactNode,\n groupKey?: string,\n groupOptions?: ScreenConfigWithParent<\n State,\n ScreenOptions,\n EventMap\n >['options']\n) => {\n const configs = React.Children.toArray(children).reduce<\n ScreenConfigWithParent[]\n >((acc, child) => {\n if (React.isValidElement(child)) {\n if (child.type === Screen) {\n // We can only extract the config from `Screen` elements\n // If something else was rendered, it's probably a bug\n\n if (!isValidKey(child.props.navigationKey)) {\n throw new Error(\n `Got an invalid 'navigationKey' prop (${JSON.stringify(\n child.props.navigationKey\n )}) for the screen '${\n child.props.name\n }'. It must be a non-empty string or 'undefined'.`\n );\n }\n\n acc.push({\n keys: [groupKey, child.props.navigationKey],\n options: groupOptions,\n props: child.props as RouteConfig<\n ParamListBase,\n string,\n State,\n ScreenOptions,\n EventMap\n >,\n });\n return acc;\n }\n\n if (child.type === React.Fragment || child.type === Group) {\n if (!isValidKey(child.props.navigationKey)) {\n throw new Error(\n `Got an invalid 'navigationKey' prop (${JSON.stringify(\n child.props.navigationKey\n )}) for the group. It must be a non-empty string or 'undefined'.`\n );\n }\n\n // When we encounter a fragment or group, we need to dive into its children to extract the configs\n // This is handy to conditionally define a group of screens\n acc.push(\n ...getRouteConfigsFromChildren(\n child.props.children,\n child.props.navigationKey,\n child.type !== Group\n ? groupOptions\n : groupOptions != null\n ? [...groupOptions, child.props.screenOptions]\n : [child.props.screenOptions]\n )\n );\n return acc;\n }\n }\n\n throw new Error(\n `A navigator can only contain 'Screen', 'Group' or 'React.Fragment' as its direct children (found ${\n React.isValidElement(child)\n ? `'${\n typeof child.type === 'string' ? child.type : child.type?.name\n }'${\n child.props != null &&\n typeof child.props === 'object' &&\n 'name' in child.props &&\n child.props?.name\n ? ` for the screen '${child.props.name}'`\n : ''\n }`\n : typeof child === 'object'\n ? JSON.stringify(child)\n : `'${String(child)}'`\n }). To render this component in the navigator, pass it in the 'component' prop to 'Screen'.`\n );\n }, []);\n\n if (process.env.NODE_ENV !== 'production') {\n configs.forEach((config) => {\n const { name, children, component, getComponent } = config.props;\n\n if (typeof name !== 'string' || !name) {\n throw new Error(\n `Got an invalid name (${JSON.stringify(\n name\n )}) for the screen. It must be a non-empty string.`\n );\n }\n\n if (\n children != null ||\n component !== undefined ||\n getComponent !== undefined\n ) {\n if (children != null && component !== undefined) {\n throw new Error(\n `Got both 'component' and 'children' props for the screen '${name}'. You must pass only one of them.`\n );\n }\n\n if (children != null && getComponent !== undefined) {\n throw new Error(\n `Got both 'getComponent' and 'children' props for the screen '${name}'. You must pass only one of them.`\n );\n }\n\n if (component !== undefined && getComponent !== undefined) {\n throw new Error(\n `Got both 'component' and 'getComponent' props for the screen '${name}'. You must pass only one of them.`\n );\n }\n\n if (children != null && typeof children !== 'function') {\n throw new Error(\n `Got an invalid value for 'children' prop for the screen '${name}'. It must be a function returning a React Element.`\n );\n }\n\n if (component !== undefined && !isValidElementType(component)) {\n throw new Error(\n `Got an invalid value for 'component' prop for the screen '${name}'. It must be a valid React Component.`\n );\n }\n\n if (getComponent !== undefined && typeof getComponent !== 'function') {\n throw new Error(\n `Got an invalid value for 'getComponent' prop for the screen '${name}'. It must be a function returning a React Component.`\n );\n }\n\n if (typeof component === 'function') {\n if (component.name === 'component') {\n // Inline anonymous functions passed in the `component` prop will have the name of the prop\n // It's relatively safe to assume that it's not a component since it should also have PascalCase name\n // We won't catch all scenarios here, but this should catch a good chunk of incorrect use.\n console.warn(\n `Looks like you're passing an inline function for 'component' prop for the screen '${name}' (e.g. component={() => }). Passing an inline function will cause the component state to be lost on re-render and cause perf issues since it's re-created every render. You can pass the function as children to 'Screen' instead to achieve the desired behaviour.`\n );\n } else if (/^[a-z]/.test(component.name)) {\n console.warn(\n `Got a component with the name '${component.name}' for the screen '${name}'. React Components must start with an uppercase letter. If you're passing a regular function and not a component, pass it as children to 'Screen' instead. Otherwise capitalize your component's name.`\n );\n }\n }\n } else {\n throw new Error(\n `Couldn't find a 'component', 'getComponent' or 'children' prop for the screen '${name}'. This can happen if you passed 'undefined'. You likely forgot to export your component from the file it's defined in, or mixed up default import and named import when importing.`\n );\n }\n });\n }\n\n return configs;\n};\n\n/**\n * Hook for building navigators.\n *\n * @param createRouter Factory method which returns router object.\n * @param options Options object containing `children` and additional options for the router.\n * @returns An object containing `state`, `navigation`, `descriptors` objects.\n */\nexport default function useNavigationBuilder<\n State extends NavigationState,\n RouterOptions extends DefaultRouterOptions,\n ActionHelpers extends Record void>,\n ScreenOptions extends {},\n EventMap extends Record\n>(\n createRouter: RouterFactory,\n options: DefaultNavigatorOptions<\n ParamListBase,\n State,\n ScreenOptions,\n EventMap\n > &\n NavigationBuilderOptions &\n RouterOptions\n) {\n const navigatorKey = useRegisterNavigator();\n\n const route = React.useContext(NavigationRouteContext) as\n | NavigatorRoute\n | undefined;\n\n const { children, screenListeners, ...rest } = options;\n const { current: router } = React.useRef>(\n createRouter({\n ...(rest as unknown as RouterOptions),\n ...(route?.params &&\n route.params.state == null &&\n route.params.initial !== false &&\n typeof route.params.screen === 'string'\n ? { initialRouteName: route.params.screen }\n : null),\n })\n );\n\n const routeConfigs = getRouteConfigsFromChildren<\n State,\n ScreenOptions,\n EventMap\n >(children);\n\n const screens = routeConfigs.reduce<\n Record>\n >((acc, config) => {\n if (config.props.name in acc) {\n throw new Error(\n `A navigator cannot contain multiple 'Screen' components with the same name (found duplicate screen named '${config.props.name}')`\n );\n }\n\n acc[config.props.name] = config;\n return acc;\n }, {});\n\n const routeNames = routeConfigs.map((config) => config.props.name);\n const routeKeyList = routeNames.reduce>(\n (acc, curr) => {\n acc[curr] = screens[curr].keys.map((key) => key ?? '').join(':');\n return acc;\n },\n {}\n );\n const routeParamList = routeNames.reduce>(\n (acc, curr) => {\n const { initialParams } = screens[curr].props;\n acc[curr] = initialParams;\n return acc;\n },\n {}\n );\n const routeGetIdList = routeNames.reduce<\n RouterConfigOptions['routeGetIdList']\n >(\n (acc, curr) =>\n Object.assign(acc, {\n [curr]: screens[curr].props.getId,\n }),\n {}\n );\n\n if (!routeNames.length) {\n throw new Error(\n \"Couldn't find any screens for the navigator. Have you defined any screens as its children?\"\n );\n }\n\n const isStateValid = React.useCallback(\n (state: NavigationState | PartialState) =>\n state.type === undefined || state.type === router.type,\n [router.type]\n );\n\n const isStateInitialized = React.useCallback(\n (state: NavigationState | PartialState | undefined) =>\n state !== undefined && state.stale === false && isStateValid(state),\n [isStateValid]\n );\n\n const {\n state: currentState,\n getState: getCurrentState,\n setState: setCurrentState,\n setKey,\n getKey,\n getIsInitial,\n } = React.useContext(NavigationStateContext);\n\n const stateCleanedUp = React.useRef(false);\n\n const cleanUpState = React.useCallback(() => {\n setCurrentState(undefined);\n stateCleanedUp.current = true;\n }, [setCurrentState]);\n\n const setState = React.useCallback(\n (state: NavigationState | PartialState | undefined) => {\n if (stateCleanedUp.current) {\n // State might have been already cleaned up due to unmount\n // We do not want to expose API allowing to override this\n // This would lead to old data preservation on main navigator unmount\n return;\n }\n setCurrentState(state);\n },\n [setCurrentState]\n );\n\n const [initializedState, isFirstStateInitialization] = React.useMemo(() => {\n const initialRouteParamList = routeNames.reduce<\n Record\n >((acc, curr) => {\n const { initialParams } = screens[curr].props;\n const initialParamsFromParams =\n route?.params?.state == null &&\n route?.params?.initial !== false &&\n route?.params?.screen === curr\n ? route.params.params\n : undefined;\n\n acc[curr] =\n initialParams !== undefined || initialParamsFromParams !== undefined\n ? {\n ...initialParams,\n ...initialParamsFromParams,\n }\n : undefined;\n\n return acc;\n }, {});\n\n // If the current state isn't initialized on first render, we initialize it\n // We also need to re-initialize it if the state passed from parent was changed (maybe due to reset)\n // Otherwise assume that the state was provided as initial state\n // So we need to rehydrate it to make it usable\n if (\n (currentState === undefined || !isStateValid(currentState)) &&\n route?.params?.state == null\n ) {\n return [\n router.getInitialState({\n routeNames,\n routeParamList: initialRouteParamList,\n routeGetIdList,\n }),\n true,\n ];\n } else {\n return [\n router.getRehydratedState(\n route?.params?.state ?? (currentState as PartialState),\n {\n routeNames,\n routeParamList: initialRouteParamList,\n routeGetIdList,\n }\n ),\n false,\n ];\n }\n // We explicitly don't include routeNames, route.params etc. in the dep list\n // below. We want to avoid forcing a new state to be calculated in those cases\n // Instead, we handle changes to these in the nextState code below. Note\n // that some changes to routeConfigs are explicitly ignored, such as changes\n // to initialParams\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currentState, router, isStateValid]);\n\n const previousRouteKeyListRef = React.useRef(routeKeyList);\n\n React.useEffect(() => {\n previousRouteKeyListRef.current = routeKeyList;\n });\n\n const previousRouteKeyList = previousRouteKeyListRef.current;\n\n let state =\n // If the state isn't initialized, or stale, use the state we initialized instead\n // The state won't update until there's a change needed in the state we have initalized locally\n // So it'll be `undefined` or stale until the first navigation event happens\n isStateInitialized(currentState)\n ? (currentState as State)\n : (initializedState as State);\n\n let nextState: State = state;\n\n if (\n !isArrayEqual(state.routeNames, routeNames) ||\n !isRecordEqual(routeKeyList, previousRouteKeyList)\n ) {\n // When the list of route names change, the router should handle it to remove invalid routes\n nextState = router.getStateForRouteNamesChange(state, {\n routeNames,\n routeParamList,\n routeGetIdList,\n routeKeyChanges: Object.keys(routeKeyList).filter(\n (name) =>\n previousRouteKeyList.hasOwnProperty(name) &&\n routeKeyList[name] !== previousRouteKeyList[name]\n ),\n });\n }\n\n const previousNestedParamsRef = React.useRef(route?.params);\n\n React.useEffect(() => {\n previousNestedParamsRef.current = route?.params;\n }, [route?.params]);\n\n if (route?.params) {\n const previousParams = previousNestedParamsRef.current;\n\n let action: CommonActions.Action | undefined;\n\n if (\n typeof route.params.state === 'object' &&\n route.params.state != null &&\n route.params !== previousParams\n ) {\n // If the route was updated with new state, we should reset to it\n action = CommonActions.reset(route.params.state);\n } else if (\n typeof route.params.screen === 'string' &&\n ((route.params.initial === false && isFirstStateInitialization) ||\n route.params !== previousParams)\n ) {\n // If the route was updated with new screen name and/or params, we should navigate there\n action = CommonActions.navigate({\n name: route.params.screen,\n params: route.params.params,\n path: route.params.path,\n });\n }\n\n // The update should be limited to current navigator only, so we call the router manually\n const updatedState = action\n ? router.getStateForAction(nextState, action, {\n routeNames,\n routeParamList,\n routeGetIdList,\n })\n : null;\n\n nextState =\n updatedState !== null\n ? router.getRehydratedState(updatedState, {\n routeNames,\n routeParamList,\n routeGetIdList,\n })\n : nextState;\n }\n\n const shouldUpdate = state !== nextState;\n\n useScheduleUpdate(() => {\n if (shouldUpdate) {\n // If the state needs to be updated, we'll schedule an update\n setState(nextState);\n }\n });\n\n // The up-to-date state will come in next render, but we don't need to wait for it\n // We can't use the outdated state since the screens have changed, which will cause error due to mismatched config\n // So we override the state object we return to use the latest state as soon as possible\n state = nextState;\n\n React.useEffect(() => {\n setKey(navigatorKey);\n\n if (!getIsInitial()) {\n // If it's not initial render, we need to update the state\n // This will make sure that our container gets notifier of state changes due to new mounts\n // This is necessary for proper screen tracking, URL updates etc.\n setState(nextState);\n }\n\n return () => {\n // We need to clean up state for this navigator on unmount\n // We do it in a timeout because we need to detect if another navigator mounted in the meantime\n // For example, if another navigator has started rendering, we should skip cleanup\n // Otherwise, our cleanup step will cleanup state for the other navigator and re-initialize it\n setTimeout(() => {\n if (getCurrentState() !== undefined && getKey() === navigatorKey) {\n cleanUpState();\n }\n }, 0);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // We initialize this ref here to avoid a new getState getting initialized\n // whenever initializedState changes. We want getState to have access to the\n // latest initializedState, but don't need it to change when that happens\n const initializedStateRef = React.useRef();\n initializedStateRef.current = initializedState;\n\n const getState = React.useCallback((): State => {\n const currentState = getCurrentState();\n\n return isStateInitialized(currentState)\n ? (currentState as State)\n : (initializedStateRef.current as State);\n }, [getCurrentState, isStateInitialized]);\n\n const emitter = useEventEmitter>((e) => {\n let routeNames = [];\n\n let route: Route | undefined;\n\n if (e.target) {\n route = state.routes.find((route) => route.key === e.target);\n\n if (route?.name) {\n routeNames.push(route.name);\n }\n } else {\n route = state.routes[state.index];\n routeNames.push(\n ...Object.keys(screens).filter((name) => route?.name === name)\n );\n }\n\n if (route == null) {\n return;\n }\n\n const navigation = descriptors[route.key].navigation;\n\n const listeners = ([] as (((e: any) => void) | undefined)[])\n .concat(\n // Get an array of listeners for all screens + common listeners on navigator\n ...[\n screenListeners,\n ...routeNames.map((name) => {\n const { listeners } = screens[name].props;\n return listeners;\n }),\n ].map((listeners) => {\n const map =\n typeof listeners === 'function'\n ? listeners({ route: route as any, navigation })\n : listeners;\n\n return map\n ? Object.keys(map)\n .filter((type) => type === e.type)\n .map((type) => map?.[type])\n : undefined;\n })\n )\n // We don't want same listener to be called multiple times for same event\n // So we remove any duplicate functions from the array\n .filter((cb, i, self) => cb && self.lastIndexOf(cb) === i);\n\n listeners.forEach((listener) => listener?.(e));\n });\n\n useFocusEvents({ state, emitter });\n\n React.useEffect(() => {\n emitter.emit({ type: 'state', data: { state } });\n }, [emitter, state]);\n\n const { listeners: childListeners, addListener } = useChildListeners();\n\n const { keyedListeners, addKeyedListener } = useKeyedChildListeners();\n\n const onAction = useOnAction({\n router,\n getState,\n setState,\n key: route?.key,\n actionListeners: childListeners.action,\n beforeRemoveListeners: keyedListeners.beforeRemove,\n routerConfigOptions: {\n routeNames,\n routeParamList,\n routeGetIdList,\n },\n emitter,\n });\n\n const onRouteFocus = useOnRouteFocus({\n router,\n key: route?.key,\n getState,\n setState,\n });\n\n const navigation = useNavigationHelpers<\n State,\n ActionHelpers,\n NavigationAction,\n EventMap\n >({\n id: options.id,\n onAction,\n getState,\n emitter,\n router,\n });\n\n useFocusedListenersChildrenAdapter({\n navigation,\n focusedListeners: childListeners.focus,\n });\n\n useOnGetState({\n getState,\n getStateListeners: keyedListeners.getState,\n });\n\n const descriptors = useDescriptors<\n State,\n ActionHelpers,\n ScreenOptions,\n EventMap\n >({\n state,\n screens,\n navigation,\n screenOptions: options.screenOptions,\n defaultScreenOptions: options.defaultScreenOptions,\n onAction,\n getState,\n setState,\n onRouteFocus,\n addListener,\n addKeyedListener,\n router,\n // @ts-expect-error: this should have both core and custom events, but too much work right now\n emitter,\n });\n\n useCurrentRender({\n state,\n navigation,\n descriptors,\n });\n\n const NavigationContent = useComponent((children: React.ReactNode) => (\n \n {children}\n \n ));\n\n return {\n state,\n navigation,\n descriptors,\n NavigationContent,\n };\n}\n","import { nanoid } from 'nanoid/non-secure';\nimport * as React from 'react';\n\nimport { SingleNavigatorContext } from './EnsureSingleNavigator';\n\n/**\n * Register a navigator in the parent context (either a navigation container or a screen).\n * This is used to prevent multiple navigators under a single container or screen.\n */\nexport default function useRegisterNavigator() {\n const [key] = React.useState(() => nanoid());\n const container = React.useContext(SingleNavigatorContext);\n\n if (container === undefined) {\n throw new Error(\n \"Couldn't register the navigator. Have you wrapped your app with 'NavigationContainer'?\\n\\nThis can also happen if there are multiple copies of '@react-navigation' packages installed.\"\n );\n }\n\n React.useEffect(() => {\n const { register, unregister } = container;\n\n register(key);\n\n return () => unregister(key);\n }, [container, key]);\n\n return key;\n}\n","/**\n * Compare two records with primitive values as the content.\n */\nexport default function isRecordEqual(\n a: Record,\n b: Record\n) {\n if (a === b) {\n return true;\n }\n\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b);\n\n if (aKeys.length !== bKeys.length) {\n return false;\n }\n\n return aKeys.every((key) => a[key] === b[key]);\n}\n","import type { NavigationState } from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport NavigationContext from './NavigationContext';\nimport type { EventMapCore } from './types';\nimport type { NavigationEventEmitter } from './useEventEmitter';\n\ntype Options = {\n state: State;\n emitter: NavigationEventEmitter>;\n};\n\n/**\n * Hook to take care of emitting `focus` and `blur` events.\n */\nexport default function useFocusEvents({\n state,\n emitter,\n}: Options) {\n const navigation = React.useContext(NavigationContext);\n const lastFocusedKeyRef = React.useRef();\n\n const currentFocusedKey = state.routes[state.index].key;\n\n // When the parent screen changes its focus state, we also need to change child's focus\n // Coz the child screen can't be focused if the parent screen is out of focus\n React.useEffect(\n () =>\n navigation?.addListener('focus', () => {\n lastFocusedKeyRef.current = currentFocusedKey;\n emitter.emit({ type: 'focus', target: currentFocusedKey });\n }),\n [currentFocusedKey, emitter, navigation]\n );\n\n React.useEffect(\n () =>\n navigation?.addListener('blur', () => {\n lastFocusedKeyRef.current = undefined;\n emitter.emit({ type: 'blur', target: currentFocusedKey });\n }),\n [currentFocusedKey, emitter, navigation]\n );\n\n React.useEffect(() => {\n const lastFocusedKey = lastFocusedKeyRef.current;\n\n lastFocusedKeyRef.current = currentFocusedKey;\n\n // We wouldn't have `lastFocusedKey` on initial mount\n // Fire focus event for the current route on mount if there's no parent navigator\n if (lastFocusedKey === undefined && !navigation) {\n emitter.emit({ type: 'focus', target: currentFocusedKey });\n }\n\n // We should only emit events when the focused key changed and navigator is focused\n // When navigator is not focused, screens inside shouldn't receive focused status either\n if (\n lastFocusedKey === currentFocusedKey ||\n !(navigation ? navigation.isFocused() : true)\n ) {\n return;\n }\n\n if (lastFocusedKey === undefined) {\n // Only fire events after initial mount\n return;\n }\n\n emitter.emit({ type: 'blur', target: lastFocusedKey });\n emitter.emit({ type: 'focus', target: currentFocusedKey });\n }, [currentFocusedKey, emitter, navigation]);\n}\n","import type {\n NavigationAction,\n NavigationState,\n Router,\n} from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport NavigationBuilderContext from './NavigationBuilderContext';\n\ntype Options = {\n router: Router;\n getState: () => NavigationState;\n setState: (state: NavigationState) => void;\n key?: string;\n};\n\n/**\n * Hook to handle focus actions for a route.\n * Focus action needs to be treated specially, coz when a nested route is focused,\n * the parent navigators also needs to be focused.\n */\nexport default function useOnRouteFocus({\n router,\n getState,\n key: sourceRouteKey,\n setState,\n}: Options) {\n const { onRouteFocus: onRouteFocusParent } = React.useContext(\n NavigationBuilderContext\n );\n\n return React.useCallback(\n (key: string) => {\n const state = getState();\n const result = router.getStateForRouteFocus(state, key);\n\n if (result !== state) {\n setState(result);\n }\n\n if (onRouteFocusParent !== undefined && sourceRouteKey !== undefined) {\n onRouteFocusParent(sourceRouteKey);\n }\n },\n [getState, onRouteFocusParent, router, setState, sourceRouteKey]\n );\n}\n","import {\n CommonActions,\n NavigationAction,\n NavigationState,\n ParamListBase,\n Router,\n} from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport NavigationContext from './NavigationContext';\nimport { NavigationHelpers, PrivateValueStore } from './types';\nimport UnhandledActionContext from './UnhandledActionContext';\nimport type { NavigationEventEmitter } from './useEventEmitter';\n\n// This is to make TypeScript compiler happy\n// eslint-disable-next-line babel/no-unused-expressions\nPrivateValueStore;\n\ntype Options = {\n id: string | undefined;\n onAction: (action: NavigationAction) => boolean;\n getState: () => State;\n emitter: NavigationEventEmitter;\n router: Router;\n};\n\n/**\n * Navigation object with helper methods to be used by a navigator.\n * This object includes methods for common actions as well as methods the parent screen's navigation object.\n */\nexport default function useNavigationHelpers<\n State extends NavigationState,\n ActionHelpers extends Record void>,\n Action extends NavigationAction,\n EventMap extends Record\n>({\n id: navigatorId,\n onAction,\n getState,\n emitter,\n router,\n}: Options) {\n const onUnhandledAction = React.useContext(UnhandledActionContext);\n const parentNavigationHelpers = React.useContext(NavigationContext);\n\n return React.useMemo(() => {\n const dispatch = (op: Action | ((state: State) => Action)) => {\n const action = typeof op === 'function' ? op(getState()) : op;\n\n const handled = onAction(action);\n\n if (!handled) {\n onUnhandledAction?.(action);\n }\n };\n\n const actions = {\n ...router.actionCreators,\n ...CommonActions,\n };\n\n const helpers = Object.keys(actions).reduce((acc, name) => {\n // @ts-expect-error: name is a valid key, but TypeScript is dumb\n acc[name] = (...args: any) => dispatch(actions[name](...args));\n return acc;\n }, {} as ActionHelpers);\n\n const navigationHelpers = {\n ...parentNavigationHelpers,\n ...helpers,\n dispatch,\n emit: emitter.emit,\n isFocused: parentNavigationHelpers\n ? parentNavigationHelpers.isFocused\n : () => true,\n canGoBack: () => {\n const state = getState();\n\n return (\n router.getStateForAction(state, CommonActions.goBack() as Action, {\n routeNames: state.routeNames,\n routeParamList: {},\n routeGetIdList: {},\n }) !== null ||\n parentNavigationHelpers?.canGoBack() ||\n false\n );\n },\n getId: () => navigatorId,\n getParent: (id?: string) => {\n if (id !== undefined) {\n let current = navigationHelpers;\n\n while (current && id !== current.getId()) {\n current = current.getParent();\n }\n\n return current;\n }\n\n return parentNavigationHelpers;\n },\n getState,\n } as NavigationHelpers & ActionHelpers;\n\n return navigationHelpers;\n }, [\n navigatorId,\n emitter.emit,\n getState,\n onAction,\n onUnhandledAction,\n parentNavigationHelpers,\n router,\n ]);\n}\n","import type { ParamListBase } from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport NavigationBuilderContext, {\n FocusedNavigationCallback,\n FocusedNavigationListener,\n} from './NavigationBuilderContext';\nimport type { NavigationHelpers } from './types';\n\ntype Options = {\n navigation: NavigationHelpers;\n focusedListeners: FocusedNavigationListener[];\n};\n\n/**\n * Hook for passing focus callback to children\n */\nexport default function useFocusedListenersChildrenAdapter({\n navigation,\n focusedListeners,\n}: Options) {\n const { addListener } = React.useContext(NavigationBuilderContext);\n\n const listener = React.useCallback(\n (callback: FocusedNavigationCallback) => {\n if (navigation.isFocused()) {\n for (const listener of focusedListeners) {\n const { handled, result } = listener(callback);\n\n if (handled) {\n return { handled, result };\n }\n }\n\n return { handled: true, result: callback(navigation) };\n } else {\n return { handled: false, result: null };\n }\n },\n [focusedListeners, navigation]\n );\n\n React.useEffect(\n () => addListener?.('focus', listener),\n [addListener, listener]\n );\n}\n","import type { NavigationState } from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport isArrayEqual from './isArrayEqual';\nimport NavigationBuilderContext, {\n GetStateListener,\n} from './NavigationBuilderContext';\nimport NavigationRouteContext from './NavigationRouteContext';\n\ntype Options = {\n getState: () => NavigationState;\n getStateListeners: Record;\n};\n\nexport default function useOnGetState({\n getState,\n getStateListeners,\n}: Options) {\n const { addKeyedListener } = React.useContext(NavigationBuilderContext);\n const route = React.useContext(NavigationRouteContext);\n const key = route ? route.key : 'root';\n\n const getRehydratedState = React.useCallback(() => {\n const state = getState();\n\n // Avoid returning new route objects if we don't need to\n const routes = state.routes.map((route) => {\n const childState = getStateListeners[route.key]?.();\n\n if (route.state === childState) {\n return route;\n }\n\n return { ...route, state: childState };\n });\n\n if (isArrayEqual(state.routes, routes)) {\n return state;\n }\n\n return { ...state, routes };\n }, [getState, getStateListeners]);\n\n React.useEffect(() => {\n return addKeyedListener?.('getState', key, getRehydratedState);\n }, [addKeyedListener, getRehydratedState, key]);\n}\n","import type { NavigationState, ParamListBase } from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport CurrentRenderContext from './CurrentRenderContext';\nimport type {\n Descriptor,\n NavigationHelpers,\n NavigationProp,\n RouteProp,\n} from './types';\n\ntype Options = {\n state: NavigationState;\n navigation: NavigationHelpers;\n descriptors: Record<\n string,\n Descriptor, RouteProp>\n >;\n};\n\n/**\n * Write the current options, so that server renderer can get current values\n * Mutating values like this is not safe in async mode, but it doesn't apply to SSR\n */\nexport default function useCurrentRender({\n state,\n navigation,\n descriptors,\n}: Options) {\n const current = React.useContext(CurrentRenderContext);\n\n if (current && navigation.isFocused()) {\n current.options = descriptors[state.routes[state.index].key].options;\n }\n}\n","import * as React from 'react';\n\nimport createNavigationContainerRef from './createNavigationContainerRef';\nimport type { NavigationContainerRefWithCurrent } from './types';\n\nexport default function useNavigationContainerRef<\n ParamList extends {} = ReactNavigation.RootParamList\n>(): NavigationContainerRefWithCurrent {\n const navigation =\n React.useRef | null>(null);\n\n if (navigation.current == null) {\n navigation.current = createNavigationContainerRef();\n }\n\n return navigation.current;\n}\n","import type { NavigationState, ParamListBase } from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport type { NavigationProp } from './types';\nimport useNavigation from './useNavigation';\n\ntype Selector = (\n state: NavigationState\n) => T;\n\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(\n selector: Selector\n): T {\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\n React.useEffect(() => {\n selectorRef.current = selector;\n });\n\n React.useEffect(() => {\n const unsubscribe = navigation.addListener('state', (e) => {\n setResult(selectorRef.current(e.data.state));\n });\n\n return unsubscribe;\n }, [navigation]);\n\n return selector(navigation.getState());\n}\n","import * as React from 'react';\n\nimport PreventRemoveContext from './PreventRemoveContext';\n\nexport default function usePreventRemoveContext() {\n const value = React.useContext(PreventRemoveContext);\n\n if (value == null) {\n throw new Error(\n \"Couldn't find the prevent remove context. Is your component inside NavigationContent?\"\n );\n }\n\n return value;\n}\n","import type { ParamListBase } from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport NavigationRouteContext from './NavigationRouteContext';\nimport type { RouteProp } from './types';\n\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>(): T {\n const route = React.useContext(NavigationRouteContext);\n\n if (route === undefined) {\n throw new Error(\n \"Couldn't find a route object. Is your component inside a screen in a navigator?\"\n );\n }\n\n return route as T;\n}\n","import type { NavigationAction } from '@react-navigation/routers';\nimport { nanoid } from 'nanoid/non-secure';\nimport * as React from 'react';\nimport useLatestCallback from 'use-latest-callback';\n\nimport type { EventListenerCallback, EventMapCore } from './types';\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(\n preventRemove: boolean,\n callback: (options: { data: { action: NavigationAction } }) => void\n) {\n const [id] = React.useState(() => nanoid());\n\n const navigation = useNavigation();\n const { key: routeKey } = useRoute();\n\n const { setPreventRemove } = usePreventRemoveContext();\n\n React.useEffect(() => {\n setPreventRemove(id, routeKey, preventRemove);\n return () => {\n setPreventRemove(id, routeKey, false);\n };\n }, [setPreventRemove, id, routeKey, preventRemove]);\n\n const beforeRemoveListener = useLatestCallback<\n EventListenerCallback, 'beforeRemove'>\n >((e) => {\n if (!preventRemove) {\n return;\n }\n\n e.preventDefault();\n\n callback({ data: e.data });\n });\n\n React.useEffect(\n () => navigation?.addListener('beforeRemove', beforeRemoveListener),\n [navigation, beforeRemoveListener]\n );\n}\n","import { nanoid } from 'nanoid/non-secure';\n\nimport type {\n CommonNavigationAction,\n NavigationState,\n PartialState,\n} from './types';\n\n/**\n * Base router object that can be used when writing custom routers.\n * This provides few helper methods to handle common actions such as `RESET`.\n */\nconst BaseRouter = {\n getStateForAction(\n state: State,\n action: CommonNavigationAction\n ): State | PartialState | null {\n switch (action.type) {\n case 'SET_PARAMS': {\n const index = action.source\n ? state.routes.findIndex((r) => r.key === action.source)\n : state.index;\n\n if (index === -1) {\n return null;\n }\n\n return {\n ...state,\n routes: state.routes.map((r, i) =>\n i === index\n ? { ...r, params: { ...r.params, ...action.payload.params } }\n : r\n ),\n };\n }\n\n case 'RESET': {\n const nextState = action.payload as State | PartialState;\n\n if (\n nextState.routes.length === 0 ||\n nextState.routes.some(\n (route: { name: string }) => !state.routeNames.includes(route.name)\n )\n ) {\n return null;\n }\n\n if (nextState.stale === false) {\n if (\n state.routeNames.length !== nextState.routeNames.length ||\n nextState.routeNames.some(\n (name) => !state.routeNames.includes(name)\n )\n ) {\n return null;\n }\n\n return {\n ...nextState,\n routes: nextState.routes.map((route) =>\n route.key ? route : { ...route, key: `${route.name}-${nanoid()}` }\n ),\n };\n }\n\n return nextState;\n }\n\n default:\n return null;\n }\n },\n\n shouldActionChangeFocus(action: CommonNavigationAction) {\n return action.type === 'NAVIGATE';\n },\n};\n\nexport default BaseRouter;\n","import { nanoid } from 'nanoid/non-secure';\n\nimport BaseRouter from './BaseRouter';\nimport type {\n CommonNavigationAction,\n DefaultRouterOptions,\n NavigationState,\n ParamListBase,\n PartialState,\n Route,\n Router,\n} from './types';\n\nexport type TabActionType = {\n type: 'JUMP_TO';\n payload: { name: string; params?: object };\n source?: string;\n target?: string;\n};\n\nexport type BackBehavior =\n | 'initialRoute'\n | 'firstRoute'\n | 'history'\n | 'order'\n | 'none';\n\nexport type TabRouterOptions = DefaultRouterOptions & {\n backBehavior?: BackBehavior;\n};\n\nexport type TabNavigationState = Omit<\n NavigationState,\n 'history'\n> & {\n /**\n * Type of the router, in this case, it's tab.\n */\n type: 'tab';\n /**\n * List of previously visited route keys.\n */\n history: { type: 'route'; key: string }[];\n};\n\nexport type TabActionHelpers = {\n /**\n * Jump to an existing tab.\n *\n * @param name Name of the route for the tab.\n * @param [params] Params object for the route.\n */\n jumpTo>(\n ...args: undefined extends ParamList[RouteName]\n ? [screen: RouteName] | [screen: RouteName, params: ParamList[RouteName]]\n : [screen: RouteName, params: ParamList[RouteName]]\n ): void;\n};\n\nconst TYPE_ROUTE = 'route' as const;\n\nexport const TabActions = {\n jumpTo(name: string, params?: object): TabActionType {\n return { type: 'JUMP_TO', payload: { name, params } };\n },\n};\n\nconst getRouteHistory = (\n routes: Route[],\n index: number,\n backBehavior: BackBehavior,\n initialRouteName: string | undefined\n) => {\n const history = [{ type: TYPE_ROUTE, key: routes[index].key }];\n let initialRouteIndex;\n\n switch (backBehavior) {\n case 'order':\n for (let i = index; i > 0; i--) {\n history.unshift({ type: TYPE_ROUTE, key: routes[i - 1].key });\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(\n (route) => route.name === initialRouteName\n );\n initialRouteIndex = initialRouteIndex === -1 ? 0 : initialRouteIndex;\n\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\n return history;\n};\n\nconst changeIndex = (\n state: TabNavigationState,\n index: number,\n backBehavior: BackBehavior,\n initialRouteName: string | undefined\n) => {\n let history;\n\n if (backBehavior === 'history') {\n const currentKey = state.routes[index].key;\n\n history = state.history\n .filter((it) => (it.type === 'route' ? it.key !== currentKey : false))\n .concat({ type: TYPE_ROUTE, key: currentKey });\n } else {\n history = getRouteHistory(\n state.routes,\n index,\n backBehavior,\n initialRouteName\n );\n }\n\n return {\n ...state,\n index,\n history,\n };\n};\n\nexport default function TabRouter({\n initialRouteName,\n backBehavior = 'firstRoute',\n}: TabRouterOptions) {\n const router: Router<\n TabNavigationState,\n TabActionType | CommonNavigationAction\n > = {\n ...BaseRouter,\n\n type: 'tab',\n\n getInitialState({ routeNames, routeParamList }) {\n const index =\n initialRouteName !== undefined && routeNames.includes(initialRouteName)\n ? routeNames.indexOf(initialRouteName)\n : 0;\n\n const routes = routeNames.map((name) => ({\n name,\n key: `${name}-${nanoid()}`,\n params: routeParamList[name],\n }));\n\n const history = getRouteHistory(\n routes,\n index,\n backBehavior,\n initialRouteName\n );\n\n return {\n stale: false,\n type: 'tab',\n key: `tab-${nanoid()}`,\n index,\n routeNames,\n history,\n routes,\n };\n },\n\n getRehydratedState(partialState, { routeNames, routeParamList }) {\n let state = partialState;\n\n if (state.stale === false) {\n return state;\n }\n\n const routes = routeNames.map((name) => {\n const route = (\n state as PartialState>\n ).routes.find((r) => r.name === name);\n\n return {\n ...route,\n name,\n key:\n route && route.name === name && route.key\n ? route.key\n : `${name}-${nanoid()}`,\n params:\n routeParamList[name] !== undefined\n ? {\n ...routeParamList[name],\n ...(route ? route.params : undefined),\n }\n : route\n ? route.params\n : undefined,\n } as Route;\n });\n\n const index = Math.min(\n Math.max(routeNames.indexOf(state.routes[state?.index ?? 0]?.name), 0),\n routes.length - 1\n );\n\n const history =\n state.history?.filter((it) => routes.find((r) => r.key === it.key)) ??\n [];\n\n return changeIndex(\n {\n stale: false,\n type: 'tab',\n key: `tab-${nanoid()}`,\n index,\n routeNames,\n history,\n routes,\n },\n index,\n backBehavior,\n initialRouteName\n );\n },\n\n getStateForRouteNamesChange(\n state,\n { routeNames, routeParamList, routeKeyChanges }\n ) {\n const routes = routeNames.map(\n (name) =>\n state.routes.find(\n (r) => r.name === name && !routeKeyChanges.includes(r.name)\n ) || {\n name,\n key: `${name}-${nanoid()}`,\n params: routeParamList[name],\n }\n );\n\n const index = Math.max(\n 0,\n routeNames.indexOf(state.routes[state.index].name)\n );\n\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 );\n\n if (!history.length) {\n history = getRouteHistory(\n routes,\n index,\n backBehavior,\n initialRouteName\n );\n }\n\n return {\n ...state,\n history,\n routeNames,\n routes,\n index,\n };\n },\n\n getStateForRouteFocus(state, key) {\n const index = state.routes.findIndex((r) => r.key === key);\n\n if (index === -1 || index === state.index) {\n return state;\n }\n\n return changeIndex(state, index, backBehavior, initialRouteName);\n },\n\n getStateForAction(state, action, { routeParamList, routeGetIdList }) {\n switch (action.type) {\n case 'JUMP_TO':\n case 'NAVIGATE': {\n let index = -1;\n\n if (action.type === 'NAVIGATE' && action.payload.key) {\n index = state.routes.findIndex(\n (route) => route.key === action.payload.key\n );\n } else {\n index = state.routes.findIndex(\n (route) => route.name === action.payload.name\n );\n }\n\n if (index === -1) {\n return null;\n }\n\n return changeIndex(\n {\n ...state,\n routes: state.routes.map((route, i) => {\n if (i !== index) {\n return route;\n }\n\n const getId = routeGetIdList[route.name];\n\n const currentId = getId?.({ params: route.params });\n const nextId = getId?.({ params: action.payload.params });\n\n const key =\n currentId === nextId\n ? route.key\n : `${route.name}-${nanoid()}`;\n\n let params;\n\n if (\n action.type === 'NAVIGATE' &&\n action.payload.merge &&\n currentId === nextId\n ) {\n params =\n action.payload.params !== undefined ||\n routeParamList[route.name] !== undefined\n ? {\n ...routeParamList[route.name],\n ...route.params,\n ...action.payload.params,\n }\n : route.params;\n } else {\n params =\n routeParamList[route.name] !== undefined\n ? {\n ...routeParamList[route.name],\n ...action.payload.params,\n }\n : action.payload.params;\n }\n\n const path =\n action.type === 'NAVIGATE' && action.payload.path != null\n ? action.payload.path\n : route.path;\n\n return params !== route.params || path !== route.path\n ? { ...route, key, path, params }\n : route;\n }),\n },\n index,\n backBehavior,\n initialRouteName\n );\n }\n\n case 'GO_BACK': {\n if (state.history.length === 1) {\n return null;\n }\n\n const previousKey = state.history[state.history.length - 2].key;\n const index = state.routes.findIndex(\n (route) => route.key === previousKey\n );\n\n if (index === -1) {\n return null;\n }\n\n return {\n ...state,\n history: state.history.slice(0, -1),\n index,\n };\n }\n\n default:\n return BaseRouter.getStateForAction(state, action);\n }\n },\n\n shouldActionChangeFocus(action) {\n return action.type === 'NAVIGATE';\n },\n\n actionCreators: TabActions,\n };\n\n return router;\n}\n","import { nanoid } from 'nanoid/non-secure';\n\nimport TabRouter, {\n TabActionHelpers,\n TabActions,\n TabActionType,\n TabNavigationState,\n TabRouterOptions,\n} from './TabRouter';\nimport type {\n CommonNavigationAction,\n ParamListBase,\n PartialState,\n Router,\n} from './types';\nexport type DrawerStatus = 'open' | 'closed';\n\nexport type DrawerActionType =\n | TabActionType\n | {\n type: 'OPEN_DRAWER' | 'CLOSE_DRAWER' | 'TOGGLE_DRAWER';\n source?: string;\n target?: string;\n };\n\nexport type DrawerRouterOptions = TabRouterOptions & {\n defaultStatus?: DrawerStatus;\n};\n\nexport type DrawerNavigationState = Omit<\n TabNavigationState,\n 'type' | 'history'\n> & {\n /**\n * Type of the router, in this case, it's drawer.\n */\n type: 'drawer';\n /**\n * Default status of the drawer.\n */\n default: DrawerStatus;\n /**\n * List of previously visited route keys and drawer open status.\n */\n history: (\n | { type: 'route'; key: string }\n | { type: 'drawer'; status: DrawerStatus }\n )[];\n};\n\nexport type DrawerActionHelpers =\n TabActionHelpers & {\n /**\n * Open the drawer sidebar.\n */\n openDrawer(): void;\n\n /**\n * Close the drawer sidebar.\n */\n closeDrawer(): void;\n\n /**\n * Open the drawer sidebar if closed, or close if opened.\n */\n toggleDrawer(): void;\n };\n\nexport const DrawerActions = {\n ...TabActions,\n openDrawer(): DrawerActionType {\n return { type: 'OPEN_DRAWER' };\n },\n closeDrawer(): DrawerActionType {\n return { type: 'CLOSE_DRAWER' };\n },\n toggleDrawer(): DrawerActionType {\n return { type: 'TOGGLE_DRAWER' };\n },\n};\n\nexport default function DrawerRouter({\n defaultStatus = 'closed',\n ...rest\n}: DrawerRouterOptions): Router<\n DrawerNavigationState,\n DrawerActionType | CommonNavigationAction\n> {\n const router = TabRouter(rest) as unknown as Router<\n DrawerNavigationState,\n TabActionType | CommonNavigationAction\n >;\n\n const isDrawerInHistory = (\n state:\n | DrawerNavigationState\n | PartialState>\n ) => Boolean(state.history?.some((it) => it.type === 'drawer'));\n\n const addDrawerToHistory = (\n state: DrawerNavigationState\n ): DrawerNavigationState => {\n if (isDrawerInHistory(state)) {\n return state;\n }\n\n return {\n ...state,\n history: [\n ...state.history,\n {\n type: 'drawer',\n status: defaultStatus === 'open' ? 'closed' : 'open',\n },\n ],\n };\n };\n\n const removeDrawerFromHistory = (\n state: DrawerNavigationState\n ): DrawerNavigationState => {\n if (!isDrawerInHistory(state)) {\n return state;\n }\n\n return {\n ...state,\n history: state.history.filter((it) => it.type !== 'drawer'),\n };\n };\n\n const openDrawer = (\n state: DrawerNavigationState\n ): DrawerNavigationState => {\n if (defaultStatus === 'open') {\n return removeDrawerFromHistory(state);\n }\n\n return addDrawerToHistory(state);\n };\n\n const closeDrawer = (\n state: DrawerNavigationState\n ): DrawerNavigationState => {\n if (defaultStatus === 'open') {\n return addDrawerToHistory(state);\n }\n\n return removeDrawerFromHistory(state);\n };\n\n return {\n ...router,\n\n type: 'drawer',\n\n getInitialState({ routeNames, routeParamList, routeGetIdList }) {\n const state = router.getInitialState({\n routeNames,\n routeParamList,\n routeGetIdList,\n });\n\n return {\n ...state,\n default: defaultStatus,\n stale: false,\n type: 'drawer',\n key: `drawer-${nanoid()}`,\n };\n },\n\n getRehydratedState(\n partialState,\n { routeNames, routeParamList, routeGetIdList }\n ) {\n if (partialState.stale === false) {\n return partialState;\n }\n\n let state = router.getRehydratedState(partialState, {\n routeNames,\n routeParamList,\n routeGetIdList,\n });\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\n return {\n ...state,\n default: defaultStatus,\n type: 'drawer',\n key: `drawer-${nanoid()}`,\n };\n },\n\n getStateForRouteFocus(state, key) {\n const result = router.getStateForRouteFocus(state, key);\n\n return closeDrawer(result);\n },\n\n getStateForAction(state, action, options) {\n switch (action.type) {\n case 'OPEN_DRAWER':\n return openDrawer(state);\n\n case 'CLOSE_DRAWER':\n return closeDrawer(state);\n\n case 'TOGGLE_DRAWER':\n if (isDrawerInHistory(state)) {\n return removeDrawerFromHistory(state);\n }\n\n return addDrawerToHistory(state);\n\n case 'JUMP_TO':\n case 'NAVIGATE': {\n const result = router.getStateForAction(state, action, options);\n\n if (result != null && result.index !== state.index) {\n return closeDrawer(result as DrawerNavigationState);\n }\n\n return result;\n }\n\n case 'GO_BACK':\n if (isDrawerInHistory(state)) {\n return removeDrawerFromHistory(state);\n }\n\n return router.getStateForAction(state, action, options);\n\n default:\n return router.getStateForAction(state, action, options);\n }\n },\n\n actionCreators: DrawerActions,\n };\n}\n","import { nanoid } from 'nanoid/non-secure';\n\nimport BaseRouter from './BaseRouter';\nimport type {\n CommonNavigationAction,\n DefaultRouterOptions,\n NavigationState,\n ParamListBase,\n Route,\n Router,\n} from './types';\n\nexport type StackActionType =\n | {\n type: 'REPLACE';\n payload: { name: string; key?: string | undefined; params?: object };\n source?: string;\n target?: string;\n }\n | {\n type: 'PUSH';\n payload: { name: string; params?: object };\n source?: string;\n target?: string;\n }\n | {\n type: 'POP';\n payload: { count: number };\n source?: string;\n target?: string;\n }\n | {\n type: 'POP_TO_TOP';\n source?: string;\n target?: string;\n };\n\nexport type StackRouterOptions = DefaultRouterOptions;\n\nexport type StackNavigationState =\n NavigationState & {\n /**\n * Type of the router, in this case, it's stack.\n */\n type: 'stack';\n };\n\nexport type StackActionHelpers = {\n /**\n * Replace the current route with a new one.\n *\n * @param name Route name of the new route.\n * @param [params] Params object for the new route.\n */\n replace(\n ...args: undefined extends ParamList[RouteName]\n ? [screen: RouteName] | [screen: RouteName, params: ParamList[RouteName]]\n : [screen: RouteName, params: ParamList[RouteName]]\n ): void;\n\n /**\n * Push a new screen onto the stack.\n *\n * @param name Name of the route for the tab.\n * @param [params] Params object for the route.\n */\n push(\n ...args: undefined extends ParamList[RouteName]\n ? [screen: RouteName] | [screen: RouteName, params: ParamList[RouteName]]\n : [screen: RouteName, params: ParamList[RouteName]]\n ): void;\n\n /**\n * Pop a screen from the stack.\n */\n pop(count?: number): void;\n\n /**\n * Pop to the first route in the stack, dismissing all other screens.\n */\n popToTop(): void;\n};\n\nexport const StackActions = {\n replace(name: string, params?: object): StackActionType {\n return { type: 'REPLACE', payload: { name, params } };\n },\n push(name: string, params?: object): StackActionType {\n return { type: 'PUSH', payload: { name, params } };\n },\n pop(count: number = 1): StackActionType {\n return { type: 'POP', payload: { count } };\n },\n popToTop(): StackActionType {\n return { type: 'POP_TO_TOP' };\n },\n};\n\nexport default function StackRouter(options: StackRouterOptions) {\n const router: Router<\n StackNavigationState,\n CommonNavigationAction | StackActionType\n > = {\n ...BaseRouter,\n\n type: 'stack',\n\n getInitialState({ routeNames, routeParamList }) {\n const initialRouteName =\n options.initialRouteName !== undefined &&\n routeNames.includes(options.initialRouteName)\n ? options.initialRouteName\n : routeNames[0];\n\n return {\n stale: false,\n type: 'stack',\n key: `stack-${nanoid()}`,\n index: 0,\n routeNames,\n routes: [\n {\n key: `${initialRouteName}-${nanoid()}`,\n name: initialRouteName,\n params: routeParamList[initialRouteName],\n },\n ],\n };\n },\n\n getRehydratedState(partialState, { routeNames, routeParamList }) {\n let state = partialState;\n\n if (state.stale === false) {\n return state;\n }\n\n const routes = state.routes\n .filter((route) => routeNames.includes(route.name))\n .map(\n (route) =>\n ({\n ...route,\n key: route.key || `${route.name}-${nanoid()}`,\n params:\n routeParamList[route.name] !== undefined\n ? {\n ...routeParamList[route.name],\n ...route.params,\n }\n : route.params,\n } as Route)\n );\n\n if (routes.length === 0) {\n const initialRouteName =\n options.initialRouteName !== undefined\n ? options.initialRouteName\n : routeNames[0];\n\n routes.push({\n key: `${initialRouteName}-${nanoid()}`,\n name: initialRouteName,\n params: routeParamList[initialRouteName],\n });\n }\n\n return {\n stale: false,\n type: 'stack',\n key: `stack-${nanoid()}`,\n index: routes.length - 1,\n routeNames,\n routes,\n };\n },\n\n getStateForRouteNamesChange(\n state,\n { routeNames, routeParamList, routeKeyChanges }\n ) {\n const routes = state.routes.filter(\n (route) =>\n routeNames.includes(route.name) &&\n !routeKeyChanges.includes(route.name)\n );\n\n if (routes.length === 0) {\n const initialRouteName =\n options.initialRouteName !== undefined &&\n routeNames.includes(options.initialRouteName)\n ? options.initialRouteName\n : routeNames[0];\n\n routes.push({\n key: `${initialRouteName}-${nanoid()}`,\n name: initialRouteName,\n params: routeParamList[initialRouteName],\n });\n }\n\n return {\n ...state,\n routeNames,\n routes,\n index: Math.min(state.index, routes.length - 1),\n };\n },\n\n getStateForRouteFocus(state, key) {\n const index = state.routes.findIndex((r) => r.key === key);\n\n if (index === -1 || index === state.index) {\n return state;\n }\n\n return {\n ...state,\n index,\n routes: state.routes.slice(0, index + 1),\n };\n },\n\n getStateForAction(state, action, options) {\n const { routeParamList } = options;\n\n switch (action.type) {\n case 'REPLACE': {\n const index =\n action.target === state.key && action.source\n ? state.routes.findIndex((r) => r.key === action.source)\n : state.index;\n\n if (index === -1) {\n return null;\n }\n\n const { name, key, params } = action.payload;\n\n if (!state.routeNames.includes(name)) {\n return null;\n }\n\n return {\n ...state,\n routes: state.routes.map((route, i) =>\n i === index\n ? {\n key: key !== undefined ? key : `${name}-${nanoid()}`,\n name,\n params:\n routeParamList[name] !== undefined\n ? {\n ...routeParamList[name],\n ...params,\n }\n : params,\n }\n : route\n ),\n };\n }\n\n case 'PUSH':\n if (state.routeNames.includes(action.payload.name)) {\n const getId = options.routeGetIdList[action.payload.name];\n const id = getId?.({ params: action.payload.params });\n\n const route = id\n ? state.routes.find(\n (route) =>\n route.name === action.payload.name &&\n id === getId?.({ params: route.params })\n )\n : undefined;\n\n let routes: Route[];\n\n if (route) {\n routes = state.routes.filter((r) => r.key !== route.key);\n routes.push({\n ...route,\n params:\n routeParamList[action.payload.name] !== undefined\n ? {\n ...routeParamList[action.payload.name],\n ...action.payload.params,\n }\n : action.payload.params,\n });\n } else {\n routes = [\n ...state.routes,\n {\n key: `${action.payload.name}-${nanoid()}`,\n name: action.payload.name,\n params:\n routeParamList[action.payload.name] !== undefined\n ? {\n ...routeParamList[action.payload.name],\n ...action.payload.params,\n }\n : action.payload.params,\n },\n ];\n }\n\n return {\n ...state,\n index: routes.length - 1,\n routes,\n };\n }\n\n return null;\n\n case 'POP': {\n const index =\n action.target === state.key && action.source\n ? state.routes.findIndex((r) => r.key === action.source)\n : state.index;\n\n if (index > 0) {\n const count = Math.max(index - action.payload.count + 1, 1);\n const routes = state.routes\n .slice(0, count)\n .concat(state.routes.slice(index + 1));\n\n return {\n ...state,\n index: routes.length - 1,\n routes,\n };\n }\n\n return null;\n }\n\n case 'POP_TO_TOP':\n return router.getStateForAction(\n state,\n {\n type: 'POP',\n payload: { count: state.routes.length - 1 },\n },\n options\n );\n\n case 'NAVIGATE':\n if (\n action.payload.name !== undefined &&\n !state.routeNames.includes(action.payload.name)\n ) {\n return null;\n }\n\n if (action.payload.key || action.payload.name) {\n // If the route already exists, navigate to that\n let index = -1;\n\n const getId =\n // `getId` and `key` can't be used together\n action.payload.key === undefined &&\n action.payload.name !== undefined\n ? options.routeGetIdList[action.payload.name]\n : undefined;\n const id = getId?.({ params: action.payload.params });\n\n if (id) {\n index = state.routes.findIndex(\n (route) =>\n route.name === action.payload.name &&\n id === getId?.({ params: route.params })\n );\n } else if (\n (state.routes[state.index].name === action.payload.name &&\n action.payload.key === undefined) ||\n state.routes[state.index].key === action.payload.key\n ) {\n index = state.index;\n } else {\n for (let i = state.routes.length - 1; i >= 0; i--) {\n if (\n (state.routes[i].name === action.payload.name &&\n action.payload.key === undefined) ||\n state.routes[i].key === action.payload.key\n ) {\n index = i;\n break;\n }\n }\n }\n\n if (\n index === -1 &&\n action.payload.key &&\n action.payload.name === undefined\n ) {\n return null;\n }\n\n if (index === -1 && action.payload.name !== undefined) {\n const routes = [\n ...state.routes,\n {\n key:\n action.payload.key ?? `${action.payload.name}-${nanoid()}`,\n name: action.payload.name,\n path: action.payload.path,\n params:\n routeParamList[action.payload.name] !== undefined\n ? {\n ...routeParamList[action.payload.name],\n ...action.payload.params,\n }\n : action.payload.params,\n },\n ];\n\n return {\n ...state,\n routes,\n index: routes.length - 1,\n };\n }\n\n const route = state.routes[index];\n\n let params;\n\n if (action.payload.merge) {\n params =\n action.payload.params !== undefined ||\n routeParamList[route.name] !== undefined\n ? {\n ...routeParamList[route.name],\n ...route.params,\n ...action.payload.params,\n }\n : route.params;\n } else {\n params =\n routeParamList[route.name] !== undefined\n ? {\n ...routeParamList[route.name],\n ...action.payload.params,\n }\n : action.payload.params;\n }\n\n return {\n ...state,\n index,\n routes: [\n ...state.routes.slice(0, index),\n params !== route.params ||\n (action.payload.path && action.payload.path !== route.path)\n ? {\n ...route,\n path: action.payload.path ?? route.path,\n params,\n }\n : state.routes[index],\n ],\n };\n }\n\n return null;\n\n case 'GO_BACK':\n if (state.index > 0) {\n return router.getStateForAction(\n state,\n {\n type: 'POP',\n payload: { count: 1 },\n target: action.target,\n source: action.source,\n },\n options\n );\n }\n\n return null;\n\n default:\n return BaseRouter.getStateForAction(state, action);\n }\n },\n\n actionCreators: StackActions,\n };\n\n return router;\n}\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'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","import type { ParamListBase } from '@react-navigation/core';\nimport * as React from 'react';\n\nimport type { LinkingOptions } from './types';\n\nconst LinkingContext = React.createContext<{\n options: LinkingOptions | undefined;\n}>({ options: undefined });\n\nLinkingContext.displayName = 'LinkingContext';\n\nexport default LinkingContext;\n","import * as React from 'react';\n\nimport type { Theme } from '../types';\nimport ThemeContext from './ThemeContext';\n\ntype Props = {\n value: Theme;\n children: React.ReactNode;\n};\n\nexport default function ThemeProvider({ value, children }: Props) {\n return (\n {children}\n );\n}\n","import type { NavigationState } from '@react-navigation/core';\nimport { nanoid } from 'nanoid/non-secure';\n\ntype HistoryRecord = {\n // Unique identifier for this record to match it with window.history.state\n id: string;\n // Navigation state object for the history entry\n state: NavigationState;\n // Path of the history entry\n path: string;\n};\n\nexport default function createMemoryHistory() {\n let index = 0;\n let items: HistoryRecord[] = [];\n\n // Pending callbacks for `history.go(n)`\n // We might modify the callback stored if it was interrupted, so we have a ref to identify it\n const pending: { ref: unknown; cb: (interrupted?: boolean) => void }[] = [];\n\n const interrupt = () => {\n // If another history operation was performed we need to interrupt existing ones\n // This makes sure that calls such as `history.replace` after `history.go` don't happen\n // Since otherwise it won't be correct if something else has changed\n pending.forEach((it) => {\n const cb = it.cb;\n it.cb = () => cb(true);\n });\n };\n\n const history = {\n get index(): number {\n // We store an id in the state instead of an index\n // Index could get out of sync with in-memory values if page reloads\n const id = window.history.state?.id;\n\n if (id) {\n const index = items.findIndex((item) => item.id === id);\n\n return index > -1 ? index : 0;\n }\n\n return 0;\n },\n\n get(index: number) {\n return items[index];\n },\n\n backIndex({ path }: { path: string }) {\n // We need to find the index from the element before current to get closest path to go back to\n for (let i = index - 1; i >= 0; i--) {\n const item = items[i];\n\n if (item.path === path) {\n return i;\n }\n }\n\n return -1;\n },\n\n push({ path, state }: { path: string; state: NavigationState }) {\n interrupt();\n\n const id = nanoid();\n\n // When a new entry is pushed, all the existing entries after index will be inaccessible\n // So we remove any existing entries after the current index to clean them up\n items = items.slice(0, index + 1);\n\n items.push({ path, state, id });\n index = items.length - 1;\n\n // We pass empty string for title because it's ignored in all browsers except safari\n // We don't store state object in history.state because:\n // - browsers have limits on how big it can be, and we don't control the size\n // - while not recommended, there could be non-serializable data in state\n window.history.pushState({ id }, '', path);\n },\n\n replace({ path, state }: { path: string; state: NavigationState }) {\n interrupt();\n\n const id = window.history.state?.id ?? nanoid();\n\n // 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\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 = [{ path: pathWithHash, state, id }];\n index = 0;\n } else {\n if (items[index].path === path) {\n pathWithHash = pathWithHash + location.hash;\n }\n items[index] = { path, state, id };\n }\n\n window.history.replaceState({ id }, '', pathWithHash);\n },\n\n // `history.go(n)` is asynchronous, there are couple of things to keep in mind:\n // - it won't do anything if we can't go `n` steps, the `popstate` event won't fire.\n // - each `history.go(n)` call will trigger a separate `popstate` event with correct location.\n // - the `popstate` event fires before the next frame after calling `history.go(n)`.\n // This method differs from `history.go(n)` in the sense that it'll go back as many steps it can.\n go(n: number) {\n interrupt();\n\n // 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\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?: boolean) => {\n clearTimeout(timer);\n\n if (interrupted) {\n reject(new Error('History was changed during navigation.'));\n return;\n }\n\n // There seems to be a bug in Chrome regarding updating the title\n // If we set a title just before calling `history.go`, the title gets lost\n // However the value of `document.title` is still what we set it to\n // It's just not displayed in the tab bar\n // To update the tab bar, we need to reset the title to something else first (e.g. '')\n // And set the title to what it was before so it gets applied\n // It won't work without setting it to empty string coz otherwise title isn't changing\n // Which means that the browser won't do anything after setting the title\n const { title } = window.document;\n\n window.document.title = '';\n window.document.title = title;\n\n resolve();\n };\n\n pending.push({ ref: done, cb: done });\n\n // If navigation didn't happen within 100ms, assume that it won't happen\n // This may not be accurate, but hopefully it won't take so much time\n // In Chrome, navigation seems to happen instantly in next microtask\n // But on Firefox, it seems to take much longer, around 50ms from our testing\n // We're using a hacky timeout since there doesn't seem to be way to know for sure\n const timer = setTimeout(() => {\n const index = pending.findIndex((it) => it.ref === done);\n\n if (index > -1) {\n pending[index].cb();\n pending.splice(index, 1);\n }\n }, 100);\n\n const onPopState = () => {\n const id = window.history.state?.id;\n const currentIndex = items.findIndex((item) => item.id === id);\n\n // Fix createMemoryHistory.index variable's value\n // as it may go out of sync when navigating in the browser.\n index = Math.max(currentIndex, 0);\n\n const last = pending.pop();\n\n window.removeEventListener('popstate', onPopState);\n last?.cb();\n };\n\n window.addEventListener('popstate', onPopState);\n window.history.go(n);\n });\n },\n\n // The `popstate` event is triggered when history changes, except `pushState` and `replaceState`\n // If we call `history.go(n)` ourselves, we don't want it to trigger the listener\n // Here we normalize it so that only external changes (e.g. user pressing back/forward) trigger the listener\n listen(listener: () => void) {\n const onPopState = () => {\n if (pending.length) {\n // This was triggered by `history.go(n)`, we shouldn't call the listener\n return;\n }\n\n listener();\n };\n\n window.addEventListener('popstate', onPopState);\n\n return () => window.removeEventListener('popstate', onPopState);\n },\n };\n\n return history;\n}\n","import * as React from 'react';\n\nexport type ServerContextType = {\n location?: {\n pathname: string;\n search: string;\n };\n};\n\nconst ServerContext = React.createContext(\n undefined\n);\n\nexport default ServerContext;\n","import {\n findFocusedRoute,\n getActionFromState as getActionFromStateDefault,\n getPathFromState as getPathFromStateDefault,\n getStateFromPath as getStateFromPathDefault,\n NavigationContainerRef,\n NavigationState,\n ParamListBase,\n} from '@react-navigation/core';\nimport isEqual from 'fast-deep-equal';\nimport * as React from 'react';\n\nimport createMemoryHistory from './createMemoryHistory';\nimport ServerContext from './ServerContext';\nimport type { LinkingOptions } from './types';\n\ntype ResultState = ReturnType;\n\n/**\n * Find the matching navigation state that changed between 2 navigation states\n * e.g.: a -> b -> c -> d and a -> b -> c -> e -> f, if history in b changed, b is the matching state\n */\nconst findMatchingState = (\n a: T | undefined,\n b: T | undefined\n): [T | undefined, T | undefined] => {\n if (a === undefined || b === undefined || a.key !== b.key) {\n return [undefined, undefined];\n }\n\n // Tab and drawer will have `history` property, but stack will have history in `routes`\n const aHistoryLength = a.history ? a.history.length : a.routes.length;\n const bHistoryLength = b.history ? b.history.length : b.routes.length;\n\n const aRoute = a.routes[a.index];\n const bRoute = b.routes[b.index];\n\n const aChildState = aRoute.state as T | undefined;\n const bChildState = bRoute.state as T | undefined;\n\n // Stop here if this is the state object that changed:\n // - history length is different\n // - focused routes are different\n // - one of them doesn't have child state\n // - child state keys are different\n if (\n aHistoryLength !== bHistoryLength ||\n aRoute.key !== bRoute.key ||\n aChildState === undefined ||\n bChildState === undefined ||\n aChildState.key !== bChildState.key\n ) {\n return [a, b];\n }\n\n return findMatchingState(aChildState, bChildState);\n};\n\n/**\n * Run async function in series as it's called.\n */\nexport const series = (cb: () => Promise) => {\n let queue = Promise.resolve();\n const callback = () => {\n queue = queue.then(cb);\n };\n return callback;\n};\n\nlet linkingHandlers: Symbol[] = [];\n\ntype Options = LinkingOptions & {\n independent?: boolean;\n};\n\nexport default function useLinking(\n ref: React.RefObject>,\n {\n independent,\n enabled = true,\n config,\n getStateFromPath = getStateFromPathDefault,\n getPathFromState = getPathFromStateDefault,\n getActionFromState = getActionFromStateDefault,\n }: Options\n) {\n React.useEffect(() => {\n if (process.env.NODE_ENV === 'production') {\n return undefined;\n }\n\n if (independent) {\n return undefined;\n }\n\n if (enabled !== false && linkingHandlers.length) {\n console.error(\n [\n 'Looks like you have configured linking in multiple places. This is likely an error since deep links should only be handled in one place to avoid conflicts. Make sure that:',\n \"- You don't have multiple NavigationContainers in the app each with 'linking' enabled\",\n '- Only a single instance of the root component is rendered',\n ]\n .join('\\n')\n .trim()\n );\n }\n\n const handler = Symbol();\n\n if (enabled !== false) {\n linkingHandlers.push(handler);\n }\n\n return () => {\n const index = linkingHandlers.indexOf(handler);\n\n if (index > -1) {\n linkingHandlers.splice(index, 1);\n }\n };\n }, [enabled, independent]);\n\n const [history] = React.useState(createMemoryHistory);\n\n // We store these options in ref to avoid re-creating getInitialState and re-subscribing listeners\n // This lets user avoid wrapping the items in `React.useCallback` or `React.useMemo`\n // Not re-creating `getInitialState` is important coz it makes it easier for the user to use in an effect\n const enabledRef = React.useRef(enabled);\n const configRef = React.useRef(config);\n const getStateFromPathRef = React.useRef(getStateFromPath);\n const getPathFromStateRef = React.useRef(getPathFromState);\n const getActionFromStateRef = React.useRef(getActionFromState);\n\n React.useEffect(() => {\n enabledRef.current = enabled;\n configRef.current = config;\n getStateFromPathRef.current = getStateFromPath;\n getPathFromStateRef.current = getPathFromState;\n getActionFromStateRef.current = getActionFromState;\n });\n\n const server = React.useContext(ServerContext);\n\n const getInitialState = React.useCallback(() => {\n let value: ResultState | undefined;\n\n if (enabledRef.current) {\n const location =\n server?.location ??\n (typeof window !== 'undefined' ? window.location : undefined);\n\n const path = location ? location.pathname + location.search : undefined;\n\n if (path) {\n value = getStateFromPathRef.current(path, configRef.current);\n }\n }\n\n const thenable = {\n then(onfulfilled?: (state: ResultState | undefined) => void) {\n return Promise.resolve(onfulfilled ? onfulfilled(value) : value);\n },\n catch() {\n return thenable;\n },\n };\n\n return thenable as PromiseLike;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const previousIndexRef = React.useRef(undefined);\n const previousStateRef = React.useRef(undefined);\n const pendingPopStatePathRef = React.useRef(undefined);\n\n React.useEffect(() => {\n previousIndexRef.current = history.index;\n\n return history.listen(() => {\n const navigation = ref.current;\n\n if (!navigation || !enabled) {\n return;\n }\n\n const { location } = window;\n\n const path = location.pathname + location.search;\n const index = history.index;\n\n const previousIndex = previousIndexRef.current ?? 0;\n\n previousIndexRef.current = index;\n pendingPopStatePathRef.current = path;\n\n // When browser back/forward is clicked, we first need to check if state object for this index exists\n // If it does we'll reset to that state object\n // Otherwise, we'll handle it like a regular deep link\n const record = history.get(index);\n\n if (record?.path === path && record?.state) {\n navigation.resetRoot(record.state);\n return;\n }\n\n const state = getStateFromPathRef.current(path, configRef.current);\n\n // We should only dispatch an action when going forward\n // Otherwise the action will likely add items to history, which would mess things up\n if (state) {\n // Make sure that the routes in the state exist in the root navigator\n // Otherwise there's an error in the linking configuration\n const rootState = navigation.getRootState();\n\n if (state.routes.some((r) => !rootState?.routeNames.includes(r.name))) {\n console.warn(\n \"The navigation state parsed from the URL contains routes not present in the root navigator. This usually means that the linking configuration doesn't match the navigation structure. See https://reactnavigation.org/docs/configuring-links for more details on how to specify a linking configuration.\"\n );\n return;\n }\n\n if (index > previousIndex) {\n const action = getActionFromStateRef.current(\n state,\n configRef.current\n );\n\n if (action !== undefined) {\n try {\n navigation.dispatch(action);\n } catch (e) {\n // Ignore any errors from deep linking.\n // This could happen in case of malformed links, navigation object not being initialized etc.\n console.warn(\n `An error occurred when trying to handle the link '${path}': ${\n typeof e === 'object' && e != null && 'message' in e\n ? e.message\n : e\n }`\n );\n }\n } else {\n navigation.resetRoot(state);\n }\n } else {\n navigation.resetRoot(state);\n }\n } else {\n // if current path didn't return any state, we should revert to initial state\n navigation.resetRoot(state);\n }\n });\n }, [enabled, history, ref]);\n\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n\n const getPathForRoute = (\n route: ReturnType,\n state: NavigationState\n ): string => {\n // If the `route` object contains a `path`, use that path as long as `route.name` and `params` still match\n // This makes sure that we preserve the original URL for wildcard routes\n if (route?.path) {\n const stateForPath = getStateFromPathRef.current(\n route.path,\n configRef.current\n );\n\n if (stateForPath) {\n const focusedRoute = findFocusedRoute(stateForPath);\n\n if (\n focusedRoute &&\n focusedRoute.name === route.name &&\n isEqual(focusedRoute.params, route.params)\n ) {\n return route.path;\n }\n }\n }\n\n return getPathFromStateRef.current(state, configRef.current);\n };\n\n if (ref.current) {\n // We need to record the current metadata on the first render if they aren't set\n // This will allow the initial state to be in the history entry\n const state = ref.current.getRootState();\n\n if (state) {\n const route = findFocusedRoute(state);\n const path = getPathForRoute(route, state);\n\n if (previousStateRef.current === undefined) {\n previousStateRef.current = state;\n }\n\n history.replace({ path, state });\n }\n }\n\n const onStateChange = async () => {\n const navigation = ref.current;\n\n if (!navigation || !enabled) {\n return;\n }\n\n const previousState = previousStateRef.current;\n const state = navigation.getRootState();\n\n // root state may not available, for example when root navigators switch inside the container\n if (!state) {\n return;\n }\n\n const pendingPath = pendingPopStatePathRef.current;\n const route = findFocusedRoute(state);\n const path = getPathForRoute(route, state);\n\n previousStateRef.current = state;\n pendingPopStatePathRef.current = undefined;\n\n // To detect the kind of state change, we need to:\n // - Find the common focused navigation state in previous and current state\n // - If only the route keys changed, compare history/routes.length to check if we go back/forward/replace\n // - If no common focused navigation state found, it's a replace\n const [previousFocusedState, focusedState] = findMatchingState(\n previousState,\n state\n );\n\n if (\n previousFocusedState &&\n focusedState &&\n // We should only handle push/pop if path changed from what was in last `popstate`\n // Otherwise it's likely a change triggered by `popstate`\n path !== pendingPath\n ) {\n const historyDelta =\n (focusedState.history\n ? focusedState.history.length\n : focusedState.routes.length) -\n (previousFocusedState.history\n ? previousFocusedState.history.length\n : previousFocusedState.routes.length);\n\n if (historyDelta > 0) {\n // If history length is increased, we should pushState\n // Note that path might not actually change here, for example, drawer open should pushState\n history.push({ path, state });\n } else if (historyDelta < 0) {\n // If history length is decreased, i.e. entries were removed, we want to go back\n\n const nextIndex = history.backIndex({ path });\n const currentIndex = history.index;\n\n try {\n if (\n nextIndex !== -1 &&\n nextIndex < currentIndex &&\n // We should only go back if the entry exists and it's less than current index\n history.get(nextIndex - currentIndex)\n ) {\n // An existing entry for this path exists and it's less than current index, go back to that\n await history.go(nextIndex - currentIndex);\n } else {\n // We couldn't find an existing entry to go back to, so we'll go back by the delta\n // This won't be correct if multiple routes were pushed in one go before\n // Usually this shouldn't happen and this is a fallback for that\n await history.go(historyDelta);\n }\n\n // Store the updated state as well as fix the path if incorrect\n history.replace({ path, state });\n } catch (e) {\n // The navigation was interrupted\n }\n } else {\n // If history length is unchanged, we want to replaceState\n history.replace({ path, state });\n }\n } else {\n // If no common navigation state was found, assume it's a replace\n // This would happen if the user did a reset/conditionally changed navigators\n history.replace({ path, state });\n }\n };\n\n // We debounce onStateChange coz we don't want multiple state changes to be handled at one time\n // This could happen since `history.go(n)` is asynchronous\n // If `pushState` or `replaceState` were called before `history.go(n)` completes, it'll mess stuff up\n return ref.current?.addListener('state', series(onStateChange));\n }, [enabled, history, ref]);\n\n return {\n getInitialState,\n };\n}\n","import * as React from 'react';\n\nexport default function useThenable(create: () => PromiseLike) {\n const [promise] = React.useState(create);\n\n let initialState: [boolean, T | undefined] = [false, undefined];\n\n // Check if our thenable is synchronous\n promise.then((result) => {\n initialState = [true, result];\n });\n\n const [state, setState] = React.useState(initialState);\n const [resolved] = state;\n\n React.useEffect(() => {\n let cancelled = false;\n\n const resolve = async () => {\n let result;\n\n try {\n result = await promise;\n } finally {\n if (!cancelled) {\n setState([true, result]);\n }\n }\n };\n\n if (!resolved) {\n resolve();\n }\n\n return () => {\n cancelled = true;\n };\n }, [promise, resolved]);\n\n return state;\n}\n","import {\n BaseNavigationContainer,\n getActionFromState,\n getPathFromState,\n getStateFromPath,\n NavigationContainerProps,\n NavigationContainerRef,\n ParamListBase,\n validatePathConfig,\n} from '@react-navigation/core';\nimport * as React from 'react';\n\nimport LinkingContext from './LinkingContext';\nimport DefaultTheme from './theming/DefaultTheme';\nimport ThemeProvider from './theming/ThemeProvider';\nimport type { DocumentTitleOptions, LinkingOptions, Theme } from './types';\nimport useBackButton from './useBackButton';\nimport useDocumentTitle from './useDocumentTitle';\nimport useLinking from './useLinking';\nimport useThenable from './useThenable';\n\ndeclare global {\n var REACT_NAVIGATION_DEVTOOLS: WeakMap<\n NavigationContainerRef,\n { readonly linking: LinkingOptions }\n >;\n}\n\nglobal.REACT_NAVIGATION_DEVTOOLS = new WeakMap();\n\ntype Props = NavigationContainerProps & {\n theme?: Theme;\n linking?: LinkingOptions;\n fallback?: React.ReactNode;\n documentTitle?: DocumentTitleOptions;\n onReady?: () => void;\n};\n\n/**\n * Container component which holds the navigation state designed for React Native apps.\n * This should be rendered at the root wrapping the whole app.\n *\n * @param props.initialState Initial state object for the navigation tree. When deep link handling is enabled, this will override deep links when specified. Make sure that you don't specify an `initialState` when there's a deep link (`Linking.getInitialURL()`).\n * @param props.onReady Callback which is called after the navigation tree mounts.\n * @param props.onStateChange Callback which is called with the latest navigation state when it changes.\n * @param props.theme Theme object for the navigators.\n * @param props.linking Options for deep linking. Deep link handling is enabled when this prop is provided, unless `linking.enabled` is `false`.\n * @param props.fallback Fallback component to render until we have finished getting initial state when linking is enabled. Defaults to `null`.\n * @param props.documentTitle Options to configure the document title on Web. Updating document title is handled by default unless `documentTitle.enabled` is `false`.\n * @param props.children Child elements to render the content.\n * @param props.ref Ref object which refers to the navigation object containing helper methods.\n */\nfunction NavigationContainerInner(\n {\n theme = DefaultTheme,\n linking,\n fallback = null,\n documentTitle,\n onReady,\n ...rest\n }: Props,\n ref?: React.Ref | null>\n) {\n const isLinkingEnabled = linking ? linking.enabled !== false : false;\n\n if (linking?.config) {\n validatePathConfig(linking.config);\n }\n\n const refContainer =\n React.useRef>(null);\n\n useBackButton(refContainer);\n useDocumentTitle(refContainer, documentTitle);\n\n const { getInitialState } = useLinking(refContainer, {\n independent: rest.independent,\n enabled: isLinkingEnabled,\n prefixes: [],\n ...linking,\n });\n\n // Add additional linking related info to the ref\n // This will be used by the devtools\n React.useEffect(() => {\n if (refContainer.current) {\n REACT_NAVIGATION_DEVTOOLS.set(refContainer.current, {\n get linking() {\n return {\n ...linking,\n enabled: isLinkingEnabled,\n prefixes: linking?.prefixes ?? [],\n getStateFromPath: linking?.getStateFromPath ?? getStateFromPath,\n getPathFromState: linking?.getPathFromState ?? getPathFromState,\n getActionFromState:\n linking?.getActionFromState ?? getActionFromState,\n };\n },\n });\n }\n });\n\n const [isResolved, initialState] = useThenable(getInitialState);\n\n React.useImperativeHandle(ref, () => refContainer.current);\n\n const linkingContext = React.useMemo(() => ({ options: linking }), [linking]);\n\n const isReady = rest.initialState != null || !isLinkingEnabled || isResolved;\n\n const onReadyRef = React.useRef(onReady);\n\n React.useEffect(() => {\n onReadyRef.current = onReady;\n });\n\n React.useEffect(() => {\n if (isReady) {\n onReadyRef.current?.();\n }\n }, [isReady]);\n\n if (!isReady) {\n // This is temporary until we have Suspense for data-fetching\n // Then the fallback will be handled by a parent `Suspense` component\n return fallback as React.ReactElement;\n }\n\n return (\n \n \n \n \n \n );\n}\n\nconst NavigationContainer = React.forwardRef(NavigationContainerInner) as <\n RootParamList extends {} = ReactNavigation.RootParamList\n>(\n props: Props & {\n ref?: React.Ref>;\n }\n) => React.ReactElement;\n\nexport default NavigationContainer;\n","import type {\n NavigationContainerRef,\n ParamListBase,\n} from '@react-navigation/core';\nimport * as React from 'react';\n\nimport type { DocumentTitleOptions } from './types';\n\n/**\n * Set the document title for the active screen\n */\nexport default function useDocumentTitle(\n ref: React.RefObject>,\n {\n enabled = true,\n formatter = (options, route) => options?.title ?? route?.name,\n }: DocumentTitleOptions = {}\n) {\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n\n const navigation = ref.current;\n\n if (navigation) {\n const title = formatter(\n navigation.getCurrentOptions(),\n navigation.getCurrentRoute()\n );\n\n document.title = title;\n }\n\n return navigation?.addListener('options', (e) => {\n const title = formatter(e.data.options, navigation?.getCurrentRoute());\n\n document.title = title;\n });\n });\n}\n","import type { Theme } from '../types';\n\nconst DefaultTheme: Theme = {\n dark: false,\n colors: {\n primary: 'rgb(0, 122, 255)',\n background: 'rgb(242, 242, 242)',\n card: 'rgb(255, 255, 255)',\n text: 'rgb(28, 28, 30)',\n border: 'rgb(216, 216, 216)',\n notification: 'rgb(255, 59, 48)',\n },\n};\n\nexport default DefaultTheme;\n","import * as React from 'react';\n\nimport type { Theme } from '../types';\nimport DefaultTheme from './DefaultTheme';\n\nconst ThemeContext = React.createContext(DefaultTheme);\n\nThemeContext.displayName = 'ThemeContext';\n\nexport default ThemeContext;\n","/* 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, type 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((event: InsetChangedEvent) => {\n const {\n nativeEvent: { frame: nextFrame, insets: nextInsets },\n } = event;\n\n setFrame((curFrame) => {\n if (\n // Backwards compat with old native code that won't send frame.\n nextFrame &&\n (nextFrame.height !== curFrame.height ||\n nextFrame.width !== curFrame.width ||\n nextFrame.x !== curFrame.x ||\n nextFrame.y !== curFrame.y)\n ) {\n return nextFrame;\n } else {\n return curFrame;\n }\n });\n\n setInsets((curInsets) => {\n if (\n !curInsets ||\n nextInsets.bottom !== curInsets.bottom ||\n nextInsets.left !== curInsets.left ||\n nextInsets.right !== curInsets.right ||\n nextInsets.top !== curInsets.top\n ) {\n return nextInsets;\n } else {\n return curInsets;\n }\n });\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 insets = React.useContext(SafeAreaInsetsContext);\n if (insets == null) {\n throw new Error(NO_INSETS_ERROR);\n }\n return insets;\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 const insets = useSafeAreaInsets();\n return ;\n });\n}\n\n/**\n * @deprecated\n */\nexport function useSafeArea(): EdgeInsets {\n return useSafeAreaInsets();\n}\n\n/**\n * @deprecated\n */\nexport const SafeAreaConsumer = SafeAreaInsetsContext.Consumer;\n\n/**\n * @deprecated\n */\nexport const SafeAreaContext = SafeAreaInsetsContext;\n","import * as React from 'react';\nimport {\n Dimensions,\n Platform,\n StyleProp,\n StyleSheet,\n View,\n ViewStyle,\n} from 'react-native';\nimport {\n initialWindowMetrics,\n type Metrics,\n SafeAreaFrameContext,\n SafeAreaInsetsContext,\n SafeAreaProvider,\n} from 'react-native-safe-area-context';\n\ntype Props = {\n children: React.ReactNode;\n style?: StyleProp;\n};\n\nconst { width = 0, height = 0 } = Dimensions.get('window');\n\n// To support SSR on web, we need to have empty insets for initial values\n// Otherwise there can be mismatch between SSR and client output\n// We also need to specify empty values to support tests environments\nconst initialMetrics =\n Platform.OS === 'web' || initialWindowMetrics == null\n ? {\n frame: { x: 0, y: 0, width, height },\n insets: { top: 0, left: 0, right: 0, bottom: 0 },\n }\n : initialWindowMetrics;\n\nexport default function SafeAreaProviderCompat({ children, style }: Props) {\n const insets = React.useContext(SafeAreaInsetsContext);\n\n if (insets) {\n // If we already have insets, don't wrap the stack in another safe area provider\n // This avoids an issue with updates at the cost of potentially incorrect values\n // https://github.com/react-navigation/react-navigation/issues/174\n return {children};\n }\n\n if (Platform.OS === 'web') {\n children = (\n \n {children}\n \n );\n }\n\n return (\n \n {children}\n \n );\n}\n\n// FIXME: On the Web, the safe area frame value doesn't update on resize\n// So we workaround this by measuring the frame on resize\nconst SafeAreaFrameProvider = ({\n initialMetrics,\n children,\n}: {\n initialMetrics: Metrics;\n children: React.ReactNode;\n}) => {\n const element = React.useRef(null);\n const [frame, setFrame] = React.useState(initialMetrics.frame);\n\n React.useEffect(() => {\n if (element.current == null) {\n return;\n }\n\n const rect = element.current.getBoundingClientRect();\n\n setFrame({\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height,\n });\n\n let timeout: NodeJS.Timeout;\n\n const observer = new ResizeObserver((entries) => {\n const entry = entries[0];\n\n if (entry) {\n const { x, y, width, height } = entry.contentRect;\n\n // Debounce the frame updates to avoid too many updates in a short time\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n setFrame({ x, y, width, height });\n }, 100);\n }\n });\n\n observer.observe(element.current);\n\n return () => {\n observer.disconnect();\n clearTimeout(timeout);\n };\n }, []);\n\n return (\n \n \n {children}\n \n );\n};\n\nSafeAreaProviderCompat.initialMetrics = initialMetrics;\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n },\n});\n","import * as React from 'react';\n\nconst contexts = '__react_navigation__elements_contexts';\n\ndeclare global {\n var __react_navigation__elements_contexts: Map>;\n}\n\n// We use a global variable to keep our contexts so that we can reuse same contexts across packages\nglobal[contexts] = global[contexts] ?? new Map>();\n\nexport default function getNamedContext(\n name: string,\n initialValue: T\n): React.Context {\n let context = global[contexts].get(name);\n\n if (context) {\n return context;\n }\n\n context = React.createContext(initialValue);\n context.displayName = name;\n\n global[contexts].set(name, context);\n\n return context;\n}\n","import getNamedContext from '../getNamedContext';\n\nconst HeaderShownContext = getNamedContext('HeaderShownContext', false);\n\nexport default HeaderShownContext;\n","import * as React from 'react';\n\nconst ModalPresentationContext = React.createContext(false);\n\nexport default ModalPresentationContext;\n","import * as React from 'react';\nimport { View } from 'react-native';\nimport type { PanGestureHandlerProperties } from 'react-native-gesture-handler';\n\nconst Dummy: any = ({ children }: { children: React.ReactNode }) => (\n <>{children}\n);\n\nexport const PanGestureHandler =\n Dummy as React.ComponentType;\n\nexport const GestureHandlerRootView = View;\n\nexport const GestureState = {\n UNDETERMINED: 0,\n FAILED: 1,\n BEGAN: 2,\n CANCELLED: 3,\n ACTIVE: 4,\n END: 5,\n};\n\nexport type { PanGestureHandlerGestureEvent } from 'react-native-gesture-handler';\n","import getNamedContext from '../getNamedContext';\n\nconst HeaderBackContext = getNamedContext<{ title: string } | undefined>(\n 'HeaderBackContext',\n undefined\n);\n\nexport default HeaderBackContext;\n","import type { HeaderOptions } from '../types';\n\nexport default function getHeaderTitle(\n options: { title?: string; headerTitle?: HeaderOptions['headerTitle'] },\n fallback: string\n): string {\n return typeof options.headerTitle === 'string'\n ? options.headerTitle\n : options.title !== undefined\n ? options.title\n : fallback;\n}\n","import { Animated, I18nManager } from 'react-native';\n\nimport type {\n StackHeaderInterpolatedStyle,\n StackHeaderInterpolationProps,\n} from '../types';\n\nconst { add } = Animated;\n\n/**\n * Standard UIKit style animation for the header where the title fades into the back button label.\n */\nexport function forUIKit({\n current,\n next,\n layouts,\n}: StackHeaderInterpolationProps): StackHeaderInterpolatedStyle {\n const defaultOffset = 100;\n const leftSpacing = 27;\n\n // The title and back button title should cross-fade to each other\n // When screen is fully open, the title should be in center, and back title should be on left\n // When screen is closing, the previous title will animate to back title's position\n // And back title will animate to title's position\n // We achieve this by calculating the offsets needed to translate title to back title's position and vice-versa\n const leftLabelOffset = layouts.leftLabel\n ? (layouts.screen.width - layouts.leftLabel.width) / 2 - leftSpacing\n : defaultOffset;\n const titleLeftOffset = layouts.title\n ? (layouts.screen.width - layouts.title.width) / 2 - leftSpacing\n : defaultOffset;\n\n // When the current title is animating to right, it is centered in the right half of screen in middle of transition\n // The back title also animates in from this position\n const rightOffset = layouts.screen.width / 4;\n\n const progress = add(\n current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp',\n }),\n next\n ? next.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp',\n })\n : 0\n );\n\n return {\n leftButtonStyle: {\n opacity: progress.interpolate({\n inputRange: [0.3, 1, 1.5],\n outputRange: [0, 1, 0],\n }),\n },\n leftLabelStyle: {\n transform: [\n {\n translateX: progress.interpolate({\n inputRange: [0, 1, 2],\n outputRange: I18nManager.getConstants().isRTL\n ? [-rightOffset, 0, leftLabelOffset]\n : [leftLabelOffset, 0, -rightOffset],\n }),\n },\n ],\n },\n rightButtonStyle: {\n opacity: progress.interpolate({\n inputRange: [0.3, 1, 1.5],\n outputRange: [0, 1, 0],\n }),\n },\n titleStyle: {\n opacity: progress.interpolate({\n inputRange: [0, 0.4, 1, 1.5],\n outputRange: [0, 0.1, 1, 0],\n }),\n transform: [\n {\n translateX: progress.interpolate({\n inputRange: [0.5, 1, 2],\n outputRange: I18nManager.getConstants().isRTL\n ? [-titleLeftOffset, 0, rightOffset]\n : [rightOffset, 0, -titleLeftOffset],\n }),\n },\n ],\n },\n backgroundStyle: {\n transform: [\n {\n translateX: progress.interpolate({\n inputRange: [0, 1, 2],\n outputRange: I18nManager.getConstants().isRTL\n ? [-layouts.screen.width, 0, layouts.screen.width]\n : [layouts.screen.width, 0, -layouts.screen.width],\n }),\n },\n ],\n },\n };\n}\n\n/**\n * Simple fade animation for the header elements.\n */\nexport function forFade({\n current,\n next,\n}: StackHeaderInterpolationProps): StackHeaderInterpolatedStyle {\n const progress = add(\n current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp',\n }),\n next\n ? next.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp',\n })\n : 0\n );\n\n const opacity = progress.interpolate({\n inputRange: [0, 1, 2],\n outputRange: [0, 1, 0],\n });\n\n return {\n leftButtonStyle: { opacity },\n rightButtonStyle: { opacity },\n titleStyle: { opacity },\n backgroundStyle: {\n opacity: progress.interpolate({\n inputRange: [0, 1, 1.9, 2],\n outputRange: [0, 1, 1, 0],\n }),\n },\n };\n}\n\n/**\n * Simple translate animation to translate the header to left.\n */\nexport function forSlideLeft({\n current,\n next,\n layouts: { screen },\n}: StackHeaderInterpolationProps): StackHeaderInterpolatedStyle {\n const progress = add(\n current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp',\n }),\n next\n ? next.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp',\n })\n : 0\n );\n\n const translateX = progress.interpolate({\n inputRange: [0, 1, 2],\n outputRange: I18nManager.getConstants().isRTL\n ? [-screen.width, 0, screen.width]\n : [screen.width, 0, -screen.width],\n });\n\n const transform = [{ translateX }];\n\n return {\n leftButtonStyle: { transform },\n rightButtonStyle: { transform },\n titleStyle: { transform },\n backgroundStyle: { transform },\n };\n}\n\n/**\n * Simple translate animation to translate the header to right.\n */\nexport function forSlideRight({\n current,\n next,\n layouts: { screen },\n}: StackHeaderInterpolationProps): StackHeaderInterpolatedStyle {\n const progress = add(\n current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp',\n }),\n next\n ? next.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp',\n })\n : 0\n );\n\n const translateX = progress.interpolate({\n inputRange: [0, 1, 2],\n outputRange: I18nManager.getConstants().isRTL\n ? [screen.width, 0, -screen.width]\n : [-screen.width, 0, screen.width],\n });\n\n const transform = [{ translateX }];\n\n return {\n leftButtonStyle: { transform },\n rightButtonStyle: { transform },\n titleStyle: { transform },\n backgroundStyle: { transform },\n };\n}\n\n/**\n * Simple translate animation to translate the header to slide up.\n */\nexport function forSlideUp({\n current,\n next,\n layouts: { header },\n}: StackHeaderInterpolationProps): StackHeaderInterpolatedStyle {\n const progress = add(\n current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp',\n }),\n next\n ? next.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp',\n })\n : 0\n );\n\n const translateY = progress.interpolate({\n inputRange: [0, 1, 2],\n outputRange: [-header.height, 0, -header.height],\n });\n\n const transform = [{ translateY }];\n\n return {\n leftButtonStyle: { transform },\n rightButtonStyle: { transform },\n titleStyle: { transform },\n backgroundStyle: { transform },\n };\n}\n\nexport function forNoAnimation(): StackHeaderInterpolatedStyle {\n return {};\n}\n","import * as React from 'react';\n\nimport ThemeContext from './ThemeContext';\n\nexport default function useTheme() {\n const theme = React.useContext(ThemeContext);\n\n return theme;\n}\n","import { useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport {\n Animated,\n Easing,\n GestureResponderEvent,\n Platform,\n Pressable,\n PressableProps,\n StyleProp,\n ViewStyle,\n} from 'react-native';\n\nexport type Props = Omit & {\n pressColor?: string;\n pressOpacity?: number;\n style?: Animated.WithAnimatedValue>;\n children: React.ReactNode;\n};\n\nconst AnimatedPressable = Animated.createAnimatedComponent(Pressable);\n\nconst ANDROID_VERSION_LOLLIPOP = 21;\nconst ANDROID_SUPPORTS_RIPPLE =\n Platform.OS === 'android' && Platform.Version >= ANDROID_VERSION_LOLLIPOP;\n\n/**\n * PlatformPressable provides an abstraction on top of Pressable to handle platform differences.\n */\nexport default function PlatformPressable({\n onPressIn,\n onPressOut,\n android_ripple,\n pressColor,\n pressOpacity = 0.3,\n style,\n ...rest\n}: Props) {\n const { dark } = useTheme();\n const [opacity] = React.useState(() => new Animated.Value(1));\n\n const animateTo = (toValue: number, duration: number) => {\n if (ANDROID_SUPPORTS_RIPPLE) {\n return;\n }\n\n Animated.timing(opacity, {\n toValue,\n duration,\n easing: Easing.inOut(Easing.quad),\n useNativeDriver: true,\n }).start();\n };\n\n const handlePressIn = (e: GestureResponderEvent) => {\n animateTo(pressOpacity, 0);\n onPressIn?.(e);\n };\n\n const handlePressOut = (e: GestureResponderEvent) => {\n animateTo(1, 200);\n onPressOut?.(e);\n };\n\n return (\n \n );\n}\n","import { useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport {\n Animated,\n I18nManager,\n Image,\n LayoutChangeEvent,\n Platform,\n StyleSheet,\n View,\n} from 'react-native';\n\nimport MaskedView from '../MaskedView';\nimport PlatformPressable from '../PlatformPressable';\nimport type { HeaderBackButtonProps } from '../types';\n\nexport default function HeaderBackButton({\n disabled,\n allowFontScaling,\n backImage,\n label,\n labelStyle,\n labelVisible = Platform.OS === 'ios',\n onLabelLayout,\n onPress,\n pressColor,\n pressOpacity,\n screenLayout,\n tintColor: customTintColor,\n titleLayout,\n truncatedLabel = 'Back',\n accessibilityLabel = label && label !== 'Back' ? `${label}, back` : 'Go back',\n testID,\n style,\n}: HeaderBackButtonProps) {\n const { colors } = useTheme();\n\n const [initialLabelWidth, setInitialLabelWidth] = React.useState<\n undefined | number\n >(undefined);\n\n const tintColor =\n customTintColor !== undefined\n ? customTintColor\n : Platform.select({\n ios: colors.primary,\n default: colors.text,\n });\n\n const handleLabelLayout = (e: LayoutChangeEvent) => {\n onLabelLayout?.(e);\n\n setInitialLabelWidth(e.nativeEvent.layout.x + e.nativeEvent.layout.width);\n };\n\n const shouldTruncateLabel = () => {\n return (\n !label ||\n (initialLabelWidth &&\n titleLayout &&\n screenLayout &&\n (screenLayout.width - titleLayout.width) / 2 < initialLabelWidth + 26)\n );\n };\n\n const renderBackImage = () => {\n if (backImage) {\n return backImage({ tintColor });\n } else {\n return (\n \n );\n }\n };\n\n const renderLabel = () => {\n const leftLabelText = shouldTruncateLabel() ? truncatedLabel : label;\n\n if (!labelVisible || leftLabelText === undefined) {\n return null;\n }\n\n const labelElement = (\n \n \n {leftLabelText}\n \n \n );\n\n if (backImage || Platform.OS !== 'ios') {\n // When a custom backimage is specified, we can't mask the label\n // Otherwise there might be weird effect due to our mask not being the same as the image\n return labelElement;\n }\n\n return (\n \n \n \n \n }\n >\n {labelElement}\n \n );\n };\n\n const handlePress = () => onPress && requestAnimationFrame(onPress);\n\n return (\n \n \n {renderBackImage()}\n {renderLabel()}\n \n \n );\n}\n\nconst androidRipple = {\n borderless: true,\n foreground: Platform.OS === 'android' && Platform.Version >= 23,\n radius: 20,\n};\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n flexDirection: 'row',\n minWidth: StyleSheet.hairlineWidth, // Avoid collapsing when title is long\n ...Platform.select({\n ios: null,\n default: {\n marginVertical: 3,\n marginHorizontal: 11,\n },\n }),\n },\n disabled: {\n opacity: 0.5,\n },\n label: {\n fontSize: 17,\n // Title and back label are a bit different width due to title being bold\n // Adjusting the letterSpacing makes them coincide better\n letterSpacing: 0.35,\n },\n labelWrapper: {\n // These styles will make sure that the label doesn't fill the available space\n // Otherwise it messes with the measurement of the label\n flexDirection: 'row',\n alignItems: 'flex-start',\n },\n icon: Platform.select({\n ios: {\n height: 21,\n width: 13,\n marginLeft: 8,\n marginRight: 22,\n marginVertical: 12,\n resizeMode: 'contain',\n transform: [{ scaleX: I18nManager.getConstants().isRTL ? -1 : 1 }],\n },\n default: {\n height: 24,\n width: 24,\n margin: 3,\n resizeMode: 'contain',\n transform: [{ scaleX: I18nManager.getConstants().isRTL ? -1 : 1 }],\n },\n }),\n iconWithLabel:\n Platform.OS === 'ios'\n ? {\n marginRight: 6,\n }\n : {},\n iconMaskContainer: {\n flex: 1,\n flexDirection: 'row',\n justifyContent: 'center',\n },\n iconMaskFillerRect: {\n flex: 1,\n backgroundColor: '#000',\n },\n iconMask: {\n height: 21,\n width: 13,\n marginLeft: -14.5,\n marginVertical: 12,\n alignSelf: 'center',\n resizeMode: 'contain',\n transform: [{ scaleX: I18nManager.getConstants().isRTL ? -1 : 1 }],\n },\n});\n","import { Platform } from 'react-native';\n\nimport type { Layout } from '../types';\n\nexport default function getDefaultHeaderHeight(\n layout: Layout,\n modalPresentation: boolean,\n statusBarHeight: number\n): number {\n let headerHeight;\n\n const isLandscape = layout.width > layout.height;\n\n if (Platform.OS === 'ios') {\n if (Platform.isPad || Platform.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\n return headerHeight + statusBarHeight;\n}\n","import { useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport {\n Animated,\n Platform,\n StyleProp,\n StyleSheet,\n TextProps,\n TextStyle,\n} from 'react-native';\n\ntype Props = Omit & {\n tintColor?: string;\n style?: Animated.WithAnimatedValue>;\n};\n\nexport default function HeaderTitle({ tintColor, style, ...rest }: Props) {\n const { colors } = useTheme();\n\n return (\n \n );\n}\n\nconst styles = StyleSheet.create({\n title: Platform.select({\n ios: {\n fontSize: 17,\n fontWeight: '600',\n },\n android: {\n fontSize: 20,\n fontFamily: 'sans-serif-medium',\n fontWeight: 'normal',\n },\n default: {\n fontSize: 18,\n fontWeight: '500',\n },\n }),\n});\n","import { useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport {\n Animated,\n Platform,\n StyleProp,\n StyleSheet,\n ViewProps,\n ViewStyle,\n} from 'react-native';\n\ntype Props = Omit & {\n style?: Animated.WithAnimatedValue>;\n children?: React.ReactNode;\n};\n\nexport default function HeaderBackground({ style, ...rest }: Props) {\n const { colors } = useTheme();\n\n return (\n \n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n ...Platform.select({\n android: {\n elevation: 4,\n },\n ios: {\n shadowOpacity: 0.85,\n shadowRadius: 0,\n shadowOffset: {\n width: 0,\n height: StyleSheet.hairlineWidth,\n },\n },\n default: {\n borderBottomWidth: StyleSheet.hairlineWidth,\n },\n }),\n },\n});\n","import * as React from 'react';\nimport { Animated, Platform, StyleSheet, View, ViewStyle } from 'react-native';\nimport {\n useSafeAreaFrame,\n useSafeAreaInsets,\n} from 'react-native-safe-area-context';\n\nimport type { HeaderOptions, Layout } from '../types';\nimport getDefaultHeaderHeight from './getDefaultHeaderHeight';\nimport HeaderBackground from './HeaderBackground';\nimport HeaderShownContext from './HeaderShownContext';\nimport HeaderTitle from './HeaderTitle';\n\ntype Props = HeaderOptions & {\n /**\n * Whether the header is in a modal\n */\n modal?: boolean;\n /**\n * Layout of the screen.\n */\n layout?: Layout;\n /**\n * Title text for the header.\n */\n title: string;\n};\n\nconst warnIfHeaderStylesDefined = (styles: Record) => {\n Object.keys(styles).forEach((styleProp) => {\n const value = styles[styleProp];\n\n if (styleProp === 'position' && value === 'absolute') {\n console.warn(\n \"position: 'absolute' is not supported on headerStyle. If you would like to render content under the header, use the 'headerTransparent' option.\"\n );\n } else if (value !== undefined) {\n console.warn(\n `${styleProp} was given a value of ${value}, this has no effect on headerStyle.`\n );\n }\n });\n};\n\nexport default function Header(props: Props) {\n const insets = useSafeAreaInsets();\n const frame = useSafeAreaFrame();\n\n const isParentHeaderShown = React.useContext(HeaderShownContext);\n\n // On models with Dynamic Island the status bar height is smaller than the safe area top inset.\n const hasDynamicIsland = Platform.OS === 'ios' && insets.top > 50;\n const statusBarHeight = hasDynamicIsland ? insets.top - 5 : insets.top;\n\n const {\n layout = frame,\n modal = false,\n title,\n headerTitle: customTitle,\n headerTitleAlign = Platform.select({\n ios: 'center',\n default: 'left',\n }),\n headerLeft,\n headerLeftLabelVisible,\n headerTransparent,\n headerTintColor,\n headerBackground,\n headerRight,\n headerTitleAllowFontScaling: titleAllowFontScaling,\n headerTitleStyle: titleStyle,\n headerLeftContainerStyle: leftContainerStyle,\n headerRightContainerStyle: rightContainerStyle,\n headerTitleContainerStyle: titleContainerStyle,\n headerBackgroundContainerStyle: backgroundContainerStyle,\n headerStyle: customHeaderStyle,\n headerShadowVisible,\n headerPressColor,\n headerPressOpacity,\n headerStatusBarHeight = isParentHeaderShown ? 0 : statusBarHeight,\n } = props;\n\n const defaultHeight = getDefaultHeaderHeight(\n layout,\n modal,\n headerStatusBarHeight\n );\n\n const {\n height = defaultHeight,\n minHeight,\n maxHeight,\n backgroundColor,\n borderBottomColor,\n borderBottomEndRadius,\n borderBottomLeftRadius,\n borderBottomRightRadius,\n borderBottomStartRadius,\n borderBottomWidth,\n borderColor,\n borderEndColor,\n borderEndWidth,\n borderLeftColor,\n borderLeftWidth,\n borderRadius,\n borderRightColor,\n borderRightWidth,\n borderStartColor,\n borderStartWidth,\n borderStyle,\n borderTopColor,\n borderTopEndRadius,\n borderTopLeftRadius,\n borderTopRightRadius,\n borderTopStartRadius,\n borderTopWidth,\n borderWidth,\n // @ts-expect-error: web support for shadow\n boxShadow,\n elevation,\n shadowColor,\n shadowOffset,\n shadowOpacity,\n shadowRadius,\n opacity,\n transform,\n ...unsafeStyles\n } = StyleSheet.flatten(customHeaderStyle || {}) as ViewStyle;\n\n if (process.env.NODE_ENV !== 'production') {\n warnIfHeaderStylesDefined(unsafeStyles);\n }\n\n const safeStyles: ViewStyle = {\n backgroundColor,\n borderBottomColor,\n borderBottomEndRadius,\n borderBottomLeftRadius,\n borderBottomRightRadius,\n borderBottomStartRadius,\n borderBottomWidth,\n borderColor,\n borderEndColor,\n borderEndWidth,\n borderLeftColor,\n borderLeftWidth,\n borderRadius,\n borderRightColor,\n borderRightWidth,\n borderStartColor,\n borderStartWidth,\n borderStyle,\n borderTopColor,\n borderTopEndRadius,\n borderTopLeftRadius,\n borderTopRightRadius,\n borderTopStartRadius,\n borderTopWidth,\n borderWidth,\n // @ts-expect-error: boxShadow is only for Web\n boxShadow,\n elevation,\n shadowColor,\n shadowOffset,\n shadowOpacity,\n shadowRadius,\n opacity,\n transform,\n };\n\n // Setting a property to undefined triggers default style\n // So we need to filter them out\n // Users can use `null` instead\n for (const styleProp in safeStyles) {\n // @ts-expect-error: typescript wrongly complains that styleProp cannot be used to index safeStyles\n if (safeStyles[styleProp] === undefined) {\n // @ts-expect-error\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete safeStyles[styleProp];\n }\n }\n\n const backgroundStyle = [\n safeStyles,\n headerShadowVisible === false && {\n elevation: 0,\n shadowOpacity: 0,\n borderBottomWidth: 0,\n },\n ];\n\n const leftButton = headerLeft\n ? headerLeft({\n tintColor: headerTintColor,\n pressColor: headerPressColor,\n pressOpacity: headerPressOpacity,\n labelVisible: headerLeftLabelVisible,\n })\n : null;\n\n const rightButton = headerRight\n ? headerRight({\n tintColor: headerTintColor,\n pressColor: headerPressColor,\n pressOpacity: headerPressOpacity,\n })\n : null;\n\n const headerTitle =\n typeof customTitle !== 'function'\n ? (props: React.ComponentProps) => (\n \n )\n : customTitle;\n\n return (\n \n \n {headerBackground ? (\n headerBackground({ style: backgroundStyle })\n ) : headerTransparent ? null : (\n \n )}\n \n \n \n \n \n {leftButton}\n \n \n {headerTitle({\n children: title,\n allowFontScaling: titleAllowFontScaling,\n tintColor: headerTintColor,\n style: titleStyle,\n })}\n \n \n {rightButton}\n \n \n \n \n );\n}\n\nconst styles = StyleSheet.create({\n content: {\n flex: 1,\n flexDirection: 'row',\n alignItems: 'stretch',\n },\n title: {\n marginHorizontal: 16,\n justifyContent: 'center',\n },\n left: {\n justifyContent: 'center',\n alignItems: 'flex-start',\n },\n right: {\n justifyContent: 'center',\n alignItems: 'flex-end',\n },\n expand: {\n flexGrow: 1,\n flexBasis: 0,\n },\n});\n","export default function memoize(\n callback: (...deps: Deps) => Result\n) {\n let previous: Deps | undefined;\n let result: Result | undefined;\n\n return (...dependencies: Deps): Result => {\n let hasChanged = false;\n\n if (previous) {\n if (previous.length !== dependencies.length) {\n hasChanged = true;\n } else {\n for (let i = 0; i < previous.length; i++) {\n if (previous[i] !== dependencies[i]) {\n hasChanged = true;\n break;\n }\n }\n }\n } else {\n hasChanged = true;\n }\n\n previous = dependencies;\n\n if (hasChanged || result === undefined) {\n result = callback(...dependencies);\n }\n\n return result;\n };\n}\n","import {\n getDefaultHeaderHeight,\n Header,\n HeaderBackButton,\n HeaderBackButtonProps,\n HeaderTitle,\n} from '@react-navigation/elements';\nimport * as React from 'react';\nimport {\n Animated,\n LayoutChangeEvent,\n Platform,\n StyleSheet,\n ViewStyle,\n} from 'react-native';\n\nimport type {\n Layout,\n SceneProgress,\n StackHeaderOptions,\n StackHeaderStyleInterpolator,\n} from '../../types';\nimport memoize from '../../utils/memoize';\n\ntype Props = Omit & {\n headerStatusBarHeight: number;\n layout: Layout;\n title: string;\n modal: boolean;\n onGoBack?: () => void;\n progress: SceneProgress;\n styleInterpolator: StackHeaderStyleInterpolator;\n};\n\nexport default function HeaderSegment(props: Props) {\n const [leftLabelLayout, setLeftLabelLayout] = React.useState<\n Layout | undefined\n >(undefined);\n\n const [titleLayout, setTitleLayout] = React.useState(\n undefined\n );\n\n const handleTitleLayout = (e: LayoutChangeEvent) => {\n const { height, width } = e.nativeEvent.layout;\n\n setTitleLayout((titleLayout) => {\n if (\n titleLayout &&\n height === titleLayout.height &&\n width === titleLayout.width\n ) {\n return titleLayout;\n }\n\n return { height, width };\n });\n };\n\n const handleLeftLabelLayout = (e: LayoutChangeEvent) => {\n const { height, width } = e.nativeEvent.layout;\n\n if (\n leftLabelLayout &&\n height === leftLabelLayout.height &&\n width === leftLabelLayout.width\n ) {\n return;\n }\n\n setLeftLabelLayout({ height, width });\n };\n\n const getInterpolatedStyle = memoize(\n (\n styleInterpolator: StackHeaderStyleInterpolator,\n layout: Layout,\n current: Animated.AnimatedInterpolation,\n next: Animated.AnimatedInterpolation | undefined,\n titleLayout: Layout | undefined,\n leftLabelLayout: Layout | undefined,\n headerHeight: number\n ) =>\n styleInterpolator({\n current: { progress: current },\n next: next && { progress: next },\n layouts: {\n header: {\n height: headerHeight,\n width: layout.width,\n },\n screen: layout,\n title: titleLayout,\n leftLabel: leftLabelLayout,\n },\n })\n );\n\n const {\n progress,\n layout,\n modal,\n onGoBack,\n headerTitle: title,\n headerLeft: left = onGoBack\n ? (props: HeaderBackButtonProps) => \n : undefined,\n headerRight: right,\n headerBackImage,\n headerBackTitle,\n headerBackTitleVisible = Platform.OS === 'ios',\n headerTruncatedBackTitle,\n headerBackAccessibilityLabel,\n headerBackTestID,\n headerBackAllowFontScaling,\n headerBackTitleStyle,\n headerTitleContainerStyle,\n headerLeftContainerStyle,\n headerRightContainerStyle,\n headerBackgroundContainerStyle,\n headerStyle: customHeaderStyle,\n headerStatusBarHeight,\n styleInterpolator,\n ...rest\n } = props;\n\n const defaultHeight = getDefaultHeaderHeight(\n layout,\n modal,\n headerStatusBarHeight\n );\n\n const { height = defaultHeight } = StyleSheet.flatten(\n customHeaderStyle || {}\n ) as ViewStyle;\n\n const {\n titleStyle,\n leftButtonStyle,\n leftLabelStyle,\n rightButtonStyle,\n backgroundStyle,\n } = getInterpolatedStyle(\n styleInterpolator,\n layout,\n progress.current,\n progress.next,\n titleLayout,\n headerBackTitle ? leftLabelLayout : undefined,\n typeof height === 'number' ? height : defaultHeight\n );\n\n const headerLeft: StackHeaderOptions['headerLeft'] = left\n ? (props) =>\n left({\n ...props,\n backImage: headerBackImage,\n accessibilityLabel: headerBackAccessibilityLabel,\n testID: headerBackTestID,\n allowFontScaling: headerBackAllowFontScaling,\n onPress: onGoBack,\n label: headerBackTitle,\n truncatedLabel: headerTruncatedBackTitle,\n labelStyle: [leftLabelStyle, headerBackTitleStyle],\n onLabelLayout: handleLeftLabelLayout,\n screenLayout: layout,\n titleLayout,\n canGoBack: Boolean(onGoBack),\n })\n : undefined;\n\n const headerRight: StackHeaderOptions['headerRight'] = right\n ? (props) =>\n right({\n ...props,\n canGoBack: Boolean(onGoBack),\n })\n : undefined;\n\n const headerTitle: StackHeaderOptions['headerTitle'] =\n typeof title !== 'function'\n ? (props) => \n : (props) => title({ ...props, onLayout: handleTitleLayout });\n\n return (\n \n );\n}\n","import { getHeaderTitle, HeaderShownContext } from '@react-navigation/elements';\nimport { StackActions } from '@react-navigation/native';\nimport * as React from 'react';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport type { StackHeaderProps } from '../../types';\nimport debounce from '../../utils/debounce';\nimport ModalPresentationContext from '../../utils/ModalPresentationContext';\nimport HeaderSegment from './HeaderSegment';\n\nexport default React.memo(function Header({\n back,\n layout,\n progress,\n options,\n route,\n navigation,\n styleInterpolator,\n}: StackHeaderProps) {\n const insets = useSafeAreaInsets();\n\n let previousTitle;\n\n // The label for the left back button shows the title of the previous screen\n // If a custom label is specified, we use it, otherwise use previous screen's title\n if (options.headerBackTitle !== undefined) {\n previousTitle = options.headerBackTitle;\n } else if (back) {\n previousTitle = back.title;\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const goBack = React.useCallback(\n debounce(() => {\n if (navigation.isFocused() && navigation.canGoBack()) {\n navigation.dispatch({\n ...StackActions.pop(),\n source: route.key,\n });\n }\n }, 50),\n [navigation, route.key]\n );\n\n const isModal = React.useContext(ModalPresentationContext);\n const isParentHeaderShown = React.useContext(HeaderShownContext);\n\n const statusBarHeight =\n options.headerStatusBarHeight !== undefined\n ? options.headerStatusBarHeight\n : isModal || isParentHeaderShown\n ? 0\n : insets.top;\n\n return (\n \n );\n});\n","export default function debounce void>(\n func: T,\n duration: number\n): T {\n let timeout: NodeJS.Timeout | number | undefined;\n\n return function (this: any, ...args) {\n if (!timeout) {\n // eslint-disable-next-line babel/no-invalid-this\n func.apply(this, args);\n\n timeout = setTimeout(() => {\n timeout = undefined;\n }, duration);\n }\n } as T;\n}\n","import { getHeaderTitle, HeaderBackContext } from '@react-navigation/elements';\nimport {\n NavigationContext,\n NavigationRouteContext,\n ParamListBase,\n Route,\n} from '@react-navigation/native';\nimport * as React from 'react';\nimport { Animated, StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\n\nimport {\n forNoAnimation,\n forSlideLeft,\n forSlideRight,\n forSlideUp,\n} from '../../TransitionConfigs/HeaderStyleInterpolators';\nimport type {\n Layout,\n Scene,\n StackHeaderMode,\n StackHeaderProps,\n StackNavigationProp,\n} from '../../types';\nimport Header from './Header';\n\nexport type Props = {\n mode: StackHeaderMode;\n layout: Layout;\n scenes: (Scene | undefined)[];\n getPreviousScene: (props: { route: Route }) => Scene | undefined;\n getFocusedRoute: () => Route;\n onContentHeightChange?: (props: {\n route: Route;\n height: number;\n }) => void;\n style?: Animated.WithAnimatedValue>;\n};\n\nexport default function HeaderContainer({\n mode,\n scenes,\n layout,\n getPreviousScene,\n getFocusedRoute,\n onContentHeightChange,\n style,\n}: Props) {\n const focusedRoute = getFocusedRoute();\n const parentHeaderBack = React.useContext(HeaderBackContext);\n\n return (\n \n {scenes.slice(-3).map((scene, i, self) => {\n if ((mode === 'screen' && i !== self.length - 1) || !scene) {\n return null;\n }\n\n const {\n header,\n headerMode,\n headerShown = true,\n headerTransparent,\n headerStyleInterpolator,\n } = scene.descriptor.options;\n\n if (headerMode !== mode || !headerShown) {\n return null;\n }\n\n const isFocused = focusedRoute.key === scene.descriptor.route.key;\n const previousScene = getPreviousScene({\n route: scene.descriptor.route,\n });\n\n let headerBack = parentHeaderBack;\n\n if (previousScene) {\n const { options, route } = previousScene.descriptor;\n\n headerBack = previousScene\n ? { title: getHeaderTitle(options, route.name) }\n : parentHeaderBack;\n }\n\n // If the screen is next to a headerless screen, we need to make the header appear static\n // This makes the header look like it's moving with the screen\n const previousDescriptor = self[i - 1]?.descriptor;\n const nextDescriptor = self[i + 1]?.descriptor;\n\n const {\n headerShown: previousHeaderShown = true,\n headerMode: previousHeaderMode,\n } = previousDescriptor?.options || {};\n\n // If any of the next screens don't have a header or header is part of the screen\n // Then we need to move this header offscreen so that it doesn't cover it\n const nextHeaderlessScene = self.slice(i + 1).find((scene) => {\n const {\n headerShown: currentHeaderShown = true,\n headerMode: currentHeaderMode,\n } = scene?.descriptor.options || {};\n\n return currentHeaderShown === false || currentHeaderMode === 'screen';\n });\n\n const { gestureDirection: nextHeaderlessGestureDirection } =\n nextHeaderlessScene?.descriptor.options || {};\n\n const isHeaderStatic =\n ((previousHeaderShown === false || previousHeaderMode === 'screen') &&\n // We still need to animate when coming back from next scene\n // A hacky way to check this is if the next scene exists\n !nextDescriptor) ||\n nextHeaderlessScene;\n\n const props: StackHeaderProps = {\n layout,\n back: headerBack,\n progress: scene.progress,\n options: scene.descriptor.options,\n route: scene.descriptor.route,\n navigation: scene.descriptor\n .navigation as StackNavigationProp,\n styleInterpolator:\n mode === 'float'\n ? isHeaderStatic\n ? nextHeaderlessGestureDirection === 'vertical' ||\n nextHeaderlessGestureDirection === 'vertical-inverted'\n ? forSlideUp\n : nextHeaderlessGestureDirection === 'horizontal-inverted'\n ? forSlideRight\n : forSlideLeft\n : headerStyleInterpolator\n : forNoAnimation,\n };\n\n return (\n \n \n {\n const { height } = e.nativeEvent.layout;\n\n onContentHeightChange({\n route: scene.descriptor.route,\n height,\n });\n }\n : undefined\n }\n pointerEvents={isFocused ? 'box-none' : 'none'}\n accessibilityElementsHidden={!isFocused}\n importantForAccessibility={\n isFocused ? 'auto' : 'no-hide-descendants'\n }\n style={\n // Avoid positioning the focused header absolutely\n // Otherwise accessibility tools don't seem to be able to find it\n (mode === 'float' && !isFocused) || headerTransparent\n ? styles.header\n : null\n }\n >\n {header !== undefined ? header(props) :
}\n \n \n \n );\n })}\n \n );\n}\n\nconst styles = StyleSheet.create({\n header: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n },\n});\n","import { useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport { View, ViewProps } from 'react-native';\n\ntype Props = ViewProps & {\n children: React.ReactNode;\n};\n\nexport default function Background({ style, ...rest }: Props) {\n const { colors } = useTheme();\n\n return (\n \n );\n}\n","import { Animated } from 'react-native';\n\nconst { add, multiply } = Animated;\n\n/**\n * Use an Animated Node based on a condition. Similar to Reanimated's `cond`.\n *\n * @param condition Animated Node representing the condition, must be 0 or 1, 1 means `true`, 0 means `false`\n * @param main Animated Node to use if the condition is `true`\n * @param fallback Animated Node to use if the condition is `false`\n */\nexport default function conditional(\n condition: Animated.AnimatedInterpolation<0 | 1>,\n main: Animated.AnimatedInterpolation,\n fallback: Animated.AnimatedInterpolation\n) {\n // To implement this behavior, we multiply the main node with the condition.\n // So if condition is 0, result will be 0, and if condition is 1, result will be main node.\n // Then we multiple reverse of the condition (0 if condition is 1) with the fallback.\n // So if condition is 0, result will be fallback node, and if condition is 1, result will be 0,\n // This way, one of them will always be 0, and other one will be the value we need.\n // In the end we add them both together, 0 + value we need = value we need\n return add(\n multiply(condition, main),\n multiply(\n condition.interpolate({\n inputRange: [0, 1],\n outputRange: [1, 0],\n }),\n fallback\n )\n );\n}\n","import { Animated, Platform } from 'react-native';\n\nimport type {\n StackCardInterpolatedStyle,\n StackCardInterpolationProps,\n} from '../types';\nimport conditional from '../utils/conditional';\n\nconst { add, multiply } = Animated;\n\n/**\n * Standard iOS-style slide in from the right.\n */\nexport function forHorizontalIOS({\n current,\n next,\n inverted,\n layouts: { screen },\n}: StackCardInterpolationProps): StackCardInterpolatedStyle {\n const translateFocused = multiply(\n current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [screen.width, 0],\n extrapolate: 'clamp',\n }),\n inverted\n );\n\n const translateUnfocused = next\n ? multiply(\n next.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, screen.width * -0.3],\n extrapolate: 'clamp',\n }),\n inverted\n )\n : 0;\n\n const overlayOpacity = current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 0.07],\n extrapolate: 'clamp',\n });\n\n const shadowOpacity = current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 0.3],\n extrapolate: 'clamp',\n });\n\n return {\n cardStyle: {\n transform: [\n // Translation for the animation of the current card\n { translateX: translateFocused },\n // Translation for the animation of the card on top of this\n { translateX: translateUnfocused },\n ],\n },\n overlayStyle: { opacity: overlayOpacity },\n shadowStyle: { shadowOpacity },\n };\n}\n\n/**\n * Standard iOS-style slide in from the bottom (used for modals).\n */\nexport function forVerticalIOS({\n current,\n inverted,\n layouts: { screen },\n}: StackCardInterpolationProps): StackCardInterpolatedStyle {\n const translateY = multiply(\n current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [screen.height, 0],\n extrapolate: 'clamp',\n }),\n inverted\n );\n\n return {\n cardStyle: {\n transform: [{ translateY }],\n },\n };\n}\n\n/**\n * Standard iOS-style modal animation in iOS 13.\n */\nexport function forModalPresentationIOS({\n index,\n current,\n next,\n inverted,\n layouts: { screen },\n insets,\n}: StackCardInterpolationProps): StackCardInterpolatedStyle {\n const hasNotchIos =\n Platform.OS === 'ios' &&\n !Platform.isPad &&\n !Platform.isTV &&\n insets.top > 20;\n const isLandscape = screen.width > screen.height;\n const topOffset = isLandscape ? 0 : 10;\n const statusBarHeight = insets.top;\n const aspectRatio = screen.height / screen.width;\n\n const progress = add(\n current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp',\n }),\n next\n ? next.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp',\n })\n : 0\n );\n\n const isFirst = index === 0;\n\n const translateY = multiply(\n progress.interpolate({\n inputRange: [0, 1, 2],\n outputRange: [\n screen.height,\n isFirst ? 0 : topOffset,\n (isFirst ? statusBarHeight : 0) - topOffset * aspectRatio,\n ],\n }),\n inverted\n );\n\n const overlayOpacity = progress.interpolate({\n inputRange: [0, 1, 1.0001, 2],\n outputRange: [0, 0.3, 1, 1],\n });\n\n const scale = isLandscape\n ? 1\n : progress.interpolate({\n inputRange: [0, 1, 2],\n outputRange: [\n 1,\n 1,\n screen.width ? 1 - (topOffset * 2) / screen.width : 1,\n ],\n });\n\n const borderRadius = isLandscape\n ? 0\n : isFirst\n ? progress.interpolate({\n inputRange: [0, 1, 1.0001, 2],\n outputRange: [0, 0, hasNotchIos ? 38 : 0, 10],\n })\n : 10;\n\n return {\n cardStyle: {\n overflow: 'hidden',\n borderTopLeftRadius: borderRadius,\n borderTopRightRadius: borderRadius,\n // We don't need these for the animation\n // But different border radius for corners improves animation perf\n borderBottomLeftRadius: hasNotchIos ? borderRadius : 0,\n borderBottomRightRadius: hasNotchIos ? borderRadius : 0,\n marginTop: isFirst ? 0 : statusBarHeight,\n marginBottom: isFirst ? 0 : topOffset,\n transform: [{ translateY }, { scale }],\n },\n overlayStyle: { opacity: overlayOpacity },\n };\n}\n\n/**\n * Standard Android-style fade in from the bottom for Android Oreo.\n */\nexport function forFadeFromBottomAndroid({\n current,\n inverted,\n layouts: { screen },\n closing,\n}: StackCardInterpolationProps): StackCardInterpolatedStyle {\n const translateY = multiply(\n current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [screen.height * 0.08, 0],\n extrapolate: 'clamp',\n }),\n inverted\n );\n\n const opacity = conditional(\n closing,\n current.progress,\n current.progress.interpolate({\n inputRange: [0, 0.5, 0.9, 1],\n outputRange: [0, 0.25, 0.7, 1],\n extrapolate: 'clamp',\n })\n );\n\n return {\n cardStyle: {\n opacity,\n transform: [{ translateY }],\n },\n };\n}\n\n/**\n * Standard Android-style reveal from the bottom for Android Pie.\n */\nexport function forRevealFromBottomAndroid({\n current,\n next,\n inverted,\n layouts: { screen },\n}: StackCardInterpolationProps): StackCardInterpolatedStyle {\n const containerTranslateY = multiply(\n current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [screen.height, 0],\n extrapolate: 'clamp',\n }),\n inverted\n );\n\n const cardTranslateYFocused = multiply(\n current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [screen.height * (95.9 / 100) * -1, 0],\n extrapolate: 'clamp',\n }),\n inverted\n );\n\n const cardTranslateYUnfocused = next\n ? multiply(\n next.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, screen.height * (2 / 100) * -1],\n extrapolate: 'clamp',\n }),\n inverted\n )\n : 0;\n\n const overlayOpacity = current.progress.interpolate({\n inputRange: [0, 0.36, 1],\n outputRange: [0, 0.1, 0.1],\n extrapolate: 'clamp',\n });\n\n return {\n containerStyle: {\n overflow: 'hidden',\n transform: [{ translateY: containerTranslateY }],\n },\n cardStyle: {\n transform: [\n { translateY: cardTranslateYFocused },\n { translateY: cardTranslateYUnfocused },\n ],\n },\n overlayStyle: { opacity: overlayOpacity },\n };\n}\n\n/**\n * Standard Android-style zoom for Android 10.\n */\nexport function forScaleFromCenterAndroid({\n current,\n next,\n closing,\n}: StackCardInterpolationProps): StackCardInterpolatedStyle {\n const progress = add(\n current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp',\n }),\n next\n ? next.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp',\n })\n : 0\n );\n\n const opacity = progress.interpolate({\n inputRange: [0, 0.75, 0.875, 1, 1.0825, 1.2075, 2],\n outputRange: [0, 0, 1, 1, 1, 1, 0],\n });\n\n const scale = conditional(\n closing,\n current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0.925, 1],\n extrapolate: 'clamp',\n }),\n progress.interpolate({\n inputRange: [0, 1, 2],\n outputRange: [0.85, 1, 1.075],\n })\n );\n\n return {\n cardStyle: {\n opacity,\n transform: [{ scale }],\n },\n };\n}\n\n/**\n * Standard bottom sheet slide in from the bottom for Android.\n */\nexport function forBottomSheetAndroid({\n current,\n inverted,\n layouts: { screen },\n closing,\n}: StackCardInterpolationProps): StackCardInterpolatedStyle {\n const translateY = multiply(\n current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [screen.height * 0.8, 0],\n extrapolate: 'clamp',\n }),\n inverted\n );\n\n const opacity = conditional(\n closing,\n current.progress,\n current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp',\n })\n );\n\n const overlayOpacity = current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 0.3],\n extrapolate: 'clamp',\n });\n\n return {\n cardStyle: {\n opacity,\n transform: [{ translateY }],\n },\n overlayStyle: { opacity: overlayOpacity },\n };\n}\n\n/**\n * Simple fade animation for dialogs\n */\nexport function forFadeFromCenter({\n current: { progress },\n}: StackCardInterpolationProps): StackCardInterpolatedStyle {\n return {\n cardStyle: {\n opacity: progress.interpolate({\n inputRange: [0, 0.5, 0.9, 1],\n outputRange: [0, 0.25, 0.7, 1],\n }),\n },\n overlayStyle: {\n opacity: progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 0.5],\n extrapolate: 'clamp',\n }),\n },\n };\n}\n\nexport function forNoAnimation(): StackCardInterpolatedStyle {\n return {};\n}\n","import { Easing } from 'react-native';\n\nimport type { TransitionSpec } from '../types';\n\n/**\n * Exact values from UINavigationController's animation configuration.\n */\nexport const TransitionIOSSpec: TransitionSpec = {\n animation: 'spring',\n config: {\n stiffness: 1000,\n damping: 500,\n mass: 3,\n overshootClamping: true,\n restDisplacementThreshold: 10,\n restSpeedThreshold: 10,\n },\n};\n\n/**\n * Configuration for activity open animation from Android Nougat.\n * See http://aosp.opersys.com/xref/android-7.1.2_r37/xref/frameworks/base/core/res/res/anim/activity_open_enter.xml\n */\nexport const FadeInFromBottomAndroidSpec: TransitionSpec = {\n animation: 'timing',\n config: {\n duration: 350,\n easing: Easing.out(Easing.poly(5)),\n },\n};\n\n/**\n * Configuration for activity close animation from Android Nougat.\n * See http://aosp.opersys.com/xref/android-7.1.2_r37/xref/frameworks/base/core/res/res/anim/activity_close_exit.xml\n */\nexport const FadeOutToBottomAndroidSpec: TransitionSpec = {\n animation: 'timing',\n config: {\n duration: 150,\n easing: Easing.in(Easing.linear),\n },\n};\n\n/**\n * Approximate configuration for activity open animation from Android Pie.\n * See http://aosp.opersys.com/xref/android-9.0.0_r47/xref/frameworks/base/core/res/res/anim/activity_open_enter.xml\n */\nexport const RevealFromBottomAndroidSpec: TransitionSpec = {\n animation: 'timing',\n config: {\n duration: 425,\n // This is super rough approximation of the path used for the curve by android\n // See http://aosp.opersys.com/xref/android-9.0.0_r47/xref/frameworks/base/core/res/res/interpolator/fast_out_extra_slow_in.xml\n easing: Easing.bezier(0.35, 0.45, 0, 1),\n },\n};\n\n/**\n * Approximate configuration for activity open animation from Android Q.\n * See http://aosp.opersys.com/xref/android-10.0.0_r2/xref/frameworks/base/core/res/res/anim/activity_open_enter.xml\n */\nexport const ScaleFromCenterAndroidSpec: TransitionSpec = {\n animation: 'timing',\n config: {\n duration: 400,\n // This is super rough approximation of the path used for the curve by android\n // See http://aosp.opersys.com/xref/android-10.0.0_r2/xref/frameworks/base/core/res/res/interpolator/fast_out_extra_slow_in.xml\n easing: Easing.bezier(0.35, 0.45, 0, 1),\n },\n};\n\n/**\n * Configuration for bottom sheet slide in animation from Material Design.\n * See https://github.com/material-components/material-components-android/blob/fd3639092e1ffef9dc11bcedf79f32801d85e898/lib/java/com/google/android/material/bottomsheet/res/anim/mtrl_bottom_sheet_slide_in.xml\n */\nexport const BottomSheetSlideInSpec: TransitionSpec = {\n animation: 'timing',\n config: {\n duration: 250,\n // See https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/view/animation/AccelerateDecelerateInterpolator.java\n easing: (t) => Math.cos((t + 1) * Math.PI) / 2.0 + 0.5,\n },\n};\n\n/**\n * Configuration for bottom sheet slide out animation from Material Design.\n * See https://github.com/material-components/material-components-android/blob/fd3639092e1ffef9dc11bcedf79f32801d85e898/lib/java/com/google/android/material/bottomsheet/res/anim/mtrl_bottom_sheet_slide_in.xml\n */\nexport const BottomSheetSlideOutSpec: TransitionSpec = {\n animation: 'timing',\n config: {\n duration: 200,\n // See https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/view/animation/AccelerateInterpolator.java\n easing: (t) => (t === 1.0 ? 1 : Math.pow(t, 2)),\n },\n};\n","import { Platform } from 'react-native';\n\nimport type { TransitionPreset } from '../types';\nimport {\n forBottomSheetAndroid,\n forFadeFromBottomAndroid,\n forFadeFromCenter as forFadeCard,\n forHorizontalIOS,\n forModalPresentationIOS,\n forRevealFromBottomAndroid,\n forScaleFromCenterAndroid,\n forVerticalIOS,\n} from './CardStyleInterpolators';\nimport { forFade } from './HeaderStyleInterpolators';\nimport {\n BottomSheetSlideInSpec,\n BottomSheetSlideOutSpec,\n FadeInFromBottomAndroidSpec,\n FadeOutToBottomAndroidSpec,\n RevealFromBottomAndroidSpec,\n ScaleFromCenterAndroidSpec,\n TransitionIOSSpec,\n} from './TransitionSpecs';\n\nconst ANDROID_VERSION_PIE = 28;\nconst ANDROID_VERSION_10 = 29;\n\n/**\n * Standard iOS navigation transition.\n */\nexport const SlideFromRightIOS: TransitionPreset = {\n gestureDirection: 'horizontal',\n transitionSpec: {\n open: TransitionIOSSpec,\n close: TransitionIOSSpec,\n },\n cardStyleInterpolator: forHorizontalIOS,\n headerStyleInterpolator: forFade,\n};\n\n/**\n * Standard iOS navigation transition for modals.\n */\nexport const ModalSlideFromBottomIOS: TransitionPreset = {\n gestureDirection: 'vertical',\n transitionSpec: {\n open: TransitionIOSSpec,\n close: TransitionIOSSpec,\n },\n cardStyleInterpolator: forVerticalIOS,\n headerStyleInterpolator: forFade,\n};\n\n/**\n * Standard iOS modal presentation style (introduced in iOS 13).\n */\nexport const ModalPresentationIOS: TransitionPreset = {\n gestureDirection: 'vertical',\n transitionSpec: {\n open: TransitionIOSSpec,\n close: TransitionIOSSpec,\n },\n cardStyleInterpolator: forModalPresentationIOS,\n headerStyleInterpolator: forFade,\n};\n\n/**\n * Standard Android navigation transition when opening or closing an Activity on Android < 9 (Oreo).\n */\nexport const FadeFromBottomAndroid: TransitionPreset = {\n gestureDirection: 'vertical',\n transitionSpec: {\n open: FadeInFromBottomAndroidSpec,\n close: FadeOutToBottomAndroidSpec,\n },\n cardStyleInterpolator: forFadeFromBottomAndroid,\n headerStyleInterpolator: forFade,\n};\n\n/**\n * Standard Android navigation transition when opening or closing an Activity on Android 9 (Pie).\n */\nexport const RevealFromBottomAndroid: TransitionPreset = {\n gestureDirection: 'vertical',\n transitionSpec: {\n open: RevealFromBottomAndroidSpec,\n close: RevealFromBottomAndroidSpec,\n },\n cardStyleInterpolator: forRevealFromBottomAndroid,\n headerStyleInterpolator: forFade,\n};\n\n/**\n * Standard Android navigation transition when opening or closing an Activity on Android 10 (Q).\n */\nexport const ScaleFromCenterAndroid: TransitionPreset = {\n gestureDirection: 'horizontal',\n transitionSpec: {\n open: ScaleFromCenterAndroidSpec,\n close: ScaleFromCenterAndroidSpec,\n },\n cardStyleInterpolator: forScaleFromCenterAndroid,\n headerStyleInterpolator: forFade,\n};\n\n/**\n * Standard bottom sheet slide transition for Android 10.\n */\nexport const BottomSheetAndroid: TransitionPreset = {\n gestureDirection: 'vertical',\n transitionSpec: {\n open: BottomSheetSlideInSpec,\n close: BottomSheetSlideOutSpec,\n },\n cardStyleInterpolator: forBottomSheetAndroid,\n headerStyleInterpolator: forFade,\n};\n\n/**\n * Fade transition for transparent modals.\n */\nexport const ModalFadeTransition: TransitionPreset = {\n gestureDirection: 'vertical',\n transitionSpec: {\n open: BottomSheetSlideInSpec,\n close: BottomSheetSlideOutSpec,\n },\n cardStyleInterpolator: forFadeCard,\n headerStyleInterpolator: forFade,\n};\n\n/**\n * Default navigation transition for the current platform.\n */\nexport const DefaultTransition = Platform.select({\n ios: SlideFromRightIOS,\n android:\n Platform.Version >= ANDROID_VERSION_10\n ? ScaleFromCenterAndroid\n : Platform.Version >= ANDROID_VERSION_PIE\n ? RevealFromBottomAndroid\n : FadeFromBottomAndroid,\n default: ScaleFromCenterAndroid,\n});\n\n/**\n * Default modal transition for the current platform.\n */\nexport const ModalTransition = Platform.select({\n ios: ModalPresentationIOS,\n default: BottomSheetAndroid,\n});\n","export default function findLastIndex(\n array: T[],\n callback: (value: T) => boolean\n) {\n for (var i = array.length - 1; i >= 0; i--) {\n if (callback(array[i])) {\n return i;\n }\n }\n\n return -1;\n}\n","import { I18nManager } from 'react-native';\n\nimport type { GestureDirection } from '../types';\n\nexport default function getInvertedMultiplier(\n gestureDirection: GestureDirection\n): 1 | -1 {\n switch (gestureDirection) {\n case 'vertical':\n return 1;\n case 'vertical-inverted':\n return -1;\n case 'horizontal':\n return I18nManager.getConstants().isRTL ? -1 : 1;\n case 'horizontal-inverted':\n return I18nManager.getConstants().isRTL ? 1 : -1;\n }\n}\n","import type { GestureDirection, Layout } from '../types';\nimport getInvertedMultiplier from './getInvertedMultiplier';\n\nexport default function getDistanceForDirection(\n layout: Layout,\n gestureDirection: GestureDirection\n): number {\n const multiplier = getInvertedMultiplier(gestureDirection);\n\n switch (gestureDirection) {\n case 'vertical':\n case 'vertical-inverted':\n return layout.height * multiplier;\n case 'horizontal':\n case 'horizontal-inverted':\n return layout.width * multiplier;\n }\n}\n","import * as React from 'react';\nimport { Animated, View, ViewProps } from 'react-native';\n\nlet Screens: typeof import('react-native-screens') | undefined;\n\ntry {\n Screens = require('react-native-screens');\n} catch (e) {\n // Ignore\n}\n\nexport const MaybeScreenContainer = ({\n enabled,\n ...rest\n}: ViewProps & {\n enabled: boolean;\n children: React.ReactNode;\n}) => {\n if (Screens != null) {\n return ;\n }\n\n return ;\n};\n\nexport const MaybeScreen = ({\n enabled,\n active,\n ...rest\n}: ViewProps & {\n enabled: boolean;\n active: 0 | 1 | Animated.AnimatedInterpolation<0 | 1>;\n children: React.ReactNode;\n freezeOnBlur?: boolean;\n}) => {\n if (Screens != null) {\n return (\n \n );\n }\n\n return ;\n};\n","import * as React from 'react';\n\nimport type { StackCardInterpolationProps } from '../types';\n\nexport default React.createContext(\n undefined\n);\n","import * as React from 'react';\nimport { StyleSheet, View, ViewProps } from 'react-native';\n\ntype Props = ViewProps & {\n enabled: boolean;\n layout: { width: number; height: number };\n children: React.ReactNode;\n};\n\nexport type CardSheetRef = {\n setPointerEvents: React.Dispatch;\n};\n\n// This component will render a page which overflows the screen\n// if the container fills the body by comparing the size\n// This lets the document.body handle scrolling of the content\n// It's necessary for mobile browsers to be able to hide address bar on scroll\nexport default React.forwardRef(function CardSheet(\n { enabled, layout, style, ...rest },\n ref\n) {\n const [fill, setFill] = React.useState(false);\n // To avoid triggering a rerender in Card during animation we had to move\n // the state to CardSheet. The `setPointerEvents` is then hoisted back to the Card.\n const [pointerEvents, setPointerEvents] =\n React.useState('auto');\n\n React.useImperativeHandle(ref, () => {\n return { setPointerEvents };\n });\n\n React.useEffect(() => {\n if (typeof document === 'undefined' || !document.body) {\n // Only run when DOM is available\n return;\n }\n\n const width = document.body.clientWidth;\n const height = document.body.clientHeight;\n\n setFill(width === layout.width && height === layout.height);\n }, [layout.height, layout.width]);\n\n return (\n \n );\n});\n\nconst styles = StyleSheet.create({\n page: {\n minHeight: '100%',\n },\n card: {\n flex: 1,\n overflow: 'hidden',\n },\n});\n","import Color from 'color';\nimport * as React from 'react';\nimport {\n Animated,\n InteractionManager,\n Platform,\n StyleProp,\n StyleSheet,\n View,\n ViewProps,\n ViewStyle,\n} from 'react-native';\nimport type { EdgeInsets } from 'react-native-safe-area-context';\n\nimport { forModalPresentationIOS } from '../../TransitionConfigs/CardStyleInterpolators';\nimport type {\n GestureDirection,\n Layout,\n StackCardInterpolationProps,\n StackCardStyleInterpolator,\n TransitionSpec,\n} from '../../types';\nimport CardAnimationContext from '../../utils/CardAnimationContext';\nimport getDistanceForDirection from '../../utils/getDistanceForDirection';\nimport getInvertedMultiplier from '../../utils/getInvertedMultiplier';\nimport memoize from '../../utils/memoize';\nimport {\n GestureState,\n PanGestureHandler,\n PanGestureHandlerGestureEvent,\n} from '../GestureHandler';\nimport ModalStatusBarManager from '../ModalStatusBarManager';\nimport CardSheet, { CardSheetRef } from './CardSheet';\n\ntype Props = ViewProps & {\n interpolationIndex: number;\n closing: boolean;\n next?: Animated.AnimatedInterpolation;\n current: Animated.AnimatedInterpolation;\n gesture: Animated.Value;\n layout: Layout;\n insets: EdgeInsets;\n headerDarkContent: boolean | undefined;\n pageOverflowEnabled: boolean;\n gestureDirection: GestureDirection;\n onOpen: () => void;\n onClose: () => void;\n onTransition: (props: { closing: boolean; gesture: boolean }) => void;\n onGestureBegin: () => void;\n onGestureCanceled: () => void;\n onGestureEnd: () => void;\n children: React.ReactNode;\n overlay: (props: {\n style: Animated.WithAnimatedValue>;\n }) => React.ReactNode;\n overlayEnabled: boolean;\n shadowEnabled: boolean;\n gestureEnabled: boolean;\n gestureResponseDistance?: number;\n gestureVelocityImpact: number;\n transitionSpec: {\n open: TransitionSpec;\n close: TransitionSpec;\n };\n styleInterpolator: StackCardStyleInterpolator;\n containerStyle?: StyleProp;\n contentStyle?: StyleProp;\n};\n\nconst GESTURE_VELOCITY_IMPACT = 0.3;\n\nconst TRUE = 1;\nconst FALSE = 0;\n\n/**\n * The distance of touch start from the edge of the screen where the gesture will be recognized\n */\nconst GESTURE_RESPONSE_DISTANCE_HORIZONTAL = 50;\nconst GESTURE_RESPONSE_DISTANCE_VERTICAL = 135;\n\nconst useNativeDriver = Platform.OS !== 'web';\n\nconst hasOpacityStyle = (style: any) => {\n if (style) {\n const flattenedStyle = StyleSheet.flatten(style);\n return flattenedStyle.opacity != null;\n }\n\n return false;\n};\n\nexport default class Card extends React.Component {\n static defaultProps = {\n shadowEnabled: false,\n gestureEnabled: true,\n gestureVelocityImpact: GESTURE_VELOCITY_IMPACT,\n overlay: ({\n style,\n }: {\n style: Animated.WithAnimatedValue>;\n }) =>\n style ? (\n \n ) : null,\n };\n\n componentDidMount() {\n this.animate({ closing: this.props.closing });\n this.isCurrentlyMounted = true;\n }\n\n componentDidUpdate(prevProps: Props) {\n const { layout, gestureDirection, closing } = this.props;\n const { width, height } = layout;\n\n if (width !== prevProps.layout.width) {\n this.layout.width.setValue(width);\n }\n\n if (height !== prevProps.layout.height) {\n this.layout.height.setValue(height);\n }\n\n if (gestureDirection !== prevProps.gestureDirection) {\n this.inverted.setValue(getInvertedMultiplier(gestureDirection));\n }\n\n const toValue = this.getAnimateToValue(this.props);\n\n if (\n this.getAnimateToValue(prevProps) !== toValue ||\n this.lastToValue !== toValue\n ) {\n // We need to trigger the animation when route was closed\n // Thr route might have been closed by a `POP` action or by a gesture\n // When route was closed due to a gesture, the animation would've happened already\n // It's still important to trigger the animation so that `onClose` is called\n // If `onClose` is not called, cleanup step won't be performed for gestures\n this.animate({ closing });\n }\n }\n\n componentWillUnmount() {\n this.props.gesture.stopAnimation();\n this.isCurrentlyMounted = false;\n this.handleEndInteraction();\n }\n\n private isCurrentlyMounted = false;\n\n private isClosing = new Animated.Value(FALSE);\n\n private inverted = new Animated.Value(\n getInvertedMultiplier(this.props.gestureDirection)\n );\n\n private layout = {\n width: new Animated.Value(this.props.layout.width),\n height: new Animated.Value(this.props.layout.height),\n };\n\n private isSwiping = new Animated.Value(FALSE);\n\n private interactionHandle: number | undefined;\n\n private pendingGestureCallback: number | undefined;\n\n private lastToValue: number | undefined;\n\n private animate = ({\n closing,\n velocity,\n }: {\n closing: boolean;\n velocity?: number;\n }) => {\n const { gesture, transitionSpec, onOpen, onClose, onTransition } =\n this.props;\n\n const toValue = this.getAnimateToValue({\n ...this.props,\n closing,\n });\n\n this.lastToValue = toValue;\n\n this.isClosing.setValue(closing ? TRUE : FALSE);\n\n const spec = closing ? transitionSpec.close : transitionSpec.open;\n\n const animation =\n spec.animation === 'spring' ? Animated.spring : Animated.timing;\n\n this.setPointerEventsEnabled(!closing);\n this.handleStartInteraction();\n\n clearTimeout(this.pendingGestureCallback);\n\n onTransition?.({ closing, gesture: velocity !== undefined });\n animation(gesture, {\n ...spec.config,\n velocity,\n toValue,\n useNativeDriver,\n isInteraction: false,\n }).start(({ finished }) => {\n this.handleEndInteraction();\n\n clearTimeout(this.pendingGestureCallback);\n\n if (finished) {\n if (closing) {\n onClose();\n } else {\n onOpen();\n }\n\n if (this.isCurrentlyMounted) {\n // Make sure to re-open screen if it wasn't removed\n this.forceUpdate();\n }\n }\n });\n };\n\n private getAnimateToValue = ({\n closing,\n layout,\n gestureDirection,\n }: {\n closing?: boolean;\n layout: Layout;\n gestureDirection: GestureDirection;\n }) => {\n if (!closing) {\n return 0;\n }\n\n return getDistanceForDirection(layout, gestureDirection);\n };\n\n private setPointerEventsEnabled = (enabled: boolean) => {\n const pointerEvents = enabled ? 'box-none' : 'none';\n\n this.ref.current?.setPointerEvents(pointerEvents);\n };\n\n private handleStartInteraction = () => {\n if (this.interactionHandle === undefined) {\n this.interactionHandle = InteractionManager.createInteractionHandle();\n }\n };\n\n private handleEndInteraction = () => {\n if (this.interactionHandle !== undefined) {\n InteractionManager.clearInteractionHandle(this.interactionHandle);\n this.interactionHandle = undefined;\n }\n };\n\n private handleGestureStateChange = ({\n nativeEvent,\n }: PanGestureHandlerGestureEvent) => {\n const {\n layout,\n onClose,\n onGestureBegin,\n onGestureCanceled,\n onGestureEnd,\n gestureDirection,\n gestureVelocityImpact,\n } = this.props;\n\n switch (nativeEvent.state) {\n case GestureState.ACTIVE:\n this.isSwiping.setValue(TRUE);\n this.handleStartInteraction();\n onGestureBegin?.();\n break;\n case GestureState.CANCELLED: {\n this.isSwiping.setValue(FALSE);\n this.handleEndInteraction();\n\n const velocity =\n gestureDirection === 'vertical' ||\n gestureDirection === 'vertical-inverted'\n ? nativeEvent.velocityY\n : nativeEvent.velocityX;\n\n this.animate({ closing: this.props.closing, velocity });\n\n onGestureCanceled?.();\n break;\n }\n case GestureState.END: {\n this.isSwiping.setValue(FALSE);\n\n let distance;\n let translation;\n let velocity;\n\n if (\n gestureDirection === 'vertical' ||\n gestureDirection === 'vertical-inverted'\n ) {\n distance = layout.height;\n translation = nativeEvent.translationY;\n velocity = nativeEvent.velocityY;\n } else {\n distance = layout.width;\n translation = nativeEvent.translationX;\n velocity = nativeEvent.velocityX;\n }\n\n const closing =\n (translation + velocity * gestureVelocityImpact) *\n getInvertedMultiplier(gestureDirection) >\n distance / 2\n ? velocity !== 0 || translation !== 0\n : this.props.closing;\n\n this.animate({ closing, velocity });\n\n if (closing) {\n // We call onClose with a delay to make sure that the animation has already started\n // This will make sure that the state update caused by this doesn't affect start of animation\n this.pendingGestureCallback = setTimeout(() => {\n onClose();\n\n // Trigger an update after we dispatch the action to remove the screen\n // This will make sure that we check if the screen didn't get removed so we can cancel the animation\n this.forceUpdate();\n }, 32) as any as number;\n }\n\n onGestureEnd?.();\n break;\n }\n }\n };\n\n // Memoize this to avoid extra work on re-render\n private getInterpolatedStyle = memoize(\n (\n styleInterpolator: StackCardStyleInterpolator,\n animation: StackCardInterpolationProps\n ) => styleInterpolator(animation)\n );\n\n // Keep track of the animation context when deps changes.\n private getCardAnimation = memoize(\n (\n interpolationIndex: number,\n current: Animated.AnimatedInterpolation,\n next: Animated.AnimatedInterpolation | undefined,\n layout: Layout,\n insetTop: number,\n insetRight: number,\n insetBottom: number,\n insetLeft: number\n ) => ({\n index: interpolationIndex,\n current: { progress: current },\n next: next && { progress: next },\n closing: this.isClosing,\n swiping: this.isSwiping,\n inverted: this.inverted,\n layouts: {\n screen: layout,\n },\n insets: {\n top: insetTop,\n right: insetRight,\n bottom: insetBottom,\n left: insetLeft,\n },\n })\n );\n\n private gestureActivationCriteria() {\n const { layout, gestureDirection, gestureResponseDistance } = this.props;\n const enableTrackpadTwoFingerGesture = true;\n\n const distance =\n gestureResponseDistance !== undefined\n ? gestureResponseDistance\n : gestureDirection === 'vertical' ||\n gestureDirection === 'vertical-inverted'\n ? GESTURE_RESPONSE_DISTANCE_VERTICAL\n : GESTURE_RESPONSE_DISTANCE_HORIZONTAL;\n\n if (gestureDirection === 'vertical') {\n return {\n maxDeltaX: 15,\n minOffsetY: 5,\n hitSlop: { bottom: -layout.height + distance },\n enableTrackpadTwoFingerGesture,\n };\n } else if (gestureDirection === 'vertical-inverted') {\n return {\n maxDeltaX: 15,\n minOffsetY: -5,\n hitSlop: { top: -layout.height + distance },\n enableTrackpadTwoFingerGesture,\n };\n } else {\n const hitSlop = -layout.width + distance;\n const invertedMultiplier = getInvertedMultiplier(gestureDirection);\n\n if (invertedMultiplier === 1) {\n return {\n minOffsetX: 5,\n maxDeltaY: 20,\n hitSlop: { right: hitSlop },\n enableTrackpadTwoFingerGesture,\n };\n } else {\n return {\n minOffsetX: -5,\n maxDeltaY: 20,\n hitSlop: { left: hitSlop },\n enableTrackpadTwoFingerGesture,\n };\n }\n }\n }\n\n private ref = React.createRef();\n\n render() {\n const {\n styleInterpolator,\n interpolationIndex,\n current,\n gesture,\n next,\n layout,\n insets,\n overlay,\n overlayEnabled,\n shadowEnabled,\n gestureEnabled,\n gestureDirection,\n pageOverflowEnabled,\n headerDarkContent,\n children,\n containerStyle: customContainerStyle,\n contentStyle,\n ...rest\n } = this.props;\n\n const interpolationProps = this.getCardAnimation(\n interpolationIndex,\n current,\n next,\n layout,\n insets.top,\n insets.right,\n insets.bottom,\n insets.left\n );\n\n const interpolatedStyle = this.getInterpolatedStyle(\n styleInterpolator,\n interpolationProps\n );\n\n const { containerStyle, cardStyle, overlayStyle, shadowStyle } =\n interpolatedStyle;\n\n const handleGestureEvent = gestureEnabled\n ? Animated.event(\n [\n {\n nativeEvent:\n gestureDirection === 'vertical' ||\n gestureDirection === 'vertical-inverted'\n ? { translationY: gesture }\n : { translationX: gesture },\n },\n ],\n { useNativeDriver }\n )\n : undefined;\n\n const { backgroundColor } = StyleSheet.flatten(contentStyle || {});\n const isTransparent =\n typeof backgroundColor === 'string'\n ? Color(backgroundColor).alpha() === 0\n : false;\n\n return (\n \n {\n // StatusBar messes with translucent status bar on Android\n // So we should only enable it on iOS\n Platform.OS === 'ios' &&\n overlayEnabled &&\n next &&\n getIsModalPresentation(styleInterpolator) ? (\n \n ) : null\n }\n \n \n {overlayEnabled ? (\n \n {overlay({ style: overlayStyle })}\n \n ) : null}\n \n \n \n {shadowEnabled && shadowStyle && !isTransparent ? (\n \n ) : null}\n \n {children}\n \n \n \n \n \n \n );\n }\n}\n\nexport const getIsModalPresentation = (\n cardStyleInterpolator: StackCardStyleInterpolator\n) => {\n return (\n cardStyleInterpolator === forModalPresentationIOS ||\n // Handle custom modal presentation interpolators as well\n cardStyleInterpolator.name === 'forModalPresentationIOS'\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n },\n overlay: {\n flex: 1,\n backgroundColor: '#000',\n },\n shadow: {\n position: 'absolute',\n shadowRadius: 5,\n shadowColor: '#000',\n shadowOpacity: 0.3,\n },\n shadowHorizontal: {\n top: 0,\n bottom: 0,\n width: 3,\n shadowOffset: { width: -1, height: 1 },\n },\n shadowLeft: {\n left: 0,\n },\n shadowRight: {\n right: 0,\n },\n shadowVertical: {\n left: 0,\n right: 0,\n height: 3,\n shadowOffset: { width: 1, height: -1 },\n },\n shadowTop: {\n top: 0,\n },\n shadowBottom: {\n bottom: 0,\n },\n});\n","import getNamedContext from '../getNamedContext';\n\nconst HeaderHeightContext = getNamedContext(\n 'HeaderHeightContext',\n undefined\n);\n\nexport default HeaderHeightContext;\n","import {\n getHeaderTitle,\n HeaderBackContext,\n HeaderHeightContext,\n HeaderShownContext,\n} from '@react-navigation/elements';\nimport { Route, useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport { Animated, StyleSheet, View } from 'react-native';\n\nimport type { Layout, Scene } from '../../types';\nimport ModalPresentationContext from '../../utils/ModalPresentationContext';\nimport useKeyboardManager from '../../utils/useKeyboardManager';\nimport type { Props as HeaderContainerProps } from '../Header/HeaderContainer';\nimport Card from './Card';\n\ntype Props = {\n interpolationIndex: number;\n index: number;\n active: boolean;\n focused: boolean;\n closing: boolean;\n modal: boolean;\n layout: Layout;\n gesture: Animated.Value;\n scene: Scene;\n headerDarkContent: boolean | undefined;\n safeAreaInsetTop: number;\n safeAreaInsetRight: number;\n safeAreaInsetBottom: number;\n safeAreaInsetLeft: number;\n getPreviousScene: (props: { route: Route }) => Scene | undefined;\n getFocusedRoute: () => Route;\n renderHeader: (props: HeaderContainerProps) => React.ReactNode;\n renderScene: (props: { route: Route }) => React.ReactNode;\n onOpenRoute: (props: { route: Route }) => void;\n onCloseRoute: (props: { route: Route }) => void;\n onTransitionStart: (\n props: { route: Route },\n closing: boolean\n ) => void;\n onTransitionEnd: (props: { route: Route }, closing: boolean) => void;\n onGestureStart: (props: { route: Route }) => void;\n onGestureEnd: (props: { route: Route }) => void;\n onGestureCancel: (props: { route: Route }) => void;\n hasAbsoluteFloatHeader: boolean;\n headerHeight: number;\n onHeaderHeightChange: (props: {\n route: Route;\n height: number;\n }) => void;\n isParentHeaderShown: boolean;\n isNextScreenTransparent: boolean;\n detachCurrentScreen: boolean;\n};\n\nconst EPSILON = 0.1;\n\nfunction CardContainer({\n interpolationIndex,\n index,\n active,\n closing,\n gesture,\n focused,\n modal,\n getPreviousScene,\n getFocusedRoute,\n headerDarkContent,\n hasAbsoluteFloatHeader,\n headerHeight,\n onHeaderHeightChange,\n isParentHeaderShown,\n isNextScreenTransparent,\n detachCurrentScreen,\n layout,\n onCloseRoute,\n onOpenRoute,\n onGestureCancel,\n onGestureEnd,\n onGestureStart,\n onTransitionEnd,\n onTransitionStart,\n renderHeader,\n renderScene,\n safeAreaInsetBottom,\n safeAreaInsetLeft,\n safeAreaInsetRight,\n safeAreaInsetTop,\n scene,\n}: Props) {\n const parentHeaderHeight = React.useContext(HeaderHeightContext);\n\n const { onPageChangeStart, onPageChangeCancel, onPageChangeConfirm } =\n useKeyboardManager(\n React.useCallback(() => {\n const { options, navigation } = scene.descriptor;\n\n return (\n navigation.isFocused() && options.keyboardHandlingEnabled !== false\n );\n }, [scene.descriptor])\n );\n\n const handleOpen = () => {\n const { route } = scene.descriptor;\n\n onTransitionEnd({ route }, false);\n onOpenRoute({ route });\n };\n\n const handleClose = () => {\n const { route } = scene.descriptor;\n\n onTransitionEnd({ route }, true);\n onCloseRoute({ route });\n };\n\n const handleGestureBegin = () => {\n const { route } = scene.descriptor;\n\n onPageChangeStart();\n onGestureStart({ route });\n };\n\n const handleGestureCanceled = () => {\n const { route } = scene.descriptor;\n\n onPageChangeCancel();\n onGestureCancel({ route });\n };\n\n const handleGestureEnd = () => {\n const { route } = scene.descriptor;\n\n onGestureEnd({ route });\n };\n\n const handleTransition = ({\n closing,\n gesture,\n }: {\n closing: boolean;\n gesture: boolean;\n }) => {\n const { route } = scene.descriptor;\n\n if (!gesture) {\n onPageChangeConfirm?.(true);\n } else if (active && closing) {\n onPageChangeConfirm?.(false);\n } else {\n onPageChangeCancel?.();\n }\n\n onTransitionStart?.({ route }, closing);\n };\n\n const insets = {\n top: safeAreaInsetTop,\n right: safeAreaInsetRight,\n bottom: safeAreaInsetBottom,\n left: safeAreaInsetLeft,\n };\n\n const { colors } = useTheme();\n\n const [pointerEvents, setPointerEvents] = React.useState<'box-none' | 'none'>(\n 'box-none'\n );\n\n React.useEffect(() => {\n const listener = scene.progress.next?.addListener?.(\n ({ value }: { value: number }) => {\n setPointerEvents(value <= EPSILON ? 'box-none' : 'none');\n }\n );\n\n return () => {\n if (listener) {\n scene.progress.next?.removeListener?.(listener);\n }\n };\n }, [pointerEvents, scene.progress.next]);\n\n const {\n presentation,\n animationEnabled,\n cardOverlay,\n cardOverlayEnabled,\n cardShadowEnabled,\n cardStyle,\n cardStyleInterpolator,\n gestureDirection,\n gestureEnabled,\n gestureResponseDistance,\n gestureVelocityImpact,\n headerMode,\n headerShown,\n transitionSpec,\n } = scene.descriptor.options;\n\n const previousScene = getPreviousScene({ route: scene.descriptor.route });\n\n let backTitle: string | undefined;\n\n if (previousScene) {\n const { options, route } = previousScene.descriptor;\n\n backTitle = getHeaderTitle(options, route.name);\n }\n\n const headerBack = React.useMemo(\n () => (backTitle !== undefined ? { title: backTitle } : undefined),\n [backTitle]\n );\n\n return (\n \n \n \n \n \n \n \n {renderScene({ route: scene.descriptor.route })}\n \n \n \n \n {headerMode !== 'float'\n ? renderHeader({\n mode: 'screen',\n layout,\n scenes: [previousScene, scene],\n getPreviousScene,\n getFocusedRoute,\n onContentHeightChange: onHeaderHeightChange,\n })\n : null}\n \n \n \n );\n}\n\nexport default React.memo(CardContainer);\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n flexDirection: 'column-reverse',\n },\n scene: {\n flex: 1,\n },\n});\n","import * as React from 'react';\nimport { HostComponent, Keyboard, TextInput } from 'react-native';\n\ntype InputRef = React.ElementRef> | undefined;\n\nexport default function useKeyboardManager(isEnabled: () => boolean) {\n // Numeric id of the previously focused text input\n // When a gesture didn't change the tab, we can restore the focused input with this\n const previouslyFocusedTextInputRef = React.useRef(undefined);\n const startTimestampRef = React.useRef(0);\n const keyboardTimeoutRef = React.useRef();\n\n const clearKeyboardTimeout = React.useCallback(() => {\n if (keyboardTimeoutRef.current !== undefined) {\n clearTimeout(keyboardTimeoutRef.current);\n keyboardTimeoutRef.current = undefined;\n }\n }, []);\n\n const onPageChangeStart = React.useCallback(() => {\n if (!isEnabled()) {\n return;\n }\n\n clearKeyboardTimeout();\n\n const input: InputRef = TextInput.State.currentlyFocusedInput();\n\n // When a page change begins, blur the currently focused input\n input?.blur();\n\n // Store the id of this input so we can refocus it if change was cancelled\n previouslyFocusedTextInputRef.current = input;\n\n // Store timestamp for touch start\n startTimestampRef.current = Date.now();\n }, [clearKeyboardTimeout, isEnabled]);\n\n const onPageChangeConfirm = React.useCallback(\n (force: boolean) => {\n if (!isEnabled()) {\n return;\n }\n\n clearKeyboardTimeout();\n\n if (force) {\n // Always dismiss input, even if we don't have a ref to it\n // We might not have the ref if onPageChangeStart was never called\n // This can happen if page change was not from a gesture\n Keyboard.dismiss();\n } else {\n const input = previouslyFocusedTextInputRef.current;\n\n // Dismiss the keyboard only if an input was a focused before\n // This makes sure we don't dismiss input on going back and focusing an input\n input?.blur();\n }\n\n // Cleanup the ID on successful page change\n previouslyFocusedTextInputRef.current = undefined;\n },\n [clearKeyboardTimeout, isEnabled]\n );\n\n const onPageChangeCancel = React.useCallback(() => {\n if (!isEnabled()) {\n return;\n }\n\n clearKeyboardTimeout();\n\n // The page didn't change, we should restore the focus of text input\n const input = previouslyFocusedTextInputRef.current;\n\n if (input) {\n // If the interaction was super short we should make sure keyboard won't hide again.\n\n // Too fast input refocus will result only in keyboard flashing on screen and hiding right away.\n // During first ~100ms keyboard will be dismissed no matter what,\n // so we have to make sure it won't interrupt input refocus logic.\n // That's why when the interaction is shorter than 100ms we add delay so it won't hide once again.\n // Subtracting timestamps makes us sure the delay is executed only when needed.\n if (Date.now() - startTimestampRef.current < 100) {\n keyboardTimeoutRef.current = setTimeout(() => {\n input?.focus();\n previouslyFocusedTextInputRef.current = undefined;\n }, 100);\n } else {\n input?.focus();\n previouslyFocusedTextInputRef.current = undefined;\n }\n }\n }, [clearKeyboardTimeout, isEnabled]);\n\n React.useEffect(() => {\n return () => clearKeyboardTimeout();\n }, [clearKeyboardTimeout]);\n\n return {\n onPageChangeStart,\n onPageChangeConfirm,\n onPageChangeCancel,\n };\n}\n","import {\n Background,\n getDefaultHeaderHeight,\n SafeAreaProviderCompat,\n} from '@react-navigation/elements';\nimport type {\n ParamListBase,\n Route,\n StackNavigationState,\n} from '@react-navigation/native';\nimport Color from 'color';\nimport * as React from 'react';\nimport {\n Animated,\n LayoutChangeEvent,\n Platform,\n StyleSheet,\n} from 'react-native';\nimport type { EdgeInsets } from 'react-native-safe-area-context';\n\nimport {\n forModalPresentationIOS,\n forNoAnimation as forNoAnimationCard,\n} from '../../TransitionConfigs/CardStyleInterpolators';\nimport {\n DefaultTransition,\n ModalFadeTransition,\n ModalTransition,\n} from '../../TransitionConfigs/TransitionPresets';\nimport type {\n Layout,\n Scene,\n StackDescriptor,\n StackDescriptorMap,\n StackHeaderMode,\n StackNavigationOptions,\n} from '../../types';\nimport findLastIndex from '../../utils/findLastIndex';\nimport getDistanceForDirection from '../../utils/getDistanceForDirection';\nimport type { Props as HeaderContainerProps } from '../Header/HeaderContainer';\nimport { MaybeScreen, MaybeScreenContainer } from '../Screens';\nimport { getIsModalPresentation } from './Card';\nimport CardContainer from './CardContainer';\n\ntype GestureValues = {\n [key: string]: Animated.Value;\n};\n\ntype Props = {\n insets: EdgeInsets;\n state: StackNavigationState;\n descriptors: StackDescriptorMap;\n routes: Route[];\n openingRouteKeys: string[];\n closingRouteKeys: string[];\n onOpenRoute: (props: { route: Route }) => void;\n onCloseRoute: (props: { route: Route }) => void;\n getPreviousRoute: (props: {\n route: Route;\n }) => Route | undefined;\n renderHeader: (props: HeaderContainerProps) => React.ReactNode;\n renderScene: (props: { route: Route }) => React.ReactNode;\n isParentHeaderShown: boolean;\n isParentModal: boolean;\n onTransitionStart: (\n props: { route: Route },\n closing: boolean\n ) => void;\n onTransitionEnd: (props: { route: Route }, closing: boolean) => void;\n onGestureStart: (props: { route: Route }) => void;\n onGestureEnd: (props: { route: Route }) => void;\n onGestureCancel: (props: { route: Route }) => void;\n detachInactiveScreens?: boolean;\n};\n\ntype State = {\n routes: Route[];\n descriptors: StackDescriptorMap;\n scenes: Scene[];\n gestures: GestureValues;\n layout: Layout;\n headerHeights: Record;\n};\n\nconst EPSILON = 1e-5;\n\nconst STATE_INACTIVE = 0;\nconst STATE_TRANSITIONING_OR_BELOW_TOP = 1;\nconst STATE_ON_TOP = 2;\n\nconst FALLBACK_DESCRIPTOR = Object.freeze({ options: {} });\n\nconst getInterpolationIndex = (scenes: Scene[], index: number) => {\n const { cardStyleInterpolator } = scenes[index].descriptor.options;\n\n // Start from current card and count backwards the number of cards with same interpolation\n let interpolationIndex = 0;\n\n for (let i = index - 1; i >= 0; i--) {\n const cardStyleInterpolatorCurrent =\n scenes[i]?.descriptor.options.cardStyleInterpolator;\n\n if (cardStyleInterpolatorCurrent !== cardStyleInterpolator) {\n break;\n }\n\n interpolationIndex++;\n }\n\n return interpolationIndex;\n};\n\nconst getIsModal = (\n scene: Scene,\n interpolationIndex: number,\n isParentModal: boolean\n) => {\n if (isParentModal) {\n return true;\n }\n\n const { cardStyleInterpolator } = scene.descriptor.options;\n const isModalPresentation = getIsModalPresentation(cardStyleInterpolator);\n const isModal = isModalPresentation && interpolationIndex !== 0;\n\n return isModal;\n};\n\nconst getHeaderHeights = (\n scenes: Scene[],\n insets: EdgeInsets,\n isParentHeaderShown: boolean,\n isParentModal: boolean,\n layout: Layout,\n previous: Record\n) => {\n return scenes.reduce>((acc, curr, index) => {\n const {\n headerStatusBarHeight = isParentHeaderShown ? 0 : insets.top,\n headerStyle,\n } = curr.descriptor.options;\n\n const style = StyleSheet.flatten(headerStyle || {});\n\n const height =\n 'height' in style && typeof style.height === 'number'\n ? style.height\n : previous[curr.route.key];\n\n const interpolationIndex = getInterpolationIndex(scenes, index);\n const isModal = getIsModal(curr, interpolationIndex, isParentModal);\n\n acc[curr.route.key] =\n typeof height === 'number'\n ? height\n : getDefaultHeaderHeight(layout, isModal, headerStatusBarHeight);\n\n return acc;\n }, {});\n};\n\nconst getDistanceFromOptions = (\n layout: Layout,\n descriptor?: StackDescriptor\n) => {\n const {\n presentation,\n gestureDirection = presentation === 'modal'\n ? ModalTransition.gestureDirection\n : DefaultTransition.gestureDirection,\n } = (descriptor?.options || {}) as StackNavigationOptions;\n\n return getDistanceForDirection(layout, gestureDirection);\n};\n\nconst getProgressFromGesture = (\n gesture: Animated.Value,\n layout: Layout,\n descriptor?: StackDescriptor\n) => {\n const distance = getDistanceFromOptions(\n {\n // Make sure that we have a non-zero distance, otherwise there will be incorrect progress\n // This causes blank screen on web if it was previously inside container with display: none\n width: Math.max(1, layout.width),\n height: Math.max(1, layout.height),\n },\n descriptor\n );\n\n if (distance > 0) {\n return gesture.interpolate({\n inputRange: [0, distance],\n outputRange: [1, 0],\n });\n }\n\n return gesture.interpolate({\n inputRange: [distance, 0],\n outputRange: [0, 1],\n });\n};\n\nexport default class CardStack extends React.Component {\n static getDerivedStateFromProps(\n props: Props,\n state: State\n ): Partial | null {\n if (\n props.routes === state.routes &&\n props.descriptors === state.descriptors\n ) {\n return null;\n }\n\n const gestures = props.routes.reduce((acc, curr) => {\n const descriptor = props.descriptors[curr.key];\n const { animationEnabled } = descriptor?.options || {};\n\n acc[curr.key] =\n state.gestures[curr.key] ||\n new Animated.Value(\n props.openingRouteKeys.includes(curr.key) &&\n animationEnabled !== false\n ? getDistanceFromOptions(state.layout, descriptor)\n : 0\n );\n\n return acc;\n }, {});\n\n const scenes = props.routes.map((route, index, self) => {\n const previousRoute = self[index - 1];\n const nextRoute = self[index + 1];\n\n const oldScene = state.scenes[index];\n\n const currentGesture = gestures[route.key];\n const previousGesture = previousRoute\n ? gestures[previousRoute.key]\n : undefined;\n const nextGesture = nextRoute ? gestures[nextRoute.key] : undefined;\n\n const descriptor =\n props.descriptors[route.key] ||\n state.descriptors[route.key] ||\n (oldScene ? oldScene.descriptor : FALLBACK_DESCRIPTOR);\n\n const nextDescriptor =\n props.descriptors[nextRoute?.key] || state.descriptors[nextRoute?.key];\n\n const previousDescriptor =\n props.descriptors[previousRoute?.key] ||\n state.descriptors[previousRoute?.key];\n\n // When a screen is not the last, it should use next screen's transition config\n // Many transitions also animate the previous screen, so using 2 different transitions doesn't look right\n // For example combining a slide and a modal transition would look wrong otherwise\n // With this approach, combining different transition styles in the same navigator mostly looks right\n // This will still be broken when 2 transitions have different idle state (e.g. modal presentation),\n // but majority of the transitions look alright\n const optionsForTransitionConfig =\n index !== self.length - 1 &&\n nextDescriptor &&\n nextDescriptor.options.presentation !== 'transparentModal'\n ? nextDescriptor.options\n : descriptor.options;\n\n let defaultTransitionPreset =\n optionsForTransitionConfig.presentation === 'modal'\n ? ModalTransition\n : optionsForTransitionConfig.presentation === 'transparentModal'\n ? ModalFadeTransition\n : DefaultTransition;\n\n const {\n animationEnabled = Platform.OS !== 'web' &&\n Platform.OS !== 'windows' &&\n Platform.OS !== 'macos',\n gestureEnabled = Platform.OS === 'ios' && animationEnabled,\n gestureDirection = defaultTransitionPreset.gestureDirection,\n transitionSpec = defaultTransitionPreset.transitionSpec,\n cardStyleInterpolator = animationEnabled === false\n ? forNoAnimationCard\n : defaultTransitionPreset.cardStyleInterpolator,\n headerStyleInterpolator = defaultTransitionPreset.headerStyleInterpolator,\n cardOverlayEnabled = (Platform.OS !== 'ios' &&\n optionsForTransitionConfig.presentation !== 'transparentModal') ||\n getIsModalPresentation(cardStyleInterpolator),\n } = optionsForTransitionConfig;\n\n const headerMode: StackHeaderMode =\n descriptor.options.headerMode ??\n (!(\n optionsForTransitionConfig.presentation === 'modal' ||\n optionsForTransitionConfig.presentation === 'transparentModal' ||\n nextDescriptor?.options.presentation === 'modal' ||\n nextDescriptor?.options.presentation === 'transparentModal' ||\n getIsModalPresentation(cardStyleInterpolator)\n ) &&\n Platform.OS === 'ios' &&\n descriptor.options.header === undefined\n ? 'float'\n : 'screen');\n\n const scene = {\n route,\n descriptor: {\n ...descriptor,\n options: {\n ...descriptor.options,\n animationEnabled,\n cardOverlayEnabled,\n cardStyleInterpolator,\n gestureDirection,\n gestureEnabled,\n headerStyleInterpolator,\n transitionSpec,\n headerMode,\n },\n },\n progress: {\n current: getProgressFromGesture(\n currentGesture,\n state.layout,\n descriptor\n ),\n next:\n nextGesture &&\n nextDescriptor?.options.presentation !== 'transparentModal'\n ? getProgressFromGesture(\n nextGesture,\n state.layout,\n nextDescriptor\n )\n : undefined,\n previous: previousGesture\n ? getProgressFromGesture(\n previousGesture,\n state.layout,\n previousDescriptor\n )\n : undefined,\n },\n __memo: [\n state.layout,\n descriptor,\n nextDescriptor,\n previousDescriptor,\n currentGesture,\n nextGesture,\n previousGesture,\n ],\n };\n\n if (\n oldScene &&\n scene.__memo.every((it, i) => {\n // @ts-expect-error: we haven't added __memo to the annotation to prevent usage elsewhere\n return oldScene.__memo[i] === it;\n })\n ) {\n return oldScene;\n }\n\n return scene;\n });\n\n return {\n routes: props.routes,\n scenes,\n gestures,\n descriptors: props.descriptors,\n headerHeights: getHeaderHeights(\n scenes,\n props.insets,\n props.isParentHeaderShown,\n props.isParentModal,\n state.layout,\n state.headerHeights\n ),\n };\n }\n\n constructor(props: Props) {\n super(props);\n\n this.state = {\n routes: [],\n scenes: [],\n gestures: {},\n layout: SafeAreaProviderCompat.initialMetrics.frame,\n descriptors: this.props.descriptors,\n // Used when card's header is null and mode is float to make transition\n // between screens with headers and those without headers smooth.\n // This is not a great heuristic here. We don't know synchronously\n // on mount what the header height is so we have just used the most\n // common cases here.\n headerHeights: {},\n };\n }\n\n private handleLayout = (e: LayoutChangeEvent) => {\n const { height, width } = e.nativeEvent.layout;\n\n const layout = { width, height };\n\n this.setState((state, props) => {\n if (height === state.layout.height && width === state.layout.width) {\n return null;\n }\n\n return {\n layout,\n headerHeights: getHeaderHeights(\n state.scenes,\n props.insets,\n props.isParentHeaderShown,\n props.isParentModal,\n layout,\n state.headerHeights\n ),\n };\n });\n };\n\n private handleHeaderLayout = ({\n route,\n height,\n }: {\n route: Route;\n height: number;\n }) => {\n this.setState(({ headerHeights }) => {\n const previousHeight = headerHeights[route.key];\n\n if (previousHeight === height) {\n return null;\n }\n\n return {\n headerHeights: {\n ...headerHeights,\n [route.key]: height,\n },\n };\n });\n };\n\n private getFocusedRoute = () => {\n const { state } = this.props;\n\n return state.routes[state.index];\n };\n\n private getPreviousScene = ({ route }: { route: Route }) => {\n const { getPreviousRoute } = this.props;\n const { scenes } = this.state;\n\n const previousRoute = getPreviousRoute({ route });\n\n if (previousRoute) {\n const previousScene = scenes.find(\n (scene) => scene.descriptor.route.key === previousRoute.key\n );\n\n return previousScene;\n }\n\n return undefined;\n };\n\n render() {\n const {\n insets,\n state,\n routes,\n closingRouteKeys,\n onOpenRoute,\n onCloseRoute,\n renderHeader,\n renderScene,\n isParentHeaderShown,\n isParentModal,\n onTransitionStart,\n onTransitionEnd,\n onGestureStart,\n onGestureEnd,\n onGestureCancel,\n detachInactiveScreens = Platform.OS === 'web' ||\n Platform.OS === 'android' ||\n Platform.OS === 'ios',\n } = this.props;\n\n const { scenes, layout, gestures, headerHeights } = this.state;\n\n const focusedRoute = state.routes[state.index];\n const focusedHeaderHeight = headerHeights[focusedRoute.key];\n\n const isFloatHeaderAbsolute = this.state.scenes.slice(-2).some((scene) => {\n const options = scene.descriptor.options ?? {};\n const { headerMode, headerTransparent, headerShown = true } = options;\n\n if (\n headerTransparent ||\n headerShown === false ||\n headerMode === 'screen'\n ) {\n return true;\n }\n\n return false;\n });\n\n let activeScreensLimit = 1;\n\n for (let i = scenes.length - 1; i >= 0; i--) {\n const { options } = scenes[i].descriptor;\n const {\n // By default, we don't want to detach the previous screen of the active one for modals\n detachPreviousScreen = options.presentation === 'transparentModal'\n ? false\n : getIsModalPresentation(options.cardStyleInterpolator)\n ? i !==\n findLastIndex(scenes, (scene) => {\n const { cardStyleInterpolator } = scene.descriptor.options;\n\n return (\n cardStyleInterpolator === forModalPresentationIOS ||\n cardStyleInterpolator?.name === 'forModalPresentationIOS'\n );\n })\n : true,\n } = options;\n\n if (detachPreviousScreen === false) {\n activeScreensLimit++;\n } else {\n // Check at least last 2 screens before stopping\n // This will make sure that screen isn't detached when another screen is animating on top of the transparent one\n // For example, (Opaque -> Transparent -> Opaque)\n if (i <= scenes.length - 2) {\n break;\n }\n }\n }\n\n const floatingHeader = (\n \n {renderHeader({\n mode: 'float',\n layout,\n scenes,\n getPreviousScene: this.getPreviousScene,\n getFocusedRoute: this.getFocusedRoute,\n onContentHeightChange: this.handleHeaderLayout,\n style: [\n styles.floating,\n isFloatHeaderAbsolute && [\n // Without this, the header buttons won't be touchable on Android when headerTransparent: true\n { height: focusedHeaderHeight },\n styles.absolute,\n ],\n ],\n })}\n \n );\n\n return (\n \n {isFloatHeaderAbsolute ? null : floatingHeader}\n \n {routes.map((route, index, self) => {\n const focused = focusedRoute.key === route.key;\n const gesture = gestures[route.key];\n const scene = scenes[index];\n\n // For the screens that shouldn't be active, the value is 0\n // For those that should be active, but are not the top screen, the value is 1\n // For those on top of the stack and with interaction enabled, the value is 2\n // For the old implementation, it stays the same it was\n let isScreenActive:\n | Animated.AnimatedInterpolation<0 | 1 | 2>\n | 2\n | 1\n | 0 = 1;\n\n if (index < self.length - activeScreensLimit - 1) {\n // screen should be inactive because it is too deep in the stack\n isScreenActive = STATE_INACTIVE;\n } else {\n const sceneForActivity = scenes[self.length - 1];\n const outputValue =\n index === self.length - 1\n ? STATE_ON_TOP // the screen is on top after the transition\n : index >= self.length - activeScreensLimit\n ? STATE_TRANSITIONING_OR_BELOW_TOP // the screen should stay active after the transition, it is not on top but is in activeLimit\n : STATE_INACTIVE; // the screen should be active only during the transition, it is at the edge of activeLimit\n isScreenActive = sceneForActivity\n ? sceneForActivity.progress.current.interpolate({\n inputRange: [0, 1 - EPSILON, 1],\n outputRange: [1, 1, outputValue],\n extrapolate: 'clamp',\n })\n : STATE_TRANSITIONING_OR_BELOW_TOP;\n }\n\n const {\n headerShown = true,\n headerTransparent,\n headerStyle,\n headerTintColor,\n freezeOnBlur,\n } = scene.descriptor.options;\n\n const safeAreaInsetTop = insets.top;\n const safeAreaInsetRight = insets.right;\n const safeAreaInsetBottom = insets.bottom;\n const safeAreaInsetLeft = insets.left;\n\n const headerHeight =\n headerShown !== false ? headerHeights[route.key] : 0;\n\n let headerDarkContent: boolean | undefined;\n\n if (headerShown) {\n if (typeof headerTintColor === 'string') {\n headerDarkContent = Color(headerTintColor).isDark();\n } else {\n const flattenedHeaderStyle = StyleSheet.flatten(headerStyle);\n\n if (\n flattenedHeaderStyle &&\n 'backgroundColor' in flattenedHeaderStyle &&\n typeof flattenedHeaderStyle.backgroundColor === 'string'\n ) {\n headerDarkContent = !Color(\n flattenedHeaderStyle.backgroundColor\n ).isDark();\n }\n }\n }\n\n // Start from current card and count backwards the number of cards with same interpolation\n const interpolationIndex = getInterpolationIndex(scenes, index);\n const isModal = getIsModal(\n scene,\n interpolationIndex,\n isParentModal\n );\n\n const isNextScreenTransparent =\n scenes[index + 1]?.descriptor.options.presentation ===\n 'transparentModal';\n\n const detachCurrentScreen =\n scenes[index + 1]?.descriptor.options.detachPreviousScreen !==\n false;\n\n return (\n \n \n \n );\n })}\n \n {isFloatHeaderAbsolute ? floatingHeader : null}\n \n );\n }\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n },\n absolute: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n },\n floating: {\n zIndex: 1,\n },\n});\n","import {\n HeaderShownContext,\n SafeAreaProviderCompat,\n} from '@react-navigation/elements';\nimport {\n ParamListBase,\n Route,\n StackActions,\n StackNavigationState,\n} from '@react-navigation/native';\nimport * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport {\n EdgeInsets,\n SafeAreaInsetsContext,\n} from 'react-native-safe-area-context';\n\nimport type {\n StackDescriptorMap,\n StackNavigationConfig,\n StackNavigationHelpers,\n} from '../../types';\nimport ModalPresentationContext from '../../utils/ModalPresentationContext';\nimport { GestureHandlerRootView } from '../GestureHandler';\nimport HeaderContainer, {\n Props as HeaderContainerProps,\n} from '../Header/HeaderContainer';\nimport CardStack from './CardStack';\n\ntype Props = StackNavigationConfig & {\n state: StackNavigationState;\n navigation: StackNavigationHelpers;\n descriptors: StackDescriptorMap;\n};\n\ntype State = {\n // Local copy of the routes which are actually rendered\n routes: Route[];\n // Previous routes, to compare whether routes have changed or not\n previousRoutes: Route[];\n // Previous descriptors, to compare whether descriptors have changed or not\n previousDescriptors: StackDescriptorMap;\n // List of routes being opened, we need to animate pushing of these new routes\n openingRouteKeys: string[];\n // List of routes being closed, we need to animate popping of these routes\n closingRouteKeys: string[];\n // List of routes being replaced, we need to keep a copy until the new route animates in\n replacingRouteKeys: string[];\n // Since the local routes can vary from the routes from props, we need to keep the descriptors for old routes\n // Otherwise we won't be able to access the options for routes that were removed\n descriptors: StackDescriptorMap;\n};\n\nconst GestureHandlerWrapper = GestureHandlerRootView ?? View;\n\n/**\n * Compare two arrays with primitive values as the content.\n * We need to make sure that both values and order match.\n */\nconst isArrayEqual = (a: any[], b: any[]) =>\n a.length === b.length && a.every((it, index) => it === b[index]);\n\nexport default class StackView extends React.Component {\n static getDerivedStateFromProps(\n props: Readonly,\n state: Readonly\n ) {\n // If there was no change in routes, we don't need to compute anything\n if (\n (props.state.routes === state.previousRoutes ||\n isArrayEqual(\n props.state.routes.map((r) => r.key),\n state.previousRoutes.map((r) => r.key)\n )) &&\n state.routes.length\n ) {\n let routes = state.routes;\n let previousRoutes = state.previousRoutes;\n let descriptors = props.descriptors;\n let previousDescriptors = state.previousDescriptors;\n\n if (props.descriptors !== state.previousDescriptors) {\n descriptors = state.routes.reduce((acc, route) => {\n acc[route.key] =\n props.descriptors[route.key] || state.descriptors[route.key];\n\n return acc;\n }, {});\n\n previousDescriptors = props.descriptors;\n }\n\n if (props.state.routes !== state.previousRoutes) {\n // if any route objects have changed, we should update them\n const map = props.state.routes.reduce>>(\n (acc, route) => {\n acc[route.key] = route;\n return acc;\n },\n {}\n );\n\n routes = state.routes.map((route) => map[route.key] || route);\n previousRoutes = props.state.routes;\n }\n\n return {\n routes,\n previousRoutes,\n descriptors,\n previousDescriptors,\n };\n }\n\n // Here we determine which routes were added or removed to animate them\n // We keep a copy of the route being removed in local state to be able to animate it\n\n let routes =\n props.state.index < props.state.routes.length - 1\n ? // Remove any extra routes from the state\n // The last visible route should be the focused route, i.e. at current index\n props.state.routes.slice(0, props.state.index + 1)\n : props.state.routes;\n\n // Now we need to determine which routes were added and removed\n let {\n openingRouteKeys,\n closingRouteKeys,\n replacingRouteKeys,\n previousRoutes,\n } = state;\n\n const previousFocusedRoute = previousRoutes[previousRoutes.length - 1] as\n | Route\n | undefined;\n const nextFocusedRoute = routes[routes.length - 1];\n\n const isAnimationEnabled = (key: string) => {\n const descriptor = props.descriptors[key] || state.descriptors[key];\n\n return descriptor ? descriptor.options.animationEnabled !== false : true;\n };\n\n const getAnimationTypeForReplace = (key: string) => {\n const descriptor = props.descriptors[key] || state.descriptors[key];\n\n return descriptor.options.animationTypeForReplace ?? 'push';\n };\n\n if (\n previousFocusedRoute &&\n previousFocusedRoute.key !== nextFocusedRoute.key\n ) {\n // We only need to animate routes if the focused route changed\n // Animating previous routes won't be visible coz the focused route is on top of everything\n\n if (!previousRoutes.some((r) => r.key === nextFocusedRoute.key)) {\n // A new route has come to the focus, we treat this as a push\n // A replace can also trigger this, the animation should look like push\n\n if (\n isAnimationEnabled(nextFocusedRoute.key) &&\n !openingRouteKeys.includes(nextFocusedRoute.key)\n ) {\n // In this case, we need to animate pushing the focused route\n // We don't care about animating any other added routes because they won't be visible\n openingRouteKeys = [...openingRouteKeys, nextFocusedRoute.key];\n\n closingRouteKeys = closingRouteKeys.filter(\n (key) => key !== nextFocusedRoute.key\n );\n replacingRouteKeys = replacingRouteKeys.filter(\n (key) => key !== nextFocusedRoute.key\n );\n\n if (!routes.some((r) => r.key === previousFocusedRoute.key)) {\n // The previous focused route isn't present in state, we treat this as a replace\n\n openingRouteKeys = openingRouteKeys.filter(\n (key) => key !== previousFocusedRoute.key\n );\n\n if (getAnimationTypeForReplace(nextFocusedRoute.key) === 'pop') {\n closingRouteKeys = [\n ...closingRouteKeys,\n previousFocusedRoute.key,\n ];\n\n // By default, new routes have a push animation, so we add it to `openingRouteKeys` before\n // But since user configured it to animate the old screen like a pop, we need to add this without animation\n // So remove it from `openingRouteKeys` which will remove the animation\n openingRouteKeys = openingRouteKeys.filter(\n (key) => key !== nextFocusedRoute.key\n );\n\n // Keep the route being removed at the end to animate it out\n routes = [...routes, previousFocusedRoute];\n } else {\n replacingRouteKeys = [\n ...replacingRouteKeys,\n previousFocusedRoute.key,\n ];\n\n closingRouteKeys = closingRouteKeys.filter(\n (key) => key !== previousFocusedRoute.key\n );\n\n // Keep the old route in the state because it's visible under the new route, and removing it will feel abrupt\n // We need to insert it just before the focused one (the route being pushed)\n // After the push animation is completed, routes being replaced will be removed completely\n routes = routes.slice();\n routes.splice(routes.length - 1, 0, previousFocusedRoute);\n }\n }\n }\n } else if (!routes.some((r) => r.key === previousFocusedRoute.key)) {\n // The previously focused route was removed, we treat this as a pop\n\n if (\n isAnimationEnabled(previousFocusedRoute.key) &&\n !closingRouteKeys.includes(previousFocusedRoute.key)\n ) {\n closingRouteKeys = [...closingRouteKeys, previousFocusedRoute.key];\n\n // Sometimes a route can be closed before the opening animation finishes\n // So we also need to remove it from the opening list\n openingRouteKeys = openingRouteKeys.filter(\n (key) => key !== previousFocusedRoute.key\n );\n replacingRouteKeys = replacingRouteKeys.filter(\n (key) => key !== previousFocusedRoute.key\n );\n\n // Keep a copy of route being removed in the state to be able to animate it\n routes = [...routes, previousFocusedRoute];\n }\n } else {\n // Looks like some routes were re-arranged and no focused routes were added/removed\n // i.e. the currently focused route already existed and the previously focused route still exists\n // We don't know how to animate this\n }\n } else if (replacingRouteKeys.length || closingRouteKeys.length) {\n // Keep the routes we are closing or replacing if animation is enabled for them\n routes = routes.slice();\n routes.splice(\n routes.length - 1,\n 0,\n ...state.routes.filter(({ key }) =>\n isAnimationEnabled(key)\n ? replacingRouteKeys.includes(key) || closingRouteKeys.includes(key)\n : false\n )\n );\n }\n\n if (!routes.length) {\n throw new Error(\n 'There should always be at least one route in the navigation state.'\n );\n }\n\n const descriptors = routes.reduce((acc, route) => {\n acc[route.key] =\n props.descriptors[route.key] || state.descriptors[route.key];\n\n return acc;\n }, {});\n\n return {\n routes,\n previousRoutes: props.state.routes,\n previousDescriptors: props.descriptors,\n openingRouteKeys,\n closingRouteKeys,\n replacingRouteKeys,\n descriptors,\n };\n }\n\n state: State = {\n routes: [],\n previousRoutes: [],\n previousDescriptors: {},\n openingRouteKeys: [],\n closingRouteKeys: [],\n replacingRouteKeys: [],\n descriptors: {},\n };\n\n private getPreviousRoute = ({ route }: { route: Route }) => {\n const { closingRouteKeys, replacingRouteKeys } = this.state;\n const routes = this.state.routes.filter(\n (r) =>\n r.key === route.key ||\n (!closingRouteKeys.includes(r.key) &&\n !replacingRouteKeys.includes(r.key))\n );\n\n const index = routes.findIndex((r) => r.key === route.key);\n\n return routes[index - 1];\n };\n\n private renderScene = ({ route }: { route: Route }) => {\n const descriptor =\n this.state.descriptors[route.key] || this.props.descriptors[route.key];\n\n if (!descriptor) {\n return null;\n }\n\n return descriptor.render();\n };\n\n private renderHeader = (props: HeaderContainerProps) => {\n return ;\n };\n\n private handleOpenRoute = ({ route }: { route: Route }) => {\n const { state, navigation } = this.props;\n const { closingRouteKeys, replacingRouteKeys } = this.state;\n\n if (\n closingRouteKeys.some((key) => key === route.key) &&\n replacingRouteKeys.every((key) => key !== route.key) &&\n state.routeNames.includes(route.name) &&\n !state.routes.some((r) => r.key === route.key)\n ) {\n // If route isn't present in current state, but was closing, assume that a close animation was cancelled\n // So we need to add this route back to the state\n navigation.navigate(route);\n } else {\n this.setState((state) => ({\n routes: state.replacingRouteKeys.length\n ? state.routes.filter(\n (r) => !state.replacingRouteKeys.includes(r.key)\n )\n : state.routes,\n openingRouteKeys: state.openingRouteKeys.filter(\n (key) => key !== route.key\n ),\n closingRouteKeys: state.closingRouteKeys.filter(\n (key) => key !== route.key\n ),\n replacingRouteKeys: [],\n }));\n }\n };\n\n private handleCloseRoute = ({ route }: { route: Route }) => {\n const { state, navigation } = this.props;\n\n if (state.routes.some((r) => r.key === route.key)) {\n // If a route exists in state, trigger a pop\n // This will happen in when the route was closed from the card component\n // e.g. When the close animation triggered from a gesture ends\n navigation.dispatch({\n ...StackActions.pop(),\n source: route.key,\n target: state.key,\n });\n } else {\n // We need to clean up any state tracking the route and pop it immediately\n this.setState((state) => ({\n routes: state.routes.filter((r) => r.key !== route.key),\n openingRouteKeys: state.openingRouteKeys.filter(\n (key) => key !== route.key\n ),\n closingRouteKeys: state.closingRouteKeys.filter(\n (key) => key !== route.key\n ),\n }));\n }\n };\n\n private handleTransitionStart = (\n { route }: { route: Route },\n closing: boolean\n ) =>\n this.props.navigation.emit({\n type: 'transitionStart',\n data: { closing },\n target: route.key,\n });\n\n private handleTransitionEnd = (\n { route }: { route: Route },\n closing: boolean\n ) =>\n this.props.navigation.emit({\n type: 'transitionEnd',\n data: { closing },\n target: route.key,\n });\n\n private handleGestureStart = ({ route }: { route: Route }) => {\n this.props.navigation.emit({\n type: 'gestureStart',\n target: route.key,\n });\n };\n\n private handleGestureEnd = ({ route }: { route: Route }) => {\n this.props.navigation.emit({\n type: 'gestureEnd',\n target: route.key,\n });\n };\n\n private handleGestureCancel = ({ route }: { route: Route }) => {\n this.props.navigation.emit({\n type: 'gestureCancel',\n target: route.key,\n });\n };\n\n render() {\n const {\n state,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n descriptors: _,\n ...rest\n } = this.props;\n\n const { routes, descriptors, openingRouteKeys, closingRouteKeys } =\n this.state;\n\n return (\n \n \n \n {(insets) => (\n \n {(isParentModal) => (\n \n {(isParentHeaderShown) => (\n \n )}\n \n )}\n \n )}\n \n \n \n );\n }\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n },\n});\n","import {\n createNavigatorFactory,\n DefaultNavigatorOptions,\n EventArg,\n ParamListBase,\n StackActionHelpers,\n StackActions,\n StackNavigationState,\n StackRouter,\n StackRouterOptions,\n useNavigationBuilder,\n} from '@react-navigation/native';\nimport * as React from 'react';\nimport warnOnce from 'warn-once';\n\nimport type {\n StackHeaderMode,\n StackNavigationConfig,\n StackNavigationEventMap,\n StackNavigationOptions,\n} from '../types';\nimport StackView from '../views/Stack/StackView';\n\ntype Props = DefaultNavigatorOptions<\n ParamListBase,\n StackNavigationState,\n StackNavigationOptions,\n StackNavigationEventMap\n> &\n StackRouterOptions &\n StackNavigationConfig;\n\nfunction StackNavigator({\n id,\n initialRouteName,\n children,\n screenListeners,\n screenOptions,\n ...rest\n}: Props) {\n // @ts-expect-error: mode is deprecated\n const mode = rest.mode as 'card' | 'modal' | undefined;\n\n warnOnce(\n mode != null,\n `Stack Navigator: 'mode=\"${mode}\"' is deprecated. Use 'presentation: \"${mode}\"' in 'screenOptions' instead.\\n\\nSee https://reactnavigation.org/docs/stack-navigator#presentation for more details.`\n );\n\n // @ts-expect-error: headerMode='none' is deprecated\n const headerMode = rest.headerMode as StackHeaderMode | 'none' | undefined;\n\n warnOnce(\n headerMode === 'none',\n `Stack Navigator: 'headerMode=\"none\"' is deprecated. Use 'headerShown: false' in 'screenOptions' instead.\\n\\nSee https://reactnavigation.org/docs/stack-navigator/#headershown for more details.`\n );\n\n warnOnce(\n headerMode != null && headerMode !== 'none',\n `Stack Navigator: 'headerMode' is moved to 'options'. Moved it to 'screenOptions' to keep current behavior.\\n\\nSee https://reactnavigation.org/docs/stack-navigator/#headermode for more details.`\n );\n\n // @ts-expect-error: headerMode='none' is deprecated\n const keyboardHandlingEnabled = rest.keyboardHandlingEnabled;\n\n warnOnce(\n keyboardHandlingEnabled !== undefined,\n `Stack Navigator: 'keyboardHandlingEnabled' is moved to 'options'. Moved it to 'screenOptions' to keep current behavior.\\n\\nSee https://reactnavigation.org/docs/stack-navigator/#keyboardhandlingenabled for more details.`\n );\n\n const defaultScreenOptions: StackNavigationOptions = {\n presentation: mode,\n headerShown: headerMode ? headerMode !== 'none' : true,\n headerMode: headerMode && headerMode !== 'none' ? headerMode : undefined,\n keyboardHandlingEnabled,\n };\n\n const { state, descriptors, navigation, NavigationContent } =\n useNavigationBuilder<\n StackNavigationState,\n StackRouterOptions,\n StackActionHelpers,\n StackNavigationOptions,\n StackNavigationEventMap\n >(StackRouter, {\n id,\n initialRouteName,\n children,\n screenListeners,\n screenOptions,\n defaultScreenOptions,\n });\n\n React.useEffect(\n () =>\n // @ts-expect-error: there may not be a tab navigator in parent\n navigation.addListener?.('tabPress', (e) => {\n const isFocused = navigation.isFocused();\n\n // Run the operation in the next frame so we're sure all listeners have been run\n // This is necessary to know if preventDefault() has been called\n requestAnimationFrame(() => {\n if (\n state.index > 0 &&\n isFocused &&\n !(e as unknown as EventArg<'tabPress', true>).defaultPrevented\n ) {\n // When user taps on already focused tab and we're inside the tab,\n // reset the stack to replicate native behaviour\n navigation.dispatch({\n ...StackActions.popToTop(),\n target: state.key,\n });\n }\n });\n }),\n [navigation, state.index, state.key]\n );\n\n return (\n \n \n \n );\n}\n\nexport default createNavigatorFactory<\n StackNavigationState,\n StackNavigationOptions,\n StackNavigationEventMap,\n typeof StackNavigator\n>(StackNavigator);\n","/**\n * Copyright © 2024 650 Industries.\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * see: https://github.com/necolas/react-native-web\n */\n\nimport React from 'react';\nimport { StyleSheet, View, unstable_createElement as createElement } from 'react-native-web';\n\nimport type { CheckboxProps, CheckboxEvent } from './Checkbox.types';\n\nconst ExpoCheckbox = React.forwardRef(\n ({ color, disabled, onChange, onValueChange, style, value, ...other }: CheckboxProps, ref) => {\n const handleChange = (event: React.SyntheticEvent) => {\n const value = event.nativeEvent.target.checked;\n event.nativeEvent.value = value;\n onChange?.(event);\n onValueChange?.(value);\n };\n\n const fakeControl = (\n \n );\n\n const nativeControl = createElement('input', {\n 'aria-checked': value,\n 'aria-disabled': disabled,\n checked: value,\n disabled,\n onChange: handleChange,\n style: [styles.nativeControl, styles.cursorInherit],\n type: 'checkbox',\n });\n\n return (\n \n {nativeControl}\n {fakeControl}\n \n );\n }\n);\n\nexport default ExpoCheckbox;\n\nconst styles = StyleSheet.create({\n root: {\n // @ts-ignore\n cursor: 'pointer',\n height: 16,\n userSelect: 'none',\n width: 16,\n },\n cursorDefault: {\n // @ts-ignore\n cursor: 'default',\n },\n\n cursorInherit: {\n // @ts-ignore\n cursor: 'inherit',\n },\n fakeControl: {\n ...StyleSheet.absoluteFillObject,\n pointerEvents: 'none',\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 // @ts-ignore\n backgroundImage:\n '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: {\n ...StyleSheet.absoluteFillObject,\n height: '100%',\n margin: 0,\n padding: 0,\n width: '100%',\n // @ts-ignore\n WebkitAppearance: 'none',\n },\n});\n\nexport const name = 'ExpoCheckbox';\n","import Checkbox from './ExpoCheckbox';\nexport * from './Checkbox.types';\n\nexport { Checkbox };\n\n/** @hidden */\nexport default Checkbox;\n","import { CodedError } from 'expo-modules-core';\n\nexport function getContext(canvas: HTMLCanvasElement): CanvasRenderingContext2D {\n const ctx = canvas.getContext('2d');\n if (!ctx) {\n throw new CodedError('ERR_IMAGE_MANIPULATOR', 'Failed to create canvas context');\n }\n return ctx;\n}\n","import { ActionResize } from '../ImageManipulator.types';\nimport { getContext } from '../utils/getContext.web';\n\n/**\n * Hermite resize - fast image resize/resample using Hermite filter. 1 cpu version!\n * https://stackoverflow.com/a/18320662/4047926\n *\n * @param {HTMLCanvasElement} canvas\n * @param {int} width\n * @param {int} height\n * @param {boolean} resizeCanvas if true, canvas will be resized. Optional.\n */\nfunction resampleSingle(\n canvas: HTMLCanvasElement,\n width: number,\n height: number,\n resizeCanvas: boolean = false\n): HTMLCanvasElement {\n const result = document.createElement('canvas');\n result.width = canvas.width;\n result.height = canvas.height;\n\n const widthSource = canvas.width;\n const heightSource = canvas.height;\n width = Math.round(width);\n height = Math.round(height);\n\n const wRatio = widthSource / width;\n const hRatio = heightSource / height;\n const wRatioHalf = Math.ceil(wRatio / 2);\n const hRatioHalf = Math.ceil(hRatio / 2);\n\n const ctx = getContext(canvas);\n\n const img = ctx.getImageData(0, 0, widthSource, heightSource);\n const img2 = ctx.createImageData(width, height);\n const data = img.data;\n const data2 = img2.data;\n\n for (let j = 0; j < height; j++) {\n for (let i = 0; i < width; i++) {\n const x2 = (i + j * width) * 4;\n let weight = 0;\n let weights = 0;\n let weightsAlpha = 0;\n let gx_r = 0;\n let gx_g = 0;\n let gx_b = 0;\n let gx_a = 0;\n const yCenter = (j + 0.5) * hRatio;\n const yy_start = Math.floor(j * hRatio);\n const yy_stop = Math.ceil((j + 1) * hRatio);\n for (let yy = yy_start; yy < yy_stop; yy++) {\n const dy = Math.abs(yCenter - (yy + 0.5)) / hRatioHalf;\n const center_x = (i + 0.5) * wRatio;\n const w0 = dy * dy; //pre-calc part of w\n const xx_start = Math.floor(i * wRatio);\n const xx_stop = Math.ceil((i + 1) * wRatio);\n for (let xx = xx_start; xx < xx_stop; xx++) {\n const dx = Math.abs(center_x - (xx + 0.5)) / wRatioHalf;\n const w = Math.sqrt(w0 + dx * dx);\n if (w >= 1) {\n //pixel too far\n continue;\n }\n //hermite filter\n weight = 2 * w * w * w - 3 * w * w + 1;\n const xPosition = 4 * (xx + yy * widthSource);\n //alpha\n gx_a += weight * data[xPosition + 3];\n weightsAlpha += weight;\n //colors\n if (data[xPosition + 3] < 255) {\n weight = (weight * data[xPosition + 3]) / 250;\n }\n gx_r += weight * data[xPosition];\n gx_g += weight * data[xPosition + 1];\n gx_b += weight * data[xPosition + 2];\n weights += weight;\n }\n }\n data2[x2] = gx_r / weights;\n data2[x2 + 1] = gx_g / weights;\n data2[x2 + 2] = gx_b / weights;\n data2[x2 + 3] = gx_a / weightsAlpha;\n }\n }\n\n //resize canvas\n if (resizeCanvas) {\n result.width = width;\n result.height = height;\n }\n\n //draw\n const context = getContext(result);\n context.putImageData(img2, 0, 0);\n\n return result;\n}\n\nexport default (canvas: HTMLCanvasElement, { width, height }: ActionResize['resize']) => {\n const imageRatio = canvas.width / canvas.height;\n\n let requestedWidth: number = 0;\n let requestedHeight: number = 0;\n if (width !== undefined) {\n requestedWidth = width;\n requestedHeight = requestedWidth / imageRatio;\n }\n if (height !== undefined) {\n requestedHeight = height;\n if (requestedWidth === 0) {\n requestedWidth = requestedHeight * imageRatio;\n }\n }\n\n return resampleSingle(canvas, requestedWidth, requestedHeight, true);\n};\n","import { ActionRotate } from '../ImageManipulator.types';\nimport { getContext } from '../utils/getContext.web';\n\nfunction sizeFromAngle(\n width: number,\n height: number,\n angle: number\n): { width: number; height: number } {\n const radians = (angle * Math.PI) / 180;\n let c = Math.cos(radians);\n let s = Math.sin(radians);\n if (s < 0) {\n s = -s;\n }\n if (c < 0) {\n c = -c;\n }\n return { width: height * s + width * c, height: height * c + width * s };\n}\n\nexport default (canvas: HTMLCanvasElement, degrees: ActionRotate['rotate']) => {\n const { width, height } = sizeFromAngle(canvas.width, canvas.height, degrees);\n\n const result = document.createElement('canvas');\n result.width = width;\n result.height = height;\n\n const context = getContext(result);\n\n // Set the origin to the center of the image\n context.translate(result.width / 2, result.height / 2);\n\n // Rotate the canvas around the origin\n const radians = (degrees * Math.PI) / 180;\n context.rotate(radians);\n\n // Draw the image\n context.drawImage(canvas, -canvas.width / 2, -canvas.height / 2, canvas.width, canvas.height);\n\n return result;\n};\n","import { ImageResult, SaveOptions, Action } from './ImageManipulator.types';\nimport { crop, extent, flip, resize, rotate } from './actions/index.web';\nimport { getContext } from './utils/getContext.web';\n\nfunction getResults(canvas: HTMLCanvasElement, options?: SaveOptions): ImageResult {\n let uri: string;\n if (options) {\n const { format = 'png' } = options;\n if (options.format === 'png' && options.compress !== undefined) {\n console.warn('compress is not supported with png format.');\n }\n const quality = Math.min(1, Math.max(0, options.compress ?? 1));\n uri = canvas.toDataURL('image/' + format, quality);\n } else {\n // defaults to PNG with no loss\n uri = canvas.toDataURL();\n }\n return {\n uri,\n width: canvas.width,\n height: canvas.height,\n base64: uri.replace(/^data:image\\/\\w+;base64,/, ''),\n };\n}\n\nfunction loadImageAsync(uri: string): Promise {\n return new Promise((resolve, reject) => {\n const imageSource = new Image();\n imageSource.crossOrigin = 'anonymous';\n const canvas = document.createElement('canvas');\n imageSource.onload = () => {\n canvas.width = imageSource.naturalWidth;\n canvas.height = imageSource.naturalHeight;\n\n const context = getContext(canvas);\n context.drawImage(imageSource, 0, 0, imageSource.naturalWidth, imageSource.naturalHeight);\n\n resolve(canvas);\n };\n imageSource.onerror = () => reject(canvas);\n imageSource.src = uri;\n });\n}\n\nexport default {\n async manipulateAsync(\n uri: string,\n actions: Action[] = [],\n options: SaveOptions\n ): Promise {\n const originalCanvas = await loadImageAsync(uri);\n\n const resultCanvas = actions.reduce((canvas, action) => {\n if ('crop' in action) {\n return crop(canvas, action.crop);\n } else if ('extent' in action) {\n return extent(canvas, action.extent);\n } else if ('resize' in action) {\n return resize(canvas, action.resize);\n } else if ('flip' in action) {\n return flip(canvas, action.flip);\n } else if ('rotate' in action) {\n return rotate(canvas, action.rotate);\n } else {\n return canvas;\n }\n }, originalCanvas);\n\n return getResults(resultCanvas, options);\n },\n};\n","import { CodedError } from 'expo-modules-core';\n\nimport { ActionCrop } from '../ImageManipulator.types';\nimport { getContext } from '../utils/getContext.web';\n\nexport default (canvas: HTMLCanvasElement, options: ActionCrop['crop']) => {\n // ensure values are defined.\n let { originX = 0, originY = 0, width = 0, height = 0 } = options;\n const clamp = (value, max) => Math.max(0, Math.min(max, value));\n // lock within bounds.\n width = clamp(width, canvas.width);\n height = clamp(height, canvas.height);\n originX = clamp(originX, canvas.width);\n originY = clamp(originY, canvas.height);\n\n // lock sum of crop.\n width = Math.min(originX + width, canvas.width) - originX;\n height = Math.min(originY + height, canvas.height) - originY;\n\n if (width === 0 || height === 0) {\n throw new CodedError(\n 'ERR_IMAGE_MANIPULATOR_CROP',\n 'Crop size must be greater than 0: ' + JSON.stringify(options, null, 2)\n );\n }\n\n const result = document.createElement('canvas');\n result.width = width;\n result.height = height;\n\n const context = getContext(result);\n context.drawImage(canvas, originX, originY, width, height, 0, 0, width, height);\n\n return result;\n};\n","import { CodedError } from 'expo-modules-core';\n\nimport { ActionExtent } from '../ImageManipulator.types';\nimport { getContext } from '../utils/getContext.web';\n\nexport default (canvas: HTMLCanvasElement, options: ActionExtent['extent']) => {\n // ensure values are defined.\n const { backgroundColor = null, originX = 0, originY = 0, width = 0, height = 0 } = options;\n\n if (width === 0 || height === 0) {\n throw new CodedError(\n 'ERR_IMAGE_MANIPULATOR_EXTENT',\n 'Extent size must be greater than 0: ' + JSON.stringify(options, null, 2)\n );\n }\n\n const result = document.createElement('canvas');\n result.width = width;\n result.height = height;\n\n const sx = originX < 0 ? 0 : originX;\n const sy = originY < 0 ? 0 : originY;\n const sw =\n originX < 0 ? Math.min(canvas.width, width + originX) : Math.min(canvas.width - originX, width);\n const sh =\n originY < 0\n ? Math.min(canvas.height, height + originY)\n : Math.min(canvas.height - originY, height);\n\n const dx = originX < 0 ? -originX : 0;\n const dy = originY < 0 ? -originY : 0;\n\n const context = getContext(result);\n\n if (backgroundColor != null) {\n context.fillStyle = backgroundColor;\n context.fillRect(0, 0, width, height);\n }\n\n context.drawImage(canvas, sx, sy, sw, sh, dx, dy, sw, sh);\n\n return result;\n};\n","import { ActionFlip, FlipType } from '../ImageManipulator.types';\nimport { getContext } from '../utils/getContext.web';\n\nexport default (canvas: HTMLCanvasElement, flip: ActionFlip['flip']) => {\n const xFlip = flip === FlipType.Horizontal;\n const yFlip = flip === FlipType.Vertical;\n\n const result = document.createElement('canvas');\n result.width = canvas.width;\n result.height = canvas.height;\n\n const context = getContext(result);\n\n // Set the origin to the center of the image\n context.translate(canvas.width / 2, canvas.height / 2);\n\n // Flip/flop the canvas\n const xScale = xFlip ? -1 : 1;\n const yScale = yFlip ? -1 : 1;\n context.scale(xScale, yScale);\n\n // Draw the image\n context.drawImage(canvas, -canvas.width / 2, -canvas.height / 2, canvas.width, canvas.height);\n\n return result;\n};\n","import {\n Action,\n ActionCrop,\n ActionExtent,\n ActionFlip,\n ActionResize,\n ActionRotate,\n FlipType,\n SaveFormat,\n SaveOptions,\n} from './ImageManipulator.types';\n\nexport function validateArguments(uri: string, actions: Action[], saveOptions: SaveOptions) {\n validateUri(uri);\n validateActions(actions);\n validateSaveOptions(saveOptions);\n}\n\nexport function validateUri(uri: string): void {\n if (!(typeof uri === 'string')) {\n throw new TypeError('The \"uri\" argument must be a string');\n }\n}\n\nexport function validateActions(actions: Action[]): void {\n if (!Array.isArray(actions)) {\n throw new TypeError('The \"actions\" argument must be an array');\n }\n for (const action of actions) {\n if (typeof action !== 'object' || action === null) {\n throw new TypeError('Action must be an object');\n }\n const supportedActionTypes = ['crop', 'extent', 'flip', 'rotate', 'resize'];\n const actionKeys = Object.keys(action);\n if (actionKeys.length !== 1) {\n throw new TypeError(\n `Single action must contain exactly one transformation: ${supportedActionTypes.join(', ')}`\n );\n }\n const actionType = actionKeys[0];\n if (!supportedActionTypes.includes(actionType)) {\n throw new TypeError(`Unsupported action type: ${actionType}`);\n }\n\n if (actionType === 'crop') {\n validateCropAction(action as ActionCrop);\n } else if (actionType === 'extent') {\n validateExtentAction(action as ActionExtent);\n } else if (actionType === 'flip') {\n validateFlipAction(action as ActionFlip);\n } else if (actionType === 'rotate') {\n validateRotateAction(action as ActionRotate);\n } else if (actionType === 'resize') {\n validateResizeAction(action as ActionResize);\n }\n }\n}\n\nfunction validateCropAction(action: ActionCrop): void {\n const isValid =\n typeof action.crop === 'object' &&\n action.crop !== null &&\n typeof action.crop.originX === 'number' &&\n typeof action.crop.originY === 'number' &&\n typeof action.crop.width === 'number' &&\n typeof action.crop.height === 'number';\n if (!isValid) {\n throw new TypeError(\n 'Crop action must be an object of shape { originX: number; originY: number; width: number; height: number }'\n );\n }\n}\n\nfunction validateExtentAction(action: ActionExtent): void {\n const isValid =\n typeof action.extent === 'object' &&\n action.extent !== null &&\n (action.extent.backgroundColor == null || typeof action.extent.backgroundColor === 'string') &&\n (action.extent.originX == null || typeof action.extent.originX === 'number') &&\n (action.extent.originY == null || typeof action.extent.originY === 'number') &&\n typeof action.extent.width === 'number' &&\n typeof action.extent.height === 'number';\n if (!isValid) {\n throw new TypeError(\n 'Extent action must be an object of shape { backgroundColor?: string; originX?: number; originY?: number; width: number; height: number }'\n );\n }\n}\n\nfunction validateFlipAction(action: ActionFlip): void {\n if (\n typeof action.flip !== 'string' ||\n ![FlipType.Horizontal, FlipType.Vertical].includes(action.flip)\n ) {\n throw new TypeError(`Unsupported flip type: ${action.flip}`);\n }\n}\n\nfunction validateRotateAction(action: ActionRotate): void {\n if (typeof action.rotate !== 'number') {\n throw new TypeError('Rotation must be a number');\n }\n}\n\nfunction validateResizeAction(action: ActionResize): void {\n const isValid =\n typeof action.resize === 'object' &&\n action.resize !== null &&\n (typeof action.resize.width === 'number' || typeof action.resize.width === 'undefined') &&\n (typeof action.resize.height === 'number' || typeof action.resize.height === 'undefined');\n if (!isValid) {\n throw new TypeError(\n 'Resize action must be an object of shape { width?: number; height?: number }'\n );\n }\n}\n\nexport function validateSaveOptions({ base64, compress, format }: SaveOptions): void {\n if (base64 !== undefined && typeof base64 !== 'boolean') {\n throw new TypeError('The \"base64\" argument must be a boolean');\n }\n if (compress !== undefined) {\n if (typeof compress !== 'number') {\n throw new TypeError('The \"compress\" argument must be a number');\n }\n if (compress < 0 || compress > 1) {\n throw new TypeError('The \"compress\" argument must be a number between 0 and 1');\n }\n }\n const allowedFormats = [SaveFormat.JPEG, SaveFormat.PNG, SaveFormat.WEBP];\n if (format !== undefined && !allowedFormats.includes(format)) {\n throw new TypeError(`The \"format\" argument must be one of: ${allowedFormats.join(', ')}`);\n }\n}\n","import { UnavailabilityError } from 'expo-modules-core';\n\nimport ExpoImageManipulator from './ExpoImageManipulator';\nimport { Action, ImageResult, SaveFormat, SaveOptions } from './ImageManipulator.types';\nimport { validateArguments } from './validators';\n\n// @needsAudit\n/**\n * Manipulate the image provided via `uri`. Available modifications are rotating, flipping (mirroring),\n * resizing and cropping. Each invocation results in a new file. With one invocation you can provide\n * a set of actions to perform over the image. Overwriting the source file would not have an effect\n * in displaying the result as images are cached.\n * @param uri URI of the file to manipulate. Should be on the local file system or a base64 data URI.\n * @param actions An array of objects representing manipulation options. Each object should have\n * __only one__ of the keys that corresponds to specific transformation.\n * @param saveOptions A map defining how modified image should be saved.\n * @return Promise which fulfils with [`ImageResult`](#imageresult) object.\n */\nexport async function manipulateAsync(\n uri: string,\n actions: Action[] = [],\n saveOptions: SaveOptions = {}\n): Promise {\n if (!ExpoImageManipulator.manipulateAsync) {\n throw new UnavailabilityError('ImageManipulator', 'manipulateAsync');\n }\n\n validateArguments(uri, actions, saveOptions);\n\n const { format = SaveFormat.JPEG, ...rest } = saveOptions;\n return await ExpoImageManipulator.manipulateAsync(uri, actions, { format, ...rest });\n}\n\nexport * from './ImageManipulator.types';\n","// @needsAudit\nexport type ImageResult = {\n /**\n * An URI to the modified image (usable as the source for an `Image` or `Video` element).\n */\n uri: string;\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 * It is included if the `base64` save option was truthy, and is a string containing the\n * JPEG/PNG (depending on `format`) data of the image in Base64. Prepend that with `'data:image/xxx;base64,'`\n * to get a data URI, which you can use as the source for an `Image` element for example\n * (where `xxx` is `jpeg` or `png`).\n */\n base64?: string;\n};\n\n// @needsAudit\nexport type ActionResize = {\n /**\n * Values correspond to the result image dimensions. If you specify only one value, the other will\n * be calculated automatically to preserve image ratio.\n */\n resize: {\n width?: number;\n height?: number;\n };\n};\n\n// @needsAudit\nexport type ActionRotate = {\n /**\n * Degrees to rotate the image. Rotation is clockwise when the value is positive and\n * counter-clockwise when negative.\n */\n rotate: number;\n};\n\n// @docsMissing\nexport enum FlipType {\n Vertical = 'vertical',\n Horizontal = 'horizontal',\n}\n\n// @needsAudit\nexport type ActionFlip = {\n /**\n * An axis on which image will be flipped. Only one flip per transformation is available. If you\n * want to flip according to both axes then provide two separate transformations.\n */\n flip: FlipType;\n};\n\n// @needsAudit\nexport type ActionCrop = {\n /**\n * Fields specify top-left corner and dimensions of a crop rectangle.\n */\n crop: {\n originX: number;\n originY: number;\n width: number;\n height: number;\n };\n};\n\n// @needsAudit\nexport type ActionExtent = {\n /**\n * Set the image size and offset. If the image is enlarged, unfilled areas are set to the `backgroundColor`.\n * To position the image, use `originX` and `originY`.\n *\n * @platform web\n */\n extent: {\n backgroundColor?: string | null;\n originX?: number;\n originY?: number;\n width: number;\n height: number;\n };\n};\n\n// @docsMissing\nexport type Action = ActionResize | ActionRotate | ActionFlip | ActionCrop | ActionExtent;\n\n// @docsMissing\nexport enum SaveFormat {\n JPEG = 'jpeg',\n PNG = 'png',\n WEBP = 'webp',\n}\n\n// @needsAudit\n/**\n * A map defining how modified image should be saved.\n */\nexport type SaveOptions = {\n /**\n * Whether to also include the image data in Base64 format.\n */\n base64?: boolean;\n /**\n * A value in range `0.0` - `1.0` specifying compression level of the result image. `1` means\n * no compression (highest quality) and `0` the highest compression (lowest quality).\n */\n compress?: number;\n /**\n * Specifies what type of compression should be used and what is the result file extension.\n * `SaveFormat.PNG` compression is lossless but slower, `SaveFormat.JPEG` is faster but the image\n * has visible artifacts. Defaults to `SaveFormat.JPEG`\n */\n format?: SaveFormat;\n};\n","// Copyright © 2024 650 Industries.\n\n'use client';\n\nimport { 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","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","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 { 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 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: File, 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\n image.onload = () => {\n resolve({\n uri,\n width: image.naturalWidth ?? image.width,\n height: image.naturalHeight ?? image.height,\n mimeType: targetFile.type,\n fileName: targetFile.name,\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 ImagePickerErrorResult,\n ImagePickerOptions,\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\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 return await ExponentImagePicker.launchCameraAsync(validateOptions(options));\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 return await ExponentImagePicker.launchImageLibraryAsync(options ?? {});\n}\n\nexport * from './ImagePicker.types';\n\nexport type { PermissionExpiration, PermissionHookOptions, PermissionResponse };\nexport { PermissionStatus };\n","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`, containing additional iOS-specific field.\n */\nexport type MediaLibraryPermissionResponse = PermissionResponse & {\n /**\n * Indicates if your app has access to the whole or only part of the photo library. Possible values are:\n * - `'all'` if the user granted your app access to the whole photo library\n * - `'limited'` if the user granted your app access only to selected photos (only available on Android API 34+ and iOS 14.0+)\n * - `'none'` if user denied or hasn't yet granted the permission\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\n */\n AUTOMATIC = 'automatic',\n}\n\n/**\n * Picker preferred asset representation mode. Its values are directly mapped to the [`PHPickerConfigurationAssetRepresentationMode`](https://developer.apple.com/documentation/photokit/phpickerconfigurationassetrepresentationmode).\n *\n * @platform ios\n */\nexport enum UIImagePickerPreferredAssetRepresentationMode {\n /**\n * A mode that indicates that the system chooses the appropriate asset representation.\n */\n Automatic = 'automatic',\n /**\n * A mode that uses the most compatible asset representation.\n */\n Compatible = 'compatible',\n /**\n * A mode that uses the current representation to avoid transcoding, if possible.\n */\n Current = 'current',\n}\n\nexport enum CameraType {\n /**\n * Back/rear camera.\n */\n back = 'back',\n /**\n * Front camera\n */\n front = 'front',\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 */\n fileName?: string | null;\n /**\n * File size of the picked image or video, in bytes.\n *\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 * The MIME type of the selected asset or `null` if could not be determined.\n */\n mimeType?: string;\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\n/**\n * Type representing successful and canceled pick result.\n */\nexport type ImagePickerResult = ImagePickerSuccessResult | ImagePickerCanceledResult;\n\n/**\n * Type representing successful pick result.\n */\nexport type ImagePickerSuccessResult = {\n /**\n * Boolean flag set to `false` showing that the request was successful.\n */\n canceled: false;\n /**\n * An array of picked assets.\n */\n assets: ImagePickerAsset[];\n};\n\n/**\n * Type representing canceled pick result.\n */\nexport type ImagePickerCanceledResult = {\n /**\n * Boolean flag set to `true` showing that the request was canceled.\n */\n canceled: true;\n /**\n * `null` signifying that the request was canceled.\n */\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 * > - On iOS cropping a `.bmp` image will convert it to `.png`.\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 * @platform android\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 * Selects the camera-facing type. The `CameraType` enum provides two options:\n * `front` for the front-facing camera and `back` for the back-facing camera.\n * - **On Android**, the behavior of this option may vary based on the camera app installed on the device.\n * @default CameraType.back\n * @platform ios\n * @platform android\n */\n cameraType?: CameraType;\n /**\n * Choose [preferred asset representation mode](https://developer.apple.com/documentation/photokit/phpickerconfigurationassetrepresentationmode)\n * to use when loading assets.\n * @default ImagePicker.UIImagePickerPreferredAssetRepresentationMode.Automatic\n * @platform ios 14+\n */\n preferredAssetRepresentationMode?: UIImagePickerPreferredAssetRepresentationMode;\n /**\n * Uses the legacy image picker on Android. This will allow media to be selected from outside the users photo library.\n * @platform android\n * @default false\n */\n legacy?: boolean;\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 * 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 { CodedError } from './CodedError';\nimport Platform from '../Platform';\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","// When users dangerously import a file inside of react-native, it breaks the web alias.\n// This is one of the most common, and cryptic web errors that users encounter.\n// This conditional side-effect provides a more helpful error message for debugging.\n// Use a wrapper `__DEV__` to remove this entire block in production.\nif (__DEV__) {\n if (\n // Skip mocking if someone is shimming this value out.\n !('__fbBatchedBridgeConfig' in global)\n ) {\n Object.defineProperty(global, '__fbBatchedBridgeConfig', {\n get() {\n throw new Error(\n \"Your web project is importing a module from 'react-native' instead of 'react-native-web'. Learn more: https://expo.fyi/fb-batched-bridge-config-web\"\n );\n },\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 */\n\nimport { unmountComponentAtNode } from 'react-dom';\nexport default unmountComponentAtNode;","/**\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 */\n\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar RootTagContext = /*#__PURE__*/React.createContext(null);\nvar AppContainer = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var children = props.children,\n WrapperComponent = props.WrapperComponent;\n var innerView = /*#__PURE__*/React.createElement(View, {\n children: children,\n key: 1,\n style: styles.appContainer\n });\n if (WrapperComponent) {\n innerView = /*#__PURE__*/React.createElement(WrapperComponent, null, innerView);\n }\n return /*#__PURE__*/React.createElement(RootTagContext.Provider, {\n value: props.rootTag\n }, /*#__PURE__*/React.createElement(View, {\n ref: forwardedRef,\n style: styles.appContainer\n }, innerView));\n});\nAppContainer.displayName = 'AppContainer';\nexport default AppContainer;\nvar styles = StyleSheet.create({\n appContainer: {\n flex: 1,\n pointerEvents: 'box-none'\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\nimport { hydrate as domLegacyHydrate, render as domLegacyRender } from 'react-dom';\nimport { createRoot as domCreateRoot, hydrateRoot as domHydrateRoot } from 'react-dom/client';\nimport unmountComponentAtNode from '../unmountComponentAtNode';\nimport { createSheet } from '../StyleSheet/dom';\nexport function hydrate(element, root) {\n createSheet(root);\n return domHydrateRoot(root, element);\n}\nexport function render(element, root) {\n createSheet(root);\n var reactRoot = domCreateRoot(root);\n reactRoot.render(element);\n return reactRoot;\n}\nexport function hydrateLegacy(element, root, callback) {\n createSheet(root);\n domLegacyHydrate(element, root, callback);\n return {\n unmount: function unmount() {\n return unmountComponentAtNode(root);\n }\n };\n}\nexport default function renderLegacy(element, root, callback) {\n createSheet(root);\n domLegacyRender(element, root, callback);\n return {\n unmount: function unmount() {\n return unmountComponentAtNode(root);\n }\n };\n}","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\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 */\n\nimport invariant from 'fbjs/lib/invariant';\nimport unmountComponentAtNode from '../unmountComponentAtNode';\nimport renderApplication, { getApplication as _getApplication } from './renderApplication';\nvar emptyObject = {};\nvar runnables = {};\nvar componentProviderInstrumentationHook = component => component();\nvar wrapperComponentProvider;\n\n/**\n * `AppRegistry` is the JS entry point to running all React Native apps.\n */\nexport default class AppRegistry {\n static getAppKeys() {\n return Object.keys(runnables);\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 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 mode: appParameters.mode || 'concurrent',\n rootTag: appParameters.rootTag\n })\n };\n return appKey;\n }\n static registerConfig(config) {\n config.forEach(_ref => {\n var appKey = _ref.appKey,\n component = _ref.component,\n run = _ref.run;\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 }\n\n // TODO: fix style sheet creation when using this method\n static registerRunnable(appKey, run) {\n runnables[appKey] = {\n run\n };\n return appKey;\n }\n static runApplication(appKey, appParameters) {\n var isDevelopment = process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test';\n if (isDevelopment) {\n var params = _objectSpread({}, appParameters);\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 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 return runnables[appKey].run(appParameters);\n }\n static setComponentProviderInstrumentationHook(hook) {\n componentProviderInstrumentationHook = hook;\n }\n static setWrapperComponentProvider(provider) {\n wrapperComponentProvider = provider;\n }\n static unmountApplicationComponentAtRootTag(rootTag) {\n unmountComponentAtNode(rootTag);\n }\n}","import _extends from \"@babel/runtime/helpers/extends\";\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 */\n\nimport AppContainer from './AppContainer';\nimport invariant from 'fbjs/lib/invariant';\nimport renderLegacy, { hydrateLegacy, 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 mode = options.mode,\n rootTag = options.rootTag;\n var renderFn = shouldHydrate ? mode === 'concurrent' ? hydrate : hydrateLegacy : mode === 'concurrent' ? render : renderLegacy;\n invariant(rootTag, 'Expect to have a valid rootTag, instead got ', rootTag);\n return renderFn( /*#__PURE__*/React.createElement(AppContainer, {\n WrapperComponent: WrapperComponent,\n ref: callback,\n rootTag: rootTag\n }, /*#__PURE__*/React.createElement(RootComponent, initialProps)), rootTag);\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));\n // Don't escape CSS text\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 return {\n element,\n getStyleElement\n };\n}","import '../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 let qualifiedComponent = component;\n\n if (process.env.NODE_ENV !== 'production') {\n const { withDevTools } = require('./withDevTools') as typeof import('./withDevTools');\n qualifiedComponent = withDevTools(component);\n }\n\n AppRegistry.registerComponent('main', () => qualifiedComponent);\n // Skip querying the DOM if we're in a Node.js environment.\n if (Platform.OS === 'web' && typeof window !== 'undefined') {\n const rootTag = document.getElementById('root');\n if (process.env.NODE_ENV !== 'production') {\n if (!rootTag) {\n throw new Error('Required HTML element with id \"root\" was not found in the document HTML.');\n }\n }\n AppRegistry.runApplication('main', {\n rootTag,\n hydrate: process.env.EXPO_PUBLIC_USE_STATIC === '1',\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 * @format\n */\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';\nimport { warnOnce } from '../../modules/warnOnce';\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};\nvar pickProps = props => pick(props, forwardPropsList);\nfunction TouchableWithoutFeedback(props, forwardedRef) {\n warnOnce('TouchableWithoutFeedback', 'TouchableWithoutFeedback is deprecated. Please use Pressable.');\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}\nvar MemoedTouchableWithoutFeedback = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(TouchableWithoutFeedback));\nMemoedTouchableWithoutFeedback.displayName = 'TouchableWithoutFeedback';\nexport default MemoedTouchableWithoutFeedback;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"animating\", \"color\", \"hidesWhenStopped\", \"size\", \"style\"];\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 */\n\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\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});\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 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 \"aria-valuemax\": 1,\n \"aria-valuemin\": 0,\n ref: forwardedRef,\n role: \"progressbar\",\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: 'rotate(0deg)'\n },\n '100%': {\n transform: 'rotate(360deg)'\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 * 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\nimport * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport canUseDOM from '../../modules/canUseDom';\nfunction ModalPortal(props) {\n var children = props.children;\n var elementRef = React.useRef(null);\n if (canUseDOM && !elementRef.current) {\n var element = document.createElement('div');\n if (element && document.body) {\n document.body.appendChild(element);\n elementRef.current = element;\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}\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 */\n\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport createElement from '../createElement';\nvar ANIMATION_DURATION = 300;\nfunction getAnimationStyle(animationType, visible) {\n if (animationType === 'slide') {\n return visible ? animatedSlideInStyles : animatedSlideOutStyles;\n }\n if (animationType === 'fade') {\n return visible ? animatedFadeInStyles : animatedFadeOutStyles;\n }\n return visible ? styles.container : styles.hidden;\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 var _React$useState = React.useState(false),\n isRendering = _React$useState[0],\n setIsRendering = _React$useState[1];\n var wasVisible = React.useRef(false);\n var wasRendering = 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 if (visible) {\n if (onShow) {\n onShow();\n }\n } else {\n setIsRendering(false);\n }\n }, [onShow, visible]);\n React.useEffect(() => {\n if (wasRendering.current && !isRendering && onDismiss) {\n onDismiss();\n }\n wasRendering.current = isRendering;\n }, [isRendering, onDismiss]);\n React.useEffect(() => {\n if (visible) {\n setIsRendering(true);\n }\n if (visible !== wasVisible.current && !isAnimated) {\n // Manually call `animationEndCallback` if no animation is used\n animationEndCallback();\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}\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: 'translateY(0%)',\n animationKeyframes: {\n '0%': {\n transform: 'translateY(100%)'\n },\n '100%': {\n transform: 'translateY(0%)'\n }\n }\n },\n slideOut: {\n transform: 'translateY(100%)',\n animationKeyframes: {\n '0%': {\n transform: 'translateY(0%)'\n },\n '100%': {\n transform: 'translateY(100%)'\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 * 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 */\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 React.useEffect(() => {\n if (canUseDOM) {\n var closeOnEscape = e => {\n if (active && e.key === 'Escape') {\n e.stopPropagation();\n if (onRequestClose) {\n onRequestClose();\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 \"aria-modal\": true,\n ref: forwardedRef,\n role: active ? 'dialog' : null,\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 */\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/**\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 role: 'none',\n tabIndex: 0,\n style: styles.focusBracket\n });\n};\nfunction attemptFocus(element) {\n if (!canUseDOM) {\n return false;\n }\n try {\n element.focus();\n } catch (e) {\n // Do nothing\n }\n return document.activeElement === element;\n}\nfunction focusFirstDescendant(element) {\n for (var i = 0; i < element.childNodes.length; i++) {\n var child = element.childNodes[i];\n if (attemptFocus(child) || focusFirstDescendant(child)) {\n return true;\n }\n }\n return false;\n}\nfunction focusLastDescendant(element) {\n for (var i = element.childNodes.length - 1; i >= 0; i--) {\n var child = element.childNodes[i];\n if (attemptFocus(child) || focusLastDescendant(child)) {\n return true;\n }\n }\n return false;\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 try {\n focusRef.current.trapFocusInProgress = true;\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 if (focusRef.current.lastFocusedElement === document.activeElement) {\n hasFocused = focusLastDescendant(trapElementRef.current);\n }\n // If we couldn't focus a new element then we need to focus onto the trap target\n if (!hasFocused && trapElementRef.current != null && document.activeElement) {\n UIManager.focus(trapElementRef.current);\n }\n }\n } finally {\n focusRef.current.trapFocusInProgress = false;\n }\n focusRef.current.lastFocusedElement = document.activeElement;\n };\n\n // Call the trapFocus callback at least once when this modal has been activated.\n trapFocus();\n document.addEventListener('focus', trapFocus, true);\n return () => document.removeEventListener('focus', trapFocus, true);\n }\n }, [active]);\n\n // To be fully compliant with WCAG we need to refocus element that triggered opening modal\n // after closing it\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};\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 * 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 */\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 = {};\nfunction notifyActiveModalListeners() {\n if (activeModalStack.length === 0) {\n return;\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}\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 var index = activeModalStack.indexOf(modalId);\n if (index !== -1) {\n activeModalStack.splice(index, 1);\n notifyActiveModalListeners();\n }\n}\nfunction addActiveModal(modalId, listener) {\n removeActiveModal(modalId);\n activeModalStack.push(modalId);\n activeModalListeners[modalId] = listener;\n notifyActiveModalListeners();\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);\n\n // Set a unique model identifier so we can correctly route\n // dismissals and check the layering of modals.\n var modalId = React.useMemo(() => uniqueModalIdentifier++, []);\n var _React$useState = React.useState(false),\n isActive = _React$useState[0],\n setIsActive = _React$useState[1];\n var onDismissCallback = React.useCallback(() => {\n removeActiveModal(modalId);\n if (onDismiss) {\n onDismiss();\n }\n }, [modalId, onDismiss]);\n var onShowCallback = React.useCallback(() => {\n addActiveModal(modalId, setIsActive);\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;","import { StyleSheet, Dimensions } from 'react-native';\n\nconst { height, width } = Dimensions.get('window');\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n width: '100%',\n height: '100%',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'absolute'\n },\n overlay: {\n width: width,\n height: height,\n position: 'absolute',\n backgroundColor: 'rgba(52,52,52,0.5)'\n },\n contentContainer: {\n maxWidth: '80%',\n borderRadius: 5,\n backgroundColor: 'white',\n padding: 10\n },\n content: {\n justifyContent: 'center',\n alignItems: 'center',\n padding: 10\n },\n action: {\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'flex-end',\n marginTop: 5\n },\n title: {\n paddingVertical: 5,\n paddingHorizontal: 15,\n color: '#626262',\n fontSize: 18\n },\n message: {\n paddingTop: 5,\n color: '#7b7b7b',\n fontSize: 14\n },\n button: {\n paddingHorizontal: 10,\n paddingVertical: 7,\n margin: 5,\n borderRadius: 5\n },\n buttonText: {\n color: '#fff',\n fontSize: 13\n }\n});\n\nexport default styles;\n","import React, { Component } from 'react';\nimport {\n Text,\n Animated,\n View,\n TouchableOpacity,\n TouchableWithoutFeedback,\n ActivityIndicator,\n BackHandler,\n Modal,\n Platform,\n} from 'react-native';\n\nimport PropTypes from 'prop-types';\n\nimport styles from './styles';\n\nconst HwBackHandler = BackHandler;\nconst HW_BACK_EVENT = 'hardwareBackPress';\n\nconst { OS } = Platform;\n\nexport default class AwesomeAlert extends Component {\n constructor(props) {\n super(props);\n const { show } = this.props;\n this.springValue = new Animated.Value(props.animatedValue);\n\n this.state = {\n showSelf: false,\n };\n\n if (show) this._springShow(true);\n }\n\n componentDidMount() {\n HwBackHandler.addEventListener(HW_BACK_EVENT, this._handleHwBackEvent);\n }\n\n _springShow = (fromConstructor) => {\n const { useNativeDriver = false } = this.props;\n\n this._toggleAlert(fromConstructor);\n Animated.spring(this.springValue, {\n toValue: 1,\n bounciness: 10,\n useNativeDriver,\n }).start();\n };\n\n _springHide = () => {\n const { useNativeDriver = false } = this.props;\n\n if (this.state.showSelf === true) {\n Animated.spring(this.springValue, {\n toValue: 0,\n tension: 10,\n useNativeDriver,\n }).start();\n\n setTimeout(() => {\n this._toggleAlert();\n this._onDismiss();\n }, 70);\n }\n };\n\n _toggleAlert = (fromConstructor) => {\n if (fromConstructor) this.state = { showSelf: true };\n else this.setState({ showSelf: !this.state.showSelf });\n };\n\n _handleHwBackEvent = () => {\n const { closeOnHardwareBackPress } = this.props;\n if (this.state.showSelf && closeOnHardwareBackPress) {\n this._springHide();\n return true;\n } else if (!closeOnHardwareBackPress && this.state.showSelf) {\n return true;\n }\n\n return false;\n };\n\n _onTapOutside = () => {\n const { closeOnTouchOutside } = this.props;\n if (closeOnTouchOutside) this._springHide();\n };\n\n _onDismiss = () => {\n const { onDismiss } = this.props;\n onDismiss && onDismiss();\n };\n\n _renderButton = (data) => {\n const {\n testID,\n text,\n backgroundColor,\n buttonStyle,\n buttonTextStyle,\n onPress,\n } = data;\n\n return (\n \n {text}\n \n );\n };\n\n _renderAlert = () => {\n const animation = { transform: [{ scale: this.springValue }] };\n\n const { showProgress } = this.props;\n const { title, message, customView = null } = this.props;\n\n const {\n showCancelButton,\n cancelText,\n cancelButtonColor,\n cancelButtonStyle,\n cancelButtonTextStyle,\n onCancelPressed,\n cancelButtonTestID\n } = this.props;\n\n const {\n showConfirmButton,\n confirmText,\n confirmButtonColor,\n confirmButtonStyle,\n confirmButtonTextStyle,\n onConfirmPressed,\n confirmButtonTestID\n } = this.props;\n\n const {\n alertContainerStyle,\n overlayStyle,\n progressSize,\n progressColor,\n contentContainerStyle,\n contentStyle,\n titleStyle,\n messageStyle,\n actionContainerStyle,\n } = this.props;\n\n const cancelButtonData = {\n testID: cancelButtonTestID,\n text: cancelText,\n backgroundColor: cancelButtonColor,\n buttonStyle: cancelButtonStyle,\n buttonTextStyle: cancelButtonTextStyle,\n onPress: onCancelPressed,\n };\n\n const confirmButtonData = {\n testID: confirmButtonTestID,\n text: confirmText,\n backgroundColor: confirmButtonColor,\n buttonStyle: confirmButtonStyle,\n buttonTextStyle: confirmButtonTextStyle,\n onPress: onConfirmPressed,\n };\n\n return (\n \n \n \n \n \n \n {showProgress ? (\n \n ) : null}\n {title ? (\n {title}\n ) : null}\n {message ? (\n {message}\n ) : null}\n {customView}\n \n \n {showCancelButton ? this._renderButton(cancelButtonData) : null}\n {showConfirmButton ? this._renderButton(confirmButtonData) : null}\n \n \n \n );\n };\n\n render() {\n const { show, showSelf } = this.state;\n const { modalProps = {}, closeOnHardwareBackPress } = this.props;\n\n const wrapInModal = OS === 'android' || OS === 'ios';\n\n return showSelf ?\n wrapInModal ? (\n {\n if (showSelf && closeOnHardwareBackPress) {\n this._springHide();\n }\n }}\n {...modalProps}\n >\n {this._renderAlert()}\n \n ) : this._renderAlert()\n : null;\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { show } = nextProps;\n const { showSelf } = this.state;\n\n if (show && !showSelf) this._springShow();\n else if (show === false && showSelf) this._springHide();\n }\n\n componentWillUnmount() {\n HwBackHandler.removeEventListener(HW_BACK_EVENT, this._handleHwBackEvent);\n }\n}\n\nAwesomeAlert.propTypes = {\n show: PropTypes.bool,\n animatedValue: PropTypes.number,\n useNativeDriver: PropTypes.bool,\n showProgress: PropTypes.bool,\n title: PropTypes.string,\n message: PropTypes.string,\n closeOnTouchOutside: PropTypes.bool,\n closeOnHardwareBackPress: PropTypes.bool,\n showCancelButton: PropTypes.bool,\n showConfirmButton: PropTypes.bool,\n cancelText: PropTypes.string,\n confirmText: PropTypes.string,\n cancelButtonColor: PropTypes.string,\n confirmButtonColor: PropTypes.string,\n onCancelPressed: PropTypes.func,\n onConfirmPressed: PropTypes.func,\n customView: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.func,\n ]),\n modalProps: PropTypes.object,\n cancelButtonTestID: PropTypes.string,\n confirmButtonTestID: PropTypes.string\n};\n\nAwesomeAlert.defaultProps = {\n show: false,\n animatedValue: 0.3,\n useNativeDriver: false,\n showProgress: false,\n closeOnTouchOutside: true,\n closeOnHardwareBackPress: true,\n showCancelButton: false,\n showConfirmButton: false,\n cancelText: 'Cancel',\n confirmText: 'Confirm',\n cancelButtonColor: '#D0D0D0',\n confirmButtonColor: '#AEDEF4',\n customView: null,\n modalProps: {},\n cancelButtonTestID: 'awesome-alert-cancel-btn',\n confirmButtonTestID: 'awesome-alert-confirm-btn'\n};\n","import AwesomeAlert from './src/AwesomeAlert';\n\nexport default AwesomeAlert;\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 */\n\nimport { findDOMNode } from 'react-dom';\n\n/**\n * @deprecated imperatively finding the DOM element of a react component has been deprecated in React 18.\n * You should use ref properties on the component instead.\n */\nvar findNodeHandle = component => {\n var node;\n try {\n node = findDOMNode(component);\n } catch (e) {}\n return node;\n};\nexport default findNodeHandle;","import { Dimensions, Platform, StatusBar } from 'react-native';\n\nexport function isIphoneX() {\n const dimen = Dimensions.get('window');\n return (\n Platform.OS === 'ios' &&\n !Platform.isPad &&\n !Platform.isTVOS &&\n ((dimen.height === 780 || dimen.width === 780)\n || (dimen.height === 812 || dimen.width === 812)\n || (dimen.height === 844 || dimen.width === 844)\n || (dimen.height === 896 || dimen.width === 896)\n || (dimen.height === 926 || dimen.width === 926))\n );\n}\n\nexport function ifIphoneX(iphoneXStyle, regularStyle) {\n if (isIphoneX()) {\n return iphoneXStyle;\n }\n return regularStyle;\n}\n\nexport function getStatusBarHeight(safe) {\n return Platform.select({\n ios: ifIphoneX(safe ? 44 : 30, 20),\n android: StatusBar.currentHeight,\n default: 0\n });\n}\n\nexport function getBottomSpace() {\n return isIphoneX() ? 34 : 0;\n}\n","/* @flow */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport {\n Keyboard,\n Platform,\n UIManager,\n TextInput,\n findNodeHandle,\n Animated\n} from 'react-native'\nimport { isIphoneX } from 'react-native-iphone-x-helper'\nimport type { KeyboardAwareInterface } from './KeyboardAwareInterface'\n\nconst _KAM_DEFAULT_TAB_BAR_HEIGHT: number = isIphoneX() ? 83 : 49\nconst _KAM_KEYBOARD_OPENING_TIME: number = 250\nconst _KAM_EXTRA_HEIGHT: number = 75\n\nconst supportedKeyboardEvents = [\n 'keyboardWillShow',\n 'keyboardDidShow',\n 'keyboardWillHide',\n 'keyboardDidHide',\n 'keyboardWillChangeFrame',\n 'keyboardDidChangeFrame'\n]\nconst keyboardEventToCallbackName = (eventName: string) =>\n 'on' + eventName[0].toUpperCase() + eventName.substring(1)\nconst keyboardEventPropTypes = supportedKeyboardEvents.reduce(\n (acc: Object, eventName: string) => ({\n ...acc,\n [keyboardEventToCallbackName(eventName)]: PropTypes.func\n }),\n {}\n)\nconst keyboardAwareHOCTypeEvents = supportedKeyboardEvents.reduce(\n (acc: Object, eventName: string) => ({\n ...acc,\n [keyboardEventToCallbackName(eventName)]: Function\n }),\n {}\n)\n\nexport type KeyboardAwareHOCProps = {\n viewIsInsideTabBar?: boolean,\n resetScrollToCoords?: {\n x: number,\n y: number\n },\n enableResetScrollToCoords?: boolean,\n enableAutomaticScroll?: boolean,\n extraHeight?: number,\n extraScrollHeight?: number,\n keyboardOpeningTime?: number,\n onScroll?: Function,\n update?: Function,\n contentContainerStyle?: any,\n enableOnAndroid?: boolean,\n innerRef?: Function,\n ...keyboardAwareHOCTypeEvents\n}\nexport type KeyboardAwareHOCState = {\n keyboardSpace: number\n}\n\nexport type ElementLayout = {\n x: number,\n y: number,\n width: number,\n height: number\n}\n\nexport type ContentOffset = {\n x: number,\n y: number\n}\n\nexport type ScrollPosition = {\n x: number,\n y: number,\n animated: boolean\n}\n\nexport type ScrollIntoViewOptions = ?{\n getScrollPosition?: (\n parentLayout: ElementLayout,\n childLayout: ElementLayout,\n contentOffset: ContentOffset\n ) => ScrollPosition\n}\n\nexport type KeyboardAwareHOCOptions = ?{\n enableOnAndroid: boolean,\n contentContainerStyle: ?Object,\n enableAutomaticScroll: boolean,\n extraHeight: number,\n extraScrollHeight: number,\n enableResetScrollToCoords: boolean,\n keyboardOpeningTime: number,\n viewIsInsideTabBar: boolean,\n refPropName: string,\n extractNativeRef: Function\n}\n\nfunction getDisplayName(WrappedComponent: React$Component) {\n return (\n (WrappedComponent &&\n (WrappedComponent.displayName || WrappedComponent.name)) ||\n 'Component'\n )\n}\n\nconst ScrollIntoViewDefaultOptions: KeyboardAwareHOCOptions = {\n enableOnAndroid: false,\n contentContainerStyle: undefined,\n enableAutomaticScroll: true,\n extraHeight: _KAM_EXTRA_HEIGHT,\n extraScrollHeight: 0,\n enableResetScrollToCoords: true,\n keyboardOpeningTime: _KAM_KEYBOARD_OPENING_TIME,\n viewIsInsideTabBar: false,\n\n // The ref prop name that will be passed to the wrapped component to obtain a ref\n // If your ScrollView is already wrapped, maybe the wrapper permit to get a ref\n // For example, with glamorous-native ScrollView, you should use \"innerRef\"\n refPropName: 'ref',\n // Sometimes the ref you get is a ref to a wrapped view (ex: Animated.ScrollView)\n // We need access to the imperative API of a real native ScrollView so we need extraction logic\n extractNativeRef: (ref: Object) => {\n // getNode() permit to support Animated.ScrollView automatically, but is deprecated since RN 0.62\n // see https://github.com/facebook/react-native/issues/19650\n // see https://stackoverflow.com/questions/42051368/scrollto-is-undefined-on-animated-scrollview/48786374\n // see https://github.com/facebook/react-native/commit/66e72bb4e00aafbcb9f450ed5db261d98f99f82a\n const shouldCallGetNode = !Platform.constants || (Platform.constants.reactNativeVersion.major === 0 && Platform.constants.reactNativeVersion.minor < 62)\n if (ref.getNode && shouldCallGetNode) {\n return ref.getNode()\n } else {\n return ref\n }\n }\n}\n\nfunction KeyboardAwareHOC(\n ScrollableComponent: React$Component,\n userOptions: KeyboardAwareHOCOptions = {}\n) {\n const hocOptions: KeyboardAwareHOCOptions = {\n ...ScrollIntoViewDefaultOptions,\n ...userOptions\n }\n\n return class\n extends React.Component\n implements KeyboardAwareInterface {\n _rnkasv_keyboardView: any\n keyboardWillShowEvent: ?Function\n keyboardWillHideEvent: ?Function\n position: ContentOffset\n defaultResetScrollToCoords: ?{ x: number, y: number }\n mountedComponent: boolean\n handleOnScroll: Function\n state: KeyboardAwareHOCState\n static displayName = `KeyboardAware${getDisplayName(ScrollableComponent)}`\n\n static propTypes = {\n viewIsInsideTabBar: PropTypes.bool,\n resetScrollToCoords: PropTypes.shape({\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired\n }),\n enableResetScrollToCoords: PropTypes.bool,\n enableAutomaticScroll: PropTypes.bool,\n extraHeight: PropTypes.number,\n extraScrollHeight: PropTypes.number,\n keyboardOpeningTime: PropTypes.number,\n onScroll: PropTypes.oneOfType([\n PropTypes.func, // Normal listener\n PropTypes.object // Animated.event listener\n ]),\n update: PropTypes.func,\n contentContainerStyle: PropTypes.any,\n enableOnAndroid: PropTypes.bool,\n innerRef: PropTypes.func,\n ...keyboardEventPropTypes\n }\n\n // HOC options are used to init default props, so that these options can be overriden with component props\n static defaultProps = {\n enableAutomaticScroll: hocOptions.enableAutomaticScroll,\n extraHeight: hocOptions.extraHeight,\n extraScrollHeight: hocOptions.extraScrollHeight,\n enableResetScrollToCoords: hocOptions.enableResetScrollToCoords,\n keyboardOpeningTime: hocOptions.keyboardOpeningTime,\n viewIsInsideTabBar: hocOptions.viewIsInsideTabBar,\n enableOnAndroid: hocOptions.enableOnAndroid\n }\n\n constructor(props: KeyboardAwareHOCProps) {\n super(props)\n this.keyboardWillShowEvent = undefined\n this.keyboardWillHideEvent = undefined\n this.callbacks = {}\n this.position = { x: 0, y: 0 }\n this.defaultResetScrollToCoords = null\n const keyboardSpace: number = props.viewIsInsideTabBar\n ? _KAM_DEFAULT_TAB_BAR_HEIGHT\n : 0\n this.state = { keyboardSpace }\n }\n\n componentDidMount() {\n this.mountedComponent = true\n // Keyboard events\n if (Platform.OS === 'ios') {\n this.keyboardWillShowEvent = Keyboard.addListener(\n 'keyboardWillShow',\n this._updateKeyboardSpace\n )\n this.keyboardWillHideEvent = Keyboard.addListener(\n 'keyboardWillHide',\n this._resetKeyboardSpace\n )\n } else if (Platform.OS === 'android' && this.props.enableOnAndroid) {\n this.keyboardWillShowEvent = Keyboard.addListener(\n 'keyboardDidShow',\n this._updateKeyboardSpace\n )\n this.keyboardWillHideEvent = Keyboard.addListener(\n 'keyboardDidHide',\n this._resetKeyboardSpace\n )\n }\n\n supportedKeyboardEvents.forEach((eventName: string) => {\n const callbackName = keyboardEventToCallbackName(eventName)\n if (this.props[callbackName]) {\n this.callbacks[eventName] = Keyboard.addListener(\n eventName,\n this.props[callbackName]\n )\n }\n })\n }\n\n componentDidUpdate(prevProps: KeyboardAwareHOCProps) {\n if (this.props.viewIsInsideTabBar !== prevProps.viewIsInsideTabBar) {\n const keyboardSpace: number = this.props.viewIsInsideTabBar\n ? _KAM_DEFAULT_TAB_BAR_HEIGHT\n : 0\n if (this.state.keyboardSpace !== keyboardSpace) {\n this.setState({ keyboardSpace })\n }\n }\n }\n\n componentWillUnmount() {\n this.mountedComponent = false\n this.keyboardWillShowEvent && this.keyboardWillShowEvent.remove()\n this.keyboardWillHideEvent && this.keyboardWillHideEvent.remove()\n Object.values(this.callbacks).forEach((callback: Object) =>\n callback.remove()\n )\n }\n\n getScrollResponder = () => {\n return (\n this._rnkasv_keyboardView &&\n this._rnkasv_keyboardView.getScrollResponder &&\n this._rnkasv_keyboardView.getScrollResponder()\n )\n }\n\n scrollToPosition = (x: number, y: number, animated: boolean = true) => {\n const responder = this.getScrollResponder()\n if (!responder) {\n return\n }\n if (responder.scrollResponderScrollTo) {\n // React Native < 0.65\n responder.scrollResponderScrollTo({ x, y, animated })\n } else if (responder.scrollTo) {\n // React Native >= 0.65\n responder.scrollTo({ x, y, animated })\n }\n }\n\n scrollToEnd = (animated?: boolean = true) => {\n const responder = this.getScrollResponder()\n if (!responder) {\n return\n }\n if (responder.scrollResponderScrollToEnd) {\n // React Native < 0.65\n responder.scrollResponderScrollToEnd({ animated })\n } else if (responder.scrollToEnd) {\n // React Native >= 0.65\n responder.scrollToEnd({ animated })\n }\n }\n\n scrollForExtraHeightOnAndroid = (extraHeight: number) => {\n this.scrollToPosition(0, this.position.y + extraHeight, true)\n }\n\n /**\n * @param keyboardOpeningTime: takes a different keyboardOpeningTime in consideration.\n * @param extraHeight: takes an extra height in consideration.\n */\n scrollToFocusedInput = (\n reactNode: any,\n extraHeight?: number,\n keyboardOpeningTime?: number\n ) => {\n if (extraHeight === undefined) {\n extraHeight = this.props.extraHeight || 0\n }\n if (keyboardOpeningTime === undefined) {\n keyboardOpeningTime = this.props.keyboardOpeningTime || 0\n }\n setTimeout(() => {\n if (!this.mountedComponent) {\n return\n }\n const responder = this.getScrollResponder()\n responder &&\n responder.scrollResponderScrollNativeHandleToKeyboard(\n reactNode,\n extraHeight,\n true\n )\n }, keyboardOpeningTime)\n }\n\n scrollIntoView = async (\n element: React.Element<*>,\n options: ScrollIntoViewOptions = {}\n ) => {\n if (!this._rnkasv_keyboardView || !element) {\n return\n }\n\n const [parentLayout, childLayout] = await Promise.all([\n this._measureElement(this._rnkasv_keyboardView),\n this._measureElement(element)\n ])\n\n const getScrollPosition =\n options.getScrollPosition || this._defaultGetScrollPosition\n const { x, y, animated } = getScrollPosition(\n parentLayout,\n childLayout,\n this.position\n )\n this.scrollToPosition(x, y, animated)\n }\n\n _defaultGetScrollPosition = (\n parentLayout: ElementLayout,\n childLayout: ElementLayout,\n contentOffset: ContentOffset\n ): ScrollPosition => {\n return {\n x: 0,\n y: Math.max(0, childLayout.y - parentLayout.y + contentOffset.y),\n animated: true\n }\n }\n\n _measureElement = (element: React.Element<*>): Promise => {\n const node = findNodeHandle(element)\n return new Promise((resolve: ElementLayout => void) => {\n UIManager.measureInWindow(\n node,\n (x: number, y: number, width: number, height: number) => {\n resolve({ x, y, width, height })\n }\n )\n })\n }\n\n // Keyboard actions\n _updateKeyboardSpace = (frames: Object) => {\n // Automatically scroll to focused TextInput\n if (this.props.enableAutomaticScroll) {\n let keyboardSpace: number =\n frames.endCoordinates.height + this.props.extraScrollHeight\n if (this.props.viewIsInsideTabBar) {\n keyboardSpace -= _KAM_DEFAULT_TAB_BAR_HEIGHT\n }\n this.setState({ keyboardSpace })\n const currentlyFocusedField = TextInput.State.currentlyFocusedInput ? findNodeHandle(TextInput.State.currentlyFocusedInput()) : TextInput.State.currentlyFocusedField()\n const responder = this.getScrollResponder()\n if (!currentlyFocusedField || !responder) {\n return\n }\n UIManager.viewIsDescendantOf(\n currentlyFocusedField,\n responder.getInnerViewNode(),\n (isAncestor: boolean) => {\n if (isAncestor) {\n // Check if the TextInput will be hidden by the keyboard\n UIManager.measureInWindow(\n currentlyFocusedField,\n (x: number, y: number, width: number, height: number) => {\n const textInputBottomPosition = y + height\n const keyboardPosition = frames.endCoordinates.screenY\n const totalExtraHeight =\n this.props.extraScrollHeight + this.props.extraHeight\n if (Platform.OS === 'ios') {\n if (\n textInputBottomPosition >\n keyboardPosition - totalExtraHeight\n ) {\n this._scrollToFocusedInputWithNodeHandle(\n currentlyFocusedField\n )\n }\n } else {\n // On android, the system would scroll the text input just\n // above the keyboard so we just neet to scroll the extra\n // height part\n if (textInputBottomPosition > keyboardPosition) {\n // Since the system already scrolled the whole view up\n // we should reduce that amount\n keyboardSpace =\n keyboardSpace -\n (textInputBottomPosition - keyboardPosition)\n this.setState({ keyboardSpace })\n this.scrollForExtraHeightOnAndroid(totalExtraHeight)\n } else if (\n textInputBottomPosition >\n keyboardPosition - totalExtraHeight\n ) {\n this.scrollForExtraHeightOnAndroid(\n totalExtraHeight -\n (keyboardPosition - textInputBottomPosition)\n )\n }\n }\n }\n )\n }\n }\n )\n }\n if (!this.props.resetScrollToCoords) {\n if (!this.defaultResetScrollToCoords) {\n this.defaultResetScrollToCoords = this.position\n }\n }\n }\n\n _resetKeyboardSpace = () => {\n const keyboardSpace: number = this.props.viewIsInsideTabBar\n ? _KAM_DEFAULT_TAB_BAR_HEIGHT\n : 0\n this.setState({ keyboardSpace })\n // Reset scroll position after keyboard dismissal\n if (this.props.enableResetScrollToCoords === false) {\n this.defaultResetScrollToCoords = null\n return\n } else if (this.props.resetScrollToCoords) {\n this.scrollToPosition(\n this.props.resetScrollToCoords.x,\n this.props.resetScrollToCoords.y,\n true\n )\n } else {\n if (this.defaultResetScrollToCoords) {\n this.scrollToPosition(\n this.defaultResetScrollToCoords.x,\n this.defaultResetScrollToCoords.y,\n true\n )\n this.defaultResetScrollToCoords = null\n } else {\n this.scrollToPosition(0, 0, true)\n }\n }\n }\n\n _scrollToFocusedInputWithNodeHandle = (\n nodeID: number,\n extraHeight?: number,\n keyboardOpeningTime?: number\n ) => {\n if (extraHeight === undefined) {\n extraHeight = this.props.extraHeight\n }\n const reactNode = findNodeHandle(nodeID)\n this.scrollToFocusedInput(\n reactNode,\n extraHeight + this.props.extraScrollHeight,\n keyboardOpeningTime !== undefined\n ? keyboardOpeningTime\n : this.props.keyboardOpeningTime || 0\n )\n }\n\n _handleOnScroll = (\n e: SyntheticEvent<*> & { nativeEvent: { contentOffset: number } }\n ) => {\n this.position = e.nativeEvent.contentOffset\n }\n\n _handleRef = (ref: React.Component<*>) => {\n this._rnkasv_keyboardView = ref ? hocOptions.extractNativeRef(ref) : ref\n if (this.props.innerRef) {\n this.props.innerRef(this._rnkasv_keyboardView)\n }\n }\n\n update = () => {\n const currentlyFocusedField = TextInput.State.currentlyFocusedInput ? findNodeHandle(TextInput.State.currentlyFocusedInput()) : TextInput.State.currentlyFocusedField()\n const responder = this.getScrollResponder()\n\n if (!currentlyFocusedField || !responder) {\n return\n }\n\n this._scrollToFocusedInputWithNodeHandle(currentlyFocusedField)\n }\n\n render() {\n const { enableOnAndroid, contentContainerStyle, onScroll } = this.props\n let newContentContainerStyle\n if (Platform.OS === 'android' && enableOnAndroid) {\n newContentContainerStyle = [].concat(contentContainerStyle).concat({\n paddingBottom:\n ((contentContainerStyle || {}).paddingBottom || 0) +\n this.state.keyboardSpace\n })\n }\n const refProps = { [hocOptions.refPropName]: this._handleRef }\n return (\n \n )\n }\n }\n}\n\n// Allow to pass options, without breaking change, and curried for composition\n// listenToKeyboardEvents(ScrollView);\n// listenToKeyboardEvents(options)(Comp);\nconst listenToKeyboardEvents = (configOrComp: any) => {\n if (typeof configOrComp === 'object' && !configOrComp.displayName) {\n return (Comp: Function) => KeyboardAwareHOC(Comp, configOrComp)\n } else {\n return KeyboardAwareHOC(configOrComp)\n }\n}\n\nexport default listenToKeyboardEvents\n","/* @flow */\n\nimport { ScrollView } from 'react-native'\nimport listenToKeyboardEvents from './KeyboardAwareHOC'\n\nexport default listenToKeyboardEvents(ScrollView)\n","/* @flow */\n\nimport { FlatList } from 'react-native'\nimport listenToKeyboardEvents from './KeyboardAwareHOC'\n\nexport default listenToKeyboardEvents(FlatList)\n","/* @flow */\n\nimport { SectionList } from 'react-native'\nimport listenToKeyboardEvents from './KeyboardAwareHOC'\n\nexport default listenToKeyboardEvents(SectionList)\n","import React from \"react\";\nimport { Platform } from \"react-native\";\n\nexport function DateTimePickerModal() {\n React.useEffect(() => {\n console.warn(`DateTimePicker is not supported on: ${Platform.OS}`);\n }, []);\n return null;\n}\n","import { DateTimePickerModal } from \"./DateTimePickerModal\";\n\nexport default DateTimePickerModal;\n\nexport * from \"./DateTimePickerModal\";\n","import React from \"react\";\nimport {\n Platform,\n ActionSheetIOS,\n UIManager,\n findNodeHandle,\n View,\n TouchableOpacity,\n Image,\n Text,\n TextInput\n} from \"react-native\";\n\nexport default class PopupMenu extends React.Component {\n constructor(props) {\n super(props);\n this.state = { open: false };\n }\n\n handleClick = index => {\n let options = this.props.options;\n for (var i = 0; i < options.length; i++) {\n if (index === i) {\n if (this.props.actions[i] !== null) {\n this.props.actions[i]();\n }\n }\n }\n };\n\n handlePressWeb = () => {\n this.setState({ open: true });\n };\n\n handlePress = () => {\n let options = this.props.options;\n if (Platform.OS === \"ios\") {\n let destructiveIndex = -1;\n if (\n Number.isInteger(this.props.destructiveIndex) &&\n this.props.destructiveIndex >= 0\n ) {\n destructiveIndex = this.props.destructiveIndex;\n }\n ActionSheetIOS.showActionSheetWithOptions(\n {\n options: options,\n destructiveButtonIndex: destructiveIndex,\n cancelButtonIndex: options.length - 1\n },\n buttonIndex => {\n this.handleClick(buttonIndex);\n }\n );\n } else if (Platform.OS === \"android\") {\n UIManager.showPopupMenu(\n findNodeHandle(this.refs.menu),\n options,\n () => console.log(\"something went wrong with the popup menu\"),\n (e, i) => {\n this.handleClick(i);\n }\n );\n }\n };\n render() {\n let options = this.state.open ? (\n \n {this.props.options.map((option, index) => {\n return (\n \n this.handleClick(index)}\n >\n {option}\n \n\n {index < this.props.options.length - 1 && (\n \n )}\n \n );\n })}\n \n ) : null;\n\n let component = this.props.button ? (\n \n ) : (\n this.props.customButton\n );\n if (Platform.OS === \"web\") {\n return (\n \n \n \n {component}\n \n \n {options}\n \n );\n } else {\n return (\n \n \n {component}\n \n \n );\n }\n }\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { Animated, Easing, View, I18nManager } from 'react-native';\n\nconst INDETERMINATE_WIDTH_FACTOR = 0.3;\nconst BAR_WIDTH_ZERO_POSITION =\n INDETERMINATE_WIDTH_FACTOR / (1 + INDETERMINATE_WIDTH_FACTOR);\n\nexport default class ProgressBar extends Component {\n static propTypes = {\n animated: PropTypes.bool,\n borderColor: PropTypes.string,\n borderRadius: PropTypes.number,\n borderWidth: PropTypes.number,\n children: PropTypes.node,\n color: PropTypes.string,\n height: PropTypes.number,\n indeterminate: PropTypes.bool,\n indeterminateAnimationDuration: PropTypes.number,\n onLayout: PropTypes.func,\n progress: PropTypes.number,\n style: PropTypes.any,\n unfilledColor: PropTypes.string,\n width: PropTypes.number,\n useNativeDriver: PropTypes.bool,\n animationConfig: PropTypes.object,\n animationType: PropTypes.oneOf(['decay', 'timing', 'spring']),\n };\n\n static defaultProps = {\n animated: true,\n borderRadius: 4,\n borderWidth: 1,\n color: 'rgba(0, 122, 255, 1)',\n height: 6,\n indeterminate: false,\n indeterminateAnimationDuration: 1000,\n progress: 0,\n width: 150,\n useNativeDriver: false,\n animationConfig: { bounciness: 0 },\n animationType: 'spring',\n };\n\n constructor(props) {\n super(props);\n const progress = Math.min(Math.max(props.progress, 0), 1);\n this.state = {\n width: 0,\n progress: new Animated.Value(\n props.indeterminate ? INDETERMINATE_WIDTH_FACTOR : progress\n ),\n animationValue: new Animated.Value(BAR_WIDTH_ZERO_POSITION),\n };\n }\n\n componentDidMount() {\n if (this.props.indeterminate) {\n this.animate();\n }\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.indeterminate !== this.props.indeterminate) {\n if (this.props.indeterminate) {\n this.animate();\n } else {\n Animated.spring(this.state.animationValue, {\n toValue: BAR_WIDTH_ZERO_POSITION,\n useNativeDriver: this.props.useNativeDriver,\n }).start();\n }\n }\n if (\n prevProps.indeterminate !== this.props.indeterminate ||\n prevProps.progress !== this.props.progress\n ) {\n const progress = this.props.indeterminate\n ? INDETERMINATE_WIDTH_FACTOR\n : Math.min(Math.max(this.props.progress, 0), 1);\n\n if (this.props.animated) {\n const { animationType, animationConfig } = this.props;\n Animated[animationType](this.state.progress, {\n ...animationConfig,\n toValue: progress,\n useNativeDriver: this.props.useNativeDriver,\n }).start();\n } else {\n this.state.progress.setValue(progress);\n }\n }\n }\n\n handleLayout = event => {\n if (!this.props.width) {\n this.setState({ width: event.nativeEvent.layout.width });\n }\n if (this.props.onLayout) {\n this.props.onLayout(event);\n }\n };\n\n animate() {\n this.state.animationValue.setValue(0);\n Animated.timing(this.state.animationValue, {\n toValue: 1,\n duration: this.props.indeterminateAnimationDuration,\n easing: Easing.linear,\n isInteraction: false,\n useNativeDriver: this.props.useNativeDriver,\n }).start(endState => {\n if (endState.finished) {\n this.animate();\n }\n });\n }\n\n render() {\n const {\n borderColor,\n borderRadius,\n borderWidth,\n children,\n color,\n height,\n style,\n unfilledColor,\n width,\n ...restProps\n } = this.props;\n\n const innerWidth = Math.max(0, width || this.state.width) - borderWidth * 2;\n const containerStyle = {\n width,\n borderWidth,\n borderColor: borderColor || color,\n borderRadius,\n overflow: 'hidden',\n backgroundColor: unfilledColor,\n };\n const progressStyle = {\n backgroundColor: color,\n height,\n transform: [\n {\n translateX: this.state.animationValue.interpolate({\n inputRange: [0, 1],\n outputRange: [innerWidth * -INDETERMINATE_WIDTH_FACTOR, innerWidth],\n }),\n },\n {\n translateX: this.state.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [innerWidth / (I18nManager.isRTL ? 2 : -2), 0],\n }),\n },\n {\n // Interpolation a temp workaround for https://github.com/facebook/react-native/issues/6278\n scaleX: this.state.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0.0001, 1],\n }),\n },\n ],\n };\n\n return (\n \n \n {children}\n \n );\n }\n}","/* 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 invariant from 'fbjs/lib/invariant';\nvar twoArgumentPooler = function twoArgumentPooler(a1, a2) {\n var Klass = this;\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};\nvar standardReleaser = function standardReleaser(instance) {\n var Klass = this;\n instance.destructor();\n if (Klass.instancePool.length < Klass.poolSize) {\n Klass.instancePool.push(instance);\n }\n};\nvar DEFAULT_POOL_SIZE = 10;\nvar DEFAULT_POOLER = twoArgumentPooler;\n\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 */\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 if (!NewKlass.poolSize) {\n NewKlass.poolSize = DEFAULT_POOL_SIZE;\n }\n NewKlass.release = standardReleaser;\n return NewKlass;\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 */\n\nimport PooledClass from '../../vendor/react-native/PooledClass';\nvar twoArgumentPooler = PooledClass.twoArgumentPooler;\n\n/**\n * PooledClass representing the bounding rectangle of a region.\n */\nfunction BoundingDimensions(width, height) {\n this.width = width;\n this.height = height;\n}\nBoundingDimensions.prototype.destructor = function () {\n this.width = null;\n this.height = null;\n};\nBoundingDimensions.getPooledFromElement = function (element) {\n return BoundingDimensions.getPooled(element.offsetWidth, element.offsetHeight);\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 */\n\nimport PooledClass from '../../vendor/react-native/PooledClass';\nvar twoArgumentPooler = PooledClass.twoArgumentPooler;\nfunction Position(left, top) {\n this.left = left;\n this.top = top;\n}\nPosition.prototype.destructor = function () {\n this.left = null;\n this.top = null;\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\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 normalizeColor from '@react-native/normalize-colors';\nimport Position from './Position';\nimport React from 'react';\nimport UIManager from '../UIManager';\nimport View from '../View';\nimport { warnOnce } from '../../modules/warnOnce';\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/**\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 * - Add a method to get your touchable component's node.\n * getTouchableNode: function() {\n * return this.touchableRef.current\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\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 * Quick lookup map for states that are considered to be \"active\"\n */\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};\nvar IsActive = _objectSpread(_objectSpread({}, baseStatesConditions), {}, {\n RESPONDER_ACTIVE_PRESS_OUT: true,\n RESPONDER_ACTIVE_PRESS_IN: true\n});\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 */\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});\nvar IsLongPressingIn = _objectSpread(_objectSpread({}, baseStatesConditions), {}, {\n RESPONDER_ACTIVE_LONG_PRESS_IN: true\n});\n\n/**\n * Inputs to the state machine.\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 * 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};\n\n// ==== Typical Constants for integrating into UI components ====\n// var HIT_EXPAND_PX = 20;\n// var HIT_VERT_OFFSET_PX = 10;\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;\n\n// 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 */\nvar TouchableMixin = {\n // HACK (part 1): basic support for touchable interactions using a keyboard\n componentDidMount: function componentDidMount() {\n warnOnce('TouchableMixin', 'TouchableMixin is deprecated. Please use Pressable.');\n var touchableNode = this.getTouchableNode && this.getTouchableNode();\n if (touchableNode && 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 this._isTouchableKeyboardActive = false;\n }\n };\n touchableNode.addEventListener('blur', this._touchableBlurListener);\n }\n },\n /**\n * Clear all timeouts on unmount\n */\n componentWillUnmount: function componentWillUnmount() {\n var touchableNode = this.getTouchableNode && this.getTouchableNode();\n if (touchableNode && touchableNode.addEventListener) {\n touchableNode.removeEventListener('blur', this._touchableBlurListener);\n }\n this.touchableDelayTimeout && clearTimeout(this.touchableDelayTimeout);\n this.longPressDelayTimeout && clearTimeout(this.longPressDelayTimeout);\n this.pressOutDelayTimeout && clearTimeout(this.pressOutDelayTimeout);\n // Clear DOM nodes\n this.pressInLocation = null;\n this.state.touchable.responderID = null;\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 * Must return true if embedded in a native platform scroll view.\n */\n touchableHandleResponderTerminationRequest: function touchableHandleResponderTerminationRequest() {\n return !this.props.rejectResponderTermination;\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 * Return true to cancel press on long press.\n */\n touchableLongPressCancelsPress: function touchableLongPressCancelsPress() {\n return true;\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;\n // 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 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 this._receiveSignal(Signals.RESPONDER_GRANT, e);\n var delayMS = this.touchableGetHighlightDelayMS !== undefined ? Math.max(this.touchableGetHighlightDelayMS(), 0) : HIGHLIGHT_DELAY_MS;\n delayMS = isNaN(delayMS) ? HIGHLIGHT_DELAY_MS : delayMS;\n if (delayMS !== 0) {\n this.touchableDelayTimeout = setTimeout(this._handleDelay.bind(this, e), delayMS);\n } else {\n this._handleDelay(e);\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 * Place as callback for a DOM element's `onResponderRelease` event.\n */\n touchableHandleResponderRelease: function touchableHandleResponderRelease(e) {\n this.pressInLocation = null;\n this._receiveSignal(Signals.RESPONDER_RELEASE, e);\n },\n /**\n * Place as callback for a DOM element's `onResponderTerminate` event.\n */\n touchableHandleResponderTerminate: function touchableHandleResponderTerminate(e) {\n this.pressInLocation = null;\n this._receiveSignal(Signals.RESPONDER_TERMINATED, e);\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 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 if (hitSlop) {\n pressExpandLeft += hitSlop.left || 0;\n pressExpandTop += hitSlop.top || 0;\n pressExpandRight += hitSlop.right || 0;\n pressExpandBottom += hitSlop.bottom || 0;\n }\n var touch = extractSingleTouch(e.nativeEvent);\n var pageX = touch && touch.pageX;\n var pageY = touch && touch.pageY;\n if (this.pressInLocation) {\n var movedDistance = this._getDistanceBetweenPoints(pageX, pageY, this.pressInLocation.pageX, this.pressInLocation.pageY);\n if (movedDistance > LONG_PRESS_ALLOWED_MOVEMENT) {\n this._cancelLongPressDelayTimeout();\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 if (isTouchWithinActive) {\n var prevState = this.state.touchable.touchState;\n this._receiveSignal(Signals.ENTER_PRESS_RECT, e);\n var curState = this.state.touchable.touchState;\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 this._receiveSignal(Signals.LEAVE_PRESS_RECT, e);\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 * 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\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 if (tag == null) {\n return;\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 this.state.touchable.positionOnActivate && Position.release(this.state.touchable.positionOnActivate);\n this.state.touchable.dimensionsOnActivate &&\n // $FlowFixMe\n BoundingDimensions.release(this.state.touchable.dimensionsOnActivate);\n this.state.touchable.positionOnActivate = Position.getPooled(globalX, globalY);\n // $FlowFixMe\n this.state.touchable.dimensionsOnActivate = BoundingDimensions.getPooled(w, h);\n },\n _handleDelay: function _handleDelay(e) {\n this.touchableDelayTimeout = null;\n this._receiveSignal(Signals.DELAY, e);\n },\n _handleLongDelay: function _handleLongDelay(e) {\n this.longPressDelayTimeout = null;\n var curState = this.state.touchable.touchState;\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 * 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 if (!responderID && signal === Signals.RESPONDER_RELEASE) {\n return;\n }\n if (!nextState) {\n throw new Error('Unrecognized signal `' + signal + '` or state `' + curState + '` for Touchable responder `' + responderID + '`');\n }\n if (nextState === States.ERROR) {\n throw new Error('Touchable cannot transition from `' + curState + '` to `' + signal + '` for responder `' + responderID + '`');\n }\n if (curState !== nextState) {\n this._performSideEffectsForTransition(curState, nextState, signal, e);\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 * 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 var newIsHighlight = this._isHighlight(nextState);\n var isFinalSignal = signal === Signals.RESPONDER_TERMINATED || signal === Signals.RESPONDER_RELEASE;\n if (isFinalSignal) {\n this._cancelLongPressDelayTimeout();\n }\n var isInitialTransition = curState === States.NOT_RESPONDER && nextState === States.RESPONDER_INACTIVE_PRESS_IN;\n var isActiveTransition = !IsActive[curState] && IsActive[nextState];\n if (isInitialTransition || isActiveTransition) {\n this._remeasureMetricsOnActivation();\n }\n if (IsPressingIn[curState] && signal === Signals.LONG_PRESS_DETECTED) {\n this.touchableHandleLongPress && this.touchableHandleLongPress(e);\n }\n if (newIsHighlight && !curIsHighlight) {\n this._startHighlight(e);\n } else if (!newIsHighlight && curIsHighlight) {\n this._endHighlight(e);\n }\n if (IsPressingIn[curState] && signal === Signals.RESPONDER_RELEASE) {\n var hasLongPressHandler = !!this.props.onLongPress;\n var pressIsLongButStillCallOnPress = IsLongPressingIn[curState] && (\n // 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 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 this._endHighlight(e);\n }\n this.touchableHandlePress(e);\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 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 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 e.stopPropagation();\n // prevent the default behaviour unless the Touchable functions as a link\n // and Enter is pressed\n if (!(key === 'Enter' && AccessibilityUtil.propsToAriaRole(this.props) === 'link')) {\n e.preventDefault();\n }\n }\n },\n withoutDefaultFocusAndBlur: {}\n};\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 */\nvar touchableHandleFocus = TouchableMixin.touchableHandleFocus,\n touchableHandleBlur = TouchableMixin.touchableHandleBlur,\n TouchableMixinWithoutDefaultFocusAndBlur = _objectWithoutPropertiesLoose(TouchableMixin, [\"touchableHandleFocus\", \"touchableHandleBlur\"]);\nTouchableMixin.withoutDefaultFocusAndBlur = TouchableMixinWithoutDefaultFocusAndBlur;\nvar Touchable = {\n Mixin: TouchableMixin,\n TOUCH_TARGET_DEBUG: false,\n // Highlights all touchable targets. Toggle with Inspector.\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 if (!Touchable.TOUCH_TARGET_DEBUG) {\n return null;\n }\n if (process.env.NODE_ENV !== 'production') {\n throw Error('Touchable.TOUCH_TARGET_DEBUG should not be enabled in prod!');\n }\n var debugHitSlopStyle = {};\n hitSlop = hitSlop || {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0\n };\n for (var key in hitSlop) {\n debugHitSlopStyle[key] = -hitSlop[key];\n }\n var normalizedColor = normalizeColor(color);\n if (typeof normalizedColor !== 'number') {\n return null;\n }\n var hexColor = '#' + ('00000000' + normalizedColor.toString(16)).substr(-8);\n return /*#__PURE__*/React.createElement(View, {\n pointerEvents: \"none\",\n style: _objectSpread({\n position: 'absolute',\n borderColor: hexColor.slice(0, -2) + '55',\n // More opaque\n borderWidth: 1,\n borderStyle: 'dashed',\n backgroundColor: hexColor.slice(0, -2) + '0F'\n }, debugHitSlopStyle)\n });\n }\n};\nexport default Touchable;","import type { GestureResponderEvent } from 'react-native';\nimport { Touchable } from 'react-native';\nconst PRESS_RETENTION_OFFSET = { top: 20, left: 20, right: 20, bottom: 30 };\n// @ts-expect-error: Mixin is not typed\nconst { Mixin } = Touchable;\nconst {\n touchableHandleStartShouldSetResponder,\n touchableHandleResponderTerminationRequest,\n touchableHandleResponderGrant,\n touchableHandleResponderMove,\n touchableHandleResponderRelease,\n touchableHandleResponderTerminate,\n touchableGetInitialState,\n} = Mixin;\n\nconst SvgTouchableMixin = {\n ...Mixin,\n\n touchableHandleStartShouldSetResponder(e: GestureResponderEvent) {\n const { onStartShouldSetResponder } = this.props;\n if (onStartShouldSetResponder) {\n return onStartShouldSetResponder(e);\n } else {\n return touchableHandleStartShouldSetResponder.call(this, e);\n }\n },\n\n touchableHandleResponderTerminationRequest(e: GestureResponderEvent) {\n const { onResponderTerminationRequest } = this.props;\n if (onResponderTerminationRequest) {\n return onResponderTerminationRequest(e);\n } else {\n return touchableHandleResponderTerminationRequest.call(this, e);\n }\n },\n\n touchableHandleResponderGrant(e: GestureResponderEvent) {\n const { onResponderGrant } = this.props;\n if (onResponderGrant) {\n return onResponderGrant(e);\n } else {\n return touchableHandleResponderGrant.call(this, e);\n }\n },\n\n touchableHandleResponderMove(e: GestureResponderEvent) {\n const { onResponderMove } = this.props;\n if (onResponderMove) {\n return onResponderMove(e);\n } else {\n return touchableHandleResponderMove.call(this, e);\n }\n },\n\n touchableHandleResponderRelease(e: GestureResponderEvent) {\n const { onResponderRelease } = this.props;\n if (onResponderRelease) {\n return onResponderRelease(e);\n } else {\n return touchableHandleResponderRelease.call(this, e);\n }\n },\n\n touchableHandleResponderTerminate(e: GestureResponderEvent) {\n const { onResponderTerminate } = this.props;\n if (onResponderTerminate) {\n return onResponderTerminate(e);\n } else {\n return touchableHandleResponderTerminate.call(this, e);\n }\n },\n\n touchableHandlePress(e: GestureResponderEvent) {\n const { onPress } = this.props;\n onPress && onPress(e);\n },\n\n touchableHandleActivePressIn(e: GestureResponderEvent) {\n const { onPressIn } = this.props;\n onPressIn && onPressIn(e);\n },\n\n touchableHandleActivePressOut(e: GestureResponderEvent) {\n const { onPressOut } = this.props;\n onPressOut && onPressOut(e);\n },\n\n touchableHandleLongPress(e: GestureResponderEvent) {\n const { onLongPress } = this.props;\n onLongPress && onLongPress(e);\n },\n\n touchableGetPressRectOffset() {\n const { pressRetentionOffset } = this.props;\n return pressRetentionOffset || PRESS_RETENTION_OFFSET;\n },\n\n touchableGetHitSlop() {\n const { hitSlop } = this.props;\n return hitSlop;\n },\n\n touchableGetHighlightDelayMS() {\n const { delayPressIn } = this.props;\n return delayPressIn || 0;\n },\n\n touchableGetLongPressDelayMS() {\n const { delayLongPress } = this.props;\n return delayLongPress === 0 ? 0 : delayLongPress || 500;\n },\n\n touchableGetPressOutDelayMS() {\n const { delayPressOut } = this.props;\n return delayPressOut || 0;\n },\n};\n\nconst touchKeys = Object.keys(SvgTouchableMixin);\nconst touchVals = touchKeys.map((key) => SvgTouchableMixin[key]);\nconst numTouchKeys = touchKeys.length;\n\nexport default (target: { [x: string]: unknown; state: unknown }) => {\n for (let i = 0; i < numTouchKeys; i++) {\n const key = touchKeys[i];\n const val = touchVals[i];\n if (typeof val === 'function') {\n target[key] = val.bind(target);\n } else {\n target[key] = val;\n }\n }\n target.state = touchableGetInitialState();\n};\n","/**\n * based on\n * https://github.com/CreateJS/EaselJS/blob/631cdffb85eff9413dab43b4676f059b4232d291/src/easeljs/geom/Matrix2D.js\n */\nconst DEG_TO_RAD = Math.PI / 180;\n\nexport const identity: [number, number, number, number, number, number] = [\n 1, 0, 0, 1, 0, 0,\n];\n\nlet a = 1;\nlet b = 0;\nlet c = 0;\nlet d = 1;\nlet tx = 0;\nlet ty = 0;\nlet hasInitialState = true;\n\n/**\n * Represents an affine transformation matrix, and provides tools for concatenating transforms.\n *\n * This matrix can be visualized as:\n *\n * \t[ a c tx\n * \t b d ty\n * \t 0 0 1 ]\n *\n * Note the locations of b and c.\n **/\n\n/**\n * Reset current matrix to an identity matrix.\n * @method reset\n **/\nexport function reset() {\n if (hasInitialState) {\n return;\n }\n a = d = 1;\n b = c = tx = ty = 0;\n hasInitialState = true;\n}\n\n/**\n * Returns an array with current matrix values.\n * @method toArray\n * @return {Array} an array with current matrix values.\n **/\nexport function toArray(): [number, number, number, number, number, number] {\n if (hasInitialState) {\n return identity;\n }\n return [a, b, c, d, tx, ty];\n}\n\n/**\n * Appends the specified matrix properties to this matrix. All parameters are required.\n * This is the equivalent of multiplying `(this matrix) * (specified matrix)`.\n * @method append\n * @param {Number} a2\n * @param {Number} b2\n * @param {Number} c2\n * @param {Number} d2\n * @param {Number} tx2\n * @param {Number} ty2\n **/\nexport function append(\n a2: number,\n b2: number,\n c2: number,\n d2: number,\n tx2: number,\n ty2: number\n) {\n const change = a2 !== 1 || b2 !== 0 || c2 !== 0 || d2 !== 1;\n const translate = tx2 !== 0 || ty2 !== 0;\n if (!change && !translate) {\n return;\n }\n if (hasInitialState) {\n hasInitialState = false;\n a = a2;\n b = b2;\n c = c2;\n d = d2;\n tx = tx2;\n ty = ty2;\n return;\n }\n const a1 = a;\n const b1 = b;\n const c1 = c;\n const d1 = d;\n if (change) {\n a = a1 * a2 + c1 * b2;\n b = b1 * a2 + d1 * b2;\n c = a1 * c2 + c1 * d2;\n d = b1 * c2 + d1 * d2;\n }\n if (translate) {\n tx = a1 * tx2 + c1 * ty2 + tx;\n ty = b1 * tx2 + d1 * ty2 + ty;\n }\n}\n\n/**\n * Generates matrix properties from the specified display object transform properties, and appends them to this matrix.\n * For example, you can use this to generate a matrix representing the transformations of a display object:\n *\n * \treset();\n * \tappendTransform(o.x, o.y, o.scaleX, o.scaleY, o.rotation);\n * \tvar matrix = toArray()\n *\n * @method appendTransform\n * @param {Number} x\n * @param {Number} y\n * @param {Number} scaleX\n * @param {Number} scaleY\n * @param {Number} rotation\n * @param {Number} skewX\n * @param {Number} skewY\n * @param {Number} regX Optional.\n * @param {Number} regY Optional.\n **/\nexport function appendTransform(\n x: number,\n y: number,\n scaleX: number,\n scaleY: number,\n rotation: number,\n skewX: number,\n skewY: number,\n regX: number,\n regY: number\n) {\n if (\n x === 0 &&\n y === 0 &&\n scaleX === 1 &&\n scaleY === 1 &&\n rotation === 0 &&\n skewX === 0 &&\n skewY === 0 &&\n regX === 0 &&\n regY === 0\n ) {\n return;\n }\n let cos, sin;\n if (rotation % 360) {\n const r = rotation * DEG_TO_RAD;\n cos = Math.cos(r);\n sin = Math.sin(r);\n } else {\n cos = 1;\n sin = 0;\n }\n\n const a2 = cos * scaleX;\n const b2 = sin * scaleX;\n const c2 = -sin * scaleY;\n const d2 = cos * scaleY;\n\n if (skewX || skewY) {\n const b1 = Math.tan(skewY * DEG_TO_RAD);\n const c1 = Math.tan(skewX * DEG_TO_RAD);\n append(a2 + c1 * b2, b1 * a2 + b2, c2 + c1 * d2, b1 * c2 + d2, x, y);\n } else {\n append(a2, b2, c2, d2, x, y);\n }\n\n if (regX || regY) {\n // append the registration offset:\n tx -= regX * a + regY * c;\n ty -= regX * b + regY * d;\n hasInitialState = false;\n }\n}\n","import type { TransformsStyle } from 'react-native';\nimport { append, appendTransform, identity, reset, toArray } from '../Matrix2D';\nimport { parse } from './transform';\nimport type {\n ColumnMajorTransformMatrix,\n NumberProp,\n TransformedProps,\n TransformProps,\n} from './types';\n\ntype TransformsStyleArray = Exclude;\n\nfunction appendTransformProps(props: TransformedProps) {\n const { x, y, originX, originY, scaleX, scaleY, rotation, skewX, skewY } =\n props;\n appendTransform(\n x + originX,\n y + originY,\n scaleX,\n scaleY,\n rotation,\n skewX,\n skewY,\n originX,\n originY\n );\n}\n\nfunction universal2axis(\n universal: NumberProp | NumberProp[] | undefined,\n axisX: NumberProp | void,\n axisY: NumberProp | void,\n defaultValue?: number\n): [number, number] {\n let x;\n let y;\n if (typeof universal === 'number') {\n x = y = universal;\n } else if (typeof universal === 'string') {\n const coords = universal.split(/\\s*,\\s*/);\n if (coords.length === 2) {\n x = +coords[0];\n y = +coords[1];\n } else if (coords.length === 1) {\n x = y = +coords[0];\n }\n } else if (Array.isArray(universal)) {\n if (universal.length === 2) {\n x = +universal[0];\n y = +universal[1];\n } else if (universal.length === 1) {\n x = y = +universal[0];\n }\n }\n\n axisX = +axisX;\n if (!isNaN(axisX)) {\n x = axisX;\n }\n\n axisY = +axisY;\n if (!isNaN(axisY)) {\n y = axisY;\n }\n\n return [x || defaultValue || 0, y || defaultValue || 0];\n}\n\nexport function transformsArrayToProps(\n transformObjectsArray: TransformsStyleArray\n) {\n const props: TransformProps = {};\n transformObjectsArray?.forEach((transformObject) => {\n const keys = Object.keys(transformObject);\n if (keys.length !== 1) {\n console.error(\n 'You must specify exactly one property per transform object.'\n );\n }\n const key = keys[0] as keyof TransformProps;\n const value = transformObject[key as keyof typeof transformObject];\n props[key] = value;\n });\n return props;\n}\n\nexport function props2transform(\n props: TransformProps | undefined\n): TransformedProps | null {\n if (!props) {\n return null;\n }\n const {\n rotation,\n translate,\n translateX,\n translateY,\n origin,\n originX,\n originY,\n scale,\n scaleX,\n scaleY,\n skew,\n skewX,\n skewY,\n x,\n y,\n } = props;\n if (\n rotation == null &&\n translate == null &&\n translateX == null &&\n translateY == null &&\n origin == null &&\n originX == null &&\n originY == null &&\n scale == null &&\n scaleX == null &&\n scaleY == null &&\n skew == null &&\n skewX == null &&\n skewY == null &&\n x == null &&\n y == null\n ) {\n return null;\n }\n\n if (Array.isArray(x) || Array.isArray(y)) {\n console.warn(\n 'Passing SvgLengthList to x or y attribute where SvgLength expected'\n );\n }\n const tr = universal2axis(\n translate,\n translateX || (Array.isArray(x) ? x[0] : x),\n translateY || (Array.isArray(y) ? y[0] : y)\n );\n const or = universal2axis(origin, originX, originY);\n const sc = universal2axis(scale, scaleX, scaleY, 1);\n const sk = universal2axis(skew, skewX, skewY);\n\n return {\n rotation: rotation == null ? 0 : +rotation || 0,\n originX: or[0],\n originY: or[1],\n scaleX: sc[0],\n scaleY: sc[1],\n skewX: sk[0],\n skewY: sk[1],\n x: tr[0],\n y: tr[1],\n };\n}\n\nexport function transformToMatrix(\n props: TransformedProps | null,\n transform: TransformProps['transform']\n): ColumnMajorTransformMatrix | null {\n if (!props && !transform) {\n return null;\n }\n reset();\n props && appendTransformProps(props);\n\n if (transform) {\n if (Array.isArray(transform)) {\n if (typeof transform[0] === 'number') {\n const columnMatrix = transform as ColumnMajorTransformMatrix;\n append(\n columnMatrix[0],\n columnMatrix[1],\n columnMatrix[2],\n columnMatrix[3],\n columnMatrix[4],\n columnMatrix[5]\n );\n } else {\n const transformProps = props2transform(\n transformsArrayToProps(transform as TransformsStyleArray)\n );\n transformProps && appendTransformProps(transformProps);\n }\n } else if (typeof transform === 'string') {\n try {\n const t = parse(transform);\n append(t[0], t[3], t[1], t[4], t[2], t[5]);\n } catch (e) {\n console.error(e);\n }\n } else {\n const transformProps = props2transform(transform);\n transformProps && appendTransformProps(transformProps);\n }\n }\n\n return toArray();\n}\n\nexport default function extractTransform(\n props: TransformProps | TransformProps['transform']\n): ColumnMajorTransformMatrix | null {\n if (Array.isArray(props) && typeof props[0] === 'number') {\n return props as ColumnMajorTransformMatrix;\n }\n if (typeof props === 'string') {\n try {\n const t = parse(props);\n return [t[0], t[3], t[1], t[4], t[2], t[5]];\n } catch (e) {\n console.error(e);\n return identity;\n }\n }\n // this type is not correct since props can be of type TransformsStyle['transform'] too\n // but it satisfies TS and should not produce any type errors\n const transformProps = props as TransformProps;\n return transformToMatrix(\n props2transform(transformProps),\n transformProps?.transform\n );\n}\n","import * as React from 'react';\nimport type { CircleProps } from './elements/Circle';\nimport type { ClipPathProps } from './elements/ClipPath';\nimport type { EllipseProps } from './elements/Ellipse';\nimport type { ForeignObjectProps } from './elements/ForeignObject';\nimport type { GProps } from './elements/G';\nimport type { ImageProps } from './elements/Image';\nimport type { LineProps } from './elements/Line';\nimport type { LinearGradientProps } from './elements/LinearGradient';\nimport type { MarkerProps } from './elements/Marker';\nimport type { MaskProps } from './elements/Mask';\nimport type { PathProps } from './elements/Path';\nimport type { PatternProps } from './elements/Pattern';\nimport type { PolygonProps } from './elements/Polygon';\nimport type { PolylineProps } from './elements/Polyline';\nimport type { RadialGradientProps } from './elements/RadialGradient';\nimport type { RectProps } from './elements/Rect';\nimport type { StopProps } from './elements/Stop';\nimport type { SvgProps } from './elements/Svg';\nimport type { SymbolProps } from './elements/Symbol';\nimport type { TextProps } from './elements/Text';\nimport type { TextPathProps } from './elements/TextPath';\nimport type { TSpanProps } from './elements/TSpan';\nimport type { UseProps } from './elements/Use';\nimport type { GestureResponderEvent, TransformsStyle } from 'react-native';\nimport {\n // @ts-ignore it is not seen in exports\n unstable_createElement as createElement,\n} from 'react-native';\nimport type {\n NumberArray,\n NumberProp,\n TransformProps,\n} from './lib/extract/types';\nimport SvgTouchableMixin from './lib/SvgTouchableMixin';\nimport { resolve } from './lib/resolve';\nimport { transformsArrayToProps } from './lib/extract/extractTransform';\n\ntype BlurEvent = object;\ntype FocusEvent = object;\ntype PressEvent = object;\ntype LayoutEvent = object;\ntype EdgeInsetsProp = object;\n\ninterface BaseProps {\n accessible?: boolean;\n accessibilityLabel?: string;\n accessibilityHint?: string;\n accessibilityIgnoresInvertColors?: boolean;\n accessibilityRole?: string;\n accessibilityState?: object;\n delayLongPress?: number;\n delayPressIn?: number;\n delayPressOut?: number;\n disabled?: boolean;\n hitSlop?: EdgeInsetsProp;\n nativeID?: string;\n touchSoundDisabled?: boolean;\n onBlur?: (e: BlurEvent) => void;\n onFocus?: (e: FocusEvent) => void;\n onLayout?: (event: LayoutEvent) => object;\n onLongPress?: (event: PressEvent) => object;\n onClick?: (event: PressEvent) => object;\n onPress?: (event: PressEvent) => object;\n onPressIn?: (event: PressEvent) => object;\n onPressOut?: (event: PressEvent) => object;\n pressRetentionOffset?: EdgeInsetsProp;\n rejectResponderTermination?: boolean;\n\n transform?: TransformProps['transform'];\n translate?: NumberArray;\n translateX?: NumberProp;\n translateY?: NumberProp;\n scale?: NumberArray;\n scaleX?: NumberProp;\n scaleY?: NumberProp;\n rotation?: NumberProp;\n skewX?: NumberProp;\n skewY?: NumberProp;\n origin?: NumberArray;\n originX?: NumberProp;\n originY?: NumberProp;\n\n fontStyle?: string;\n fontWeight?: NumberProp;\n fontSize?: NumberProp;\n fontFamily?: string;\n forwardedRef?:\n | React.RefCallback\n | React.MutableRefObject;\n style?: Iterable;\n\n // different tranform props\n gradientTransform?: TransformProps['transform'];\n patternTransform?: TransformProps['transform'];\n}\n\nconst hasTouchableProperty = (props: BaseProps) =>\n props.onPress || props.onPressIn || props.onPressOut || props.onLongPress;\n\nconst camelCaseToDashed = (camelCase: string) => {\n return camelCase.replace(/[A-Z]/g, (m) => '-' + m.toLowerCase());\n};\n\nfunction stringifyTransformProps(transformProps: TransformProps) {\n const transformArray = [];\n if (transformProps.translate != null) {\n transformArray.push(`translate(${transformProps.translate})`);\n }\n if (transformProps.translateX != null || transformProps.translateY != null) {\n transformArray.push(\n `translate(${transformProps.translateX || 0}, ${\n transformProps.translateY || 0\n })`\n );\n }\n if (transformProps.scale != null) {\n transformArray.push(`scale(${transformProps.scale})`);\n }\n if (transformProps.scaleX != null || transformProps.scaleY != null) {\n transformArray.push(\n `scale(${transformProps.scaleX || 1}, ${transformProps.scaleY || 1})`\n );\n }\n // rotation maps to rotate, not to collide with the text rotate attribute (which acts per glyph rather than block)\n if (transformProps.rotation != null) {\n transformArray.push(`rotate(${transformProps.rotation})`);\n }\n if (transformProps.skewX != null) {\n transformArray.push(`skewX(${transformProps.skewX})`);\n }\n if (transformProps.skewY != null) {\n transformArray.push(`skewY(${transformProps.skewY})`);\n }\n return transformArray;\n}\n\nfunction parseTransformProp(\n transform: TransformProps['transform'],\n props?: BaseProps\n) {\n const transformArray: string[] = [];\n\n props && transformArray.push(...stringifyTransformProps(props));\n\n if (Array.isArray(transform)) {\n if (typeof transform[0] === 'number') {\n transformArray.push(`matrix(${transform.join(' ')})`);\n } else {\n const stringifiedProps = transformsArrayToProps(\n transform as TransformsStyle['transform']\n );\n transformArray.push(...stringifyTransformProps(stringifiedProps));\n }\n } else if (typeof transform === 'string') {\n transformArray.push(transform);\n }\n\n return transformArray.length ? transformArray.join(' ') : undefined;\n}\n\n/**\n * `react-native-svg` supports additional props that aren't defined in the spec.\n * This function replaces them in a spec conforming manner.\n *\n * @param {WebShape} self Instance given to us.\n * @param {Object?} props Optional overridden props given to us.\n * @returns {Object} Cleaned props object.\n * @private\n */\nconst prepare = (\n self: WebShape,\n props = self.props\n) => {\n const {\n transform,\n origin,\n originX,\n originY,\n fontFamily,\n fontSize,\n fontWeight,\n fontStyle,\n style,\n forwardedRef,\n gradientTransform,\n patternTransform,\n ...rest\n } = props;\n\n const clean: {\n onStartShouldSetResponder?: (e: GestureResponderEvent) => boolean;\n onResponderMove?: (e: GestureResponderEvent) => void;\n onResponderGrant?: (e: GestureResponderEvent) => void;\n onResponderRelease?: (e: GestureResponderEvent) => void;\n onResponderTerminate?: (e: GestureResponderEvent) => void;\n onResponderTerminationRequest?: (e: GestureResponderEvent) => boolean;\n transform?: string;\n gradientTransform?: string;\n patternTransform?: string;\n 'transform-origin'?: string;\n style?: object;\n ref?: unknown;\n } = {\n ...(hasTouchableProperty(props)\n ? {\n onStartShouldSetResponder:\n self.touchableHandleStartShouldSetResponder,\n onResponderTerminationRequest:\n self.touchableHandleResponderTerminationRequest,\n onResponderGrant: self.touchableHandleResponderGrant,\n onResponderMove: self.touchableHandleResponderMove,\n onResponderRelease: self.touchableHandleResponderRelease,\n onResponderTerminate: self.touchableHandleResponderTerminate,\n }\n : null),\n ...rest,\n };\n\n if (origin != null) {\n clean['transform-origin'] = origin.toString().replace(',', ' ');\n } else if (originX != null || originY != null) {\n clean['transform-origin'] = `${originX || 0} ${originY || 0}`;\n }\n\n // we do it like this because setting transform as undefined causes error in web\n const parsedTransform = parseTransformProp(transform, props);\n if (parsedTransform) {\n clean.transform = parsedTransform;\n }\n const parsedGradientTransform = parseTransformProp(gradientTransform);\n if (parsedGradientTransform) {\n clean.gradientTransform = parsedGradientTransform;\n }\n const parsedPatternTransform = parseTransformProp(patternTransform);\n if (parsedPatternTransform) {\n clean.patternTransform = parsedPatternTransform;\n }\n\n clean.ref = (el: SVGElement | null) => {\n self.elementRef.current = el;\n if (typeof forwardedRef === 'function') {\n forwardedRef(el);\n } else if (forwardedRef) {\n forwardedRef.current = el;\n }\n };\n\n const styles: {\n fontStyle?: string;\n fontFamily?: string;\n fontSize?: NumberProp;\n fontWeight?: NumberProp;\n } = {};\n\n if (fontFamily != null) {\n styles.fontFamily = fontFamily;\n }\n if (fontSize != null) {\n styles.fontSize = fontSize;\n }\n if (fontWeight != null) {\n styles.fontWeight = fontWeight;\n }\n if (fontStyle != null) {\n styles.fontStyle = fontStyle;\n }\n clean.style = resolve(style, styles);\n\n return clean;\n};\n\nconst getBoundingClientRect = (node: SVGElement) => {\n if (node) {\n const isElement = node.nodeType === 1; /* Node.ELEMENT_NODE */\n if (isElement && typeof node.getBoundingClientRect === 'function') {\n return node.getBoundingClientRect();\n }\n }\n throw new Error('Can not get boundingClientRect of ' + node || 'undefined');\n};\n\nconst measureLayout = (\n node: SVGElement,\n callback: (\n x: number,\n y: number,\n width: number,\n height: number,\n left: number,\n top: number\n ) => void\n) => {\n const relativeNode = node?.parentNode;\n if (relativeNode) {\n setTimeout(() => {\n // @ts-expect-error TODO: handle it better\n const relativeRect = getBoundingClientRect(relativeNode);\n const { height, left, top, width } = getBoundingClientRect(node);\n const x = left - relativeRect.left;\n const y = top - relativeRect.top;\n callback(x, y, width, height, left, top);\n }, 0);\n }\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction remeasure(this: any) {\n const tag = this.state.touchable.responderID;\n if (tag === null) {\n return;\n }\n measureLayout(tag, this._handleQueryLayout);\n}\n\nexport class WebShape<\n P extends BaseProps = BaseProps,\n> extends React.Component

{\n [x: string]: unknown;\n protected tag?: React.ElementType;\n protected prepareProps(props: P) {\n return props;\n }\n\n elementRef =\n React.createRef() as React.MutableRefObject;\n\n lastMergedProps: Partial

= {};\n\n /**\n * disclaimer: I am not sure why the props are wrapped in a `style` attribute here, but that's how reanimated calls it\n */\n setNativeProps(props: { style: P }) {\n const merged = Object.assign(\n {},\n this.props,\n this.lastMergedProps,\n props.style\n );\n this.lastMergedProps = merged;\n const clean = prepare(this, this.prepareProps(merged));\n const current = this.elementRef.current;\n if (current) {\n for (const cleanAttribute of Object.keys(clean)) {\n const cleanValue = clean[cleanAttribute as keyof typeof clean];\n switch (cleanAttribute) {\n case 'ref':\n case 'children':\n break;\n case 'style':\n // style can be an object here or an array, so we convert it to an array and assign each element\n for (const partialStyle of ([] as unknown[]).concat(\n clean.style ?? []\n )) {\n Object.assign(current.style, partialStyle);\n }\n break;\n default:\n // apply all other incoming prop updates as attributes on the node\n // same logic as in https://github.com/software-mansion/react-native-reanimated/blob/d04720c82f5941532991b235787285d36d717247/src/reanimated2/js-reanimated/index.ts#L38-L39\n // @ts-expect-error TODO: fix this\n current.setAttribute(camelCaseToDashed(cleanAttribute), cleanValue);\n break;\n }\n }\n }\n }\n\n _remeasureMetricsOnActivation: () => void;\n touchableHandleStartShouldSetResponder?: (\n e: GestureResponderEvent\n ) => boolean;\n\n touchableHandleResponderMove?: (e: GestureResponderEvent) => void;\n touchableHandleResponderGrant?: (e: GestureResponderEvent) => void;\n touchableHandleResponderRelease?: (e: GestureResponderEvent) => void;\n touchableHandleResponderTerminate?: (e: GestureResponderEvent) => void;\n touchableHandleResponderTerminationRequest?: (\n e: GestureResponderEvent\n ) => boolean;\n\n constructor(props: P) {\n super(props);\n\n // Do not attach touchable mixin handlers if SVG element doesn't have a touchable prop\n if (hasTouchableProperty(props)) {\n SvgTouchableMixin(this);\n }\n\n this._remeasureMetricsOnActivation = remeasure.bind(this);\n }\n\n render(): JSX.Element {\n if (!this.tag) {\n throw new Error(\n 'When extending `WebShape` you need to overwrite either `tag` or `render`!'\n );\n }\n this.lastMergedProps = {};\n return createElement(\n this.tag,\n prepare(this, this.prepareProps(this.props))\n );\n }\n}\n\nexport class Circle extends WebShape {\n tag = 'circle' as const;\n}\n\nexport class ClipPath extends WebShape {\n tag = 'clipPath' as const;\n}\n\nexport class Defs extends WebShape {\n tag = 'defs' as const;\n}\n\nexport class Ellipse extends WebShape {\n tag = 'ellipse' as const;\n}\n\nexport class G extends WebShape {\n tag = 'g' as const;\n prepareProps(props: BaseProps & GProps) {\n const { x, y, ...rest } = props;\n\n if ((x || y) && !rest.translate) {\n rest.translate = `${x || 0}, ${y || 0}`;\n }\n\n return rest;\n }\n}\n\nexport class Image extends WebShape {\n tag = 'image' as const;\n}\n\nexport class Line extends WebShape {\n tag = 'line' as const;\n}\n\nexport class LinearGradient extends WebShape {\n tag = 'linearGradient' as const;\n}\n\nexport class Path extends WebShape {\n tag = 'path' as const;\n}\n\nexport class Polygon extends WebShape {\n tag = 'polygon' as const;\n}\n\nexport class Polyline extends WebShape {\n tag = 'polyline' as const;\n}\n\nexport class RadialGradient extends WebShape {\n tag = 'radialGradient' as const;\n}\n\nexport class Rect extends WebShape {\n tag = 'rect' as const;\n}\n\nexport class Stop extends WebShape {\n tag = 'stop' as const;\n}\n\n/* Taken from here: https://gist.github.com/jennyknuth/222825e315d45a738ed9d6e04c7a88d0 */\nfunction encodeSvg(svgString: string) {\n return svgString\n .replace(\n '/g, '%3E')\n .replace(/\\s+/g, ' ');\n}\n\nexport class Svg extends WebShape {\n tag = 'svg' as const;\n toDataURL(\n callback: (data: string) => void,\n options: { width?: number; height?: number } = {}\n ) {\n const ref = this.elementRef.current;\n\n if (ref === null) {\n return;\n }\n\n const rect = getBoundingClientRect(ref);\n\n const width = Number(options.width) || rect.width;\n const height = Number(options.height) || rect.height;\n\n const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n svg.setAttribute('viewBox', `0 0 ${rect.width} ${rect.height}`);\n svg.setAttribute('width', String(width));\n svg.setAttribute('height', String(height));\n svg.appendChild(ref.cloneNode(true));\n\n const img = new window.Image();\n img.onload = () => {\n const canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n const context = canvas.getContext('2d');\n context?.drawImage(img, 0, 0);\n callback(canvas.toDataURL().replace('data:image/png;base64,', ''));\n };\n\n img.src = `data:image/svg+xml;utf8,${encodeSvg(\n new window.XMLSerializer().serializeToString(svg)\n )}`;\n }\n}\n\nexport class Symbol extends WebShape {\n tag = 'symbol' as const;\n}\n\nexport class Text extends WebShape {\n tag = 'text' as const;\n}\n\nexport class TSpan extends WebShape {\n tag = 'tspan' as const;\n}\n\nexport class TextPath extends WebShape {\n tag = 'textPath' as const;\n}\n\nexport class Use extends WebShape {\n tag = 'use' as const;\n}\n\nexport class Mask extends WebShape {\n tag = 'mask' as const;\n}\n\nexport class ForeignObject extends WebShape {\n tag = 'foreignObject' as const;\n}\n\nexport class Marker extends WebShape {\n tag = 'marker' as const;\n}\n\nexport class Pattern extends WebShape {\n tag = 'pattern' as const;\n}\n\nexport default Svg;\n","import { StyleSheet } from 'react-native';\n\n// Kept in separate file, to avoid name collision with Symbol element\nexport function resolve(\n styleProp: Iterable | undefined,\n cleanedProps: T\n) {\n if (styleProp) {\n return StyleSheet\n ? [styleProp, cleanedProps]\n : // Compatibility for arrays of styles in plain react web\n styleProp[Symbol.iterator]\n ? Object.assign({}, ...styleProp, cleanedProps)\n : Object.assign({}, styleProp, cleanedProps);\n } else {\n return cleanedProps;\n }\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { Path } from 'react-native-svg';\n\nconst CIRCLE = Math.PI * 2;\n\nfunction makeArcPath(x, y, startAngleArg, endAngleArg, radius, direction) {\n let startAngle = startAngleArg;\n let endAngle = endAngleArg;\n if (endAngle - startAngle >= CIRCLE) {\n endAngle = CIRCLE + (endAngle % CIRCLE);\n } else {\n endAngle = endAngle % CIRCLE;\n }\n startAngle = startAngle % CIRCLE;\n const angle =\n startAngle > endAngle\n ? CIRCLE - startAngle + endAngle\n : endAngle - startAngle;\n\n if (angle >= CIRCLE) {\n return `M${x + radius} ${y}\n a${radius} ${radius} 0 0 1 0 ${radius * 2}\n a${radius} ${radius} 0 0 1 0 ${radius * -2}`;\n }\n\n const directionFactor = direction === 'counter-clockwise' ? -1 : 1;\n endAngle *= directionFactor;\n startAngle *= directionFactor;\n const startSine = Math.sin(startAngle);\n const startCosine = Math.cos(startAngle);\n const endSine = Math.sin(endAngle);\n const endCosine = Math.cos(endAngle);\n\n const arcFlag = angle > Math.PI ? 1 : 0;\n const reverseFlag = direction === 'counter-clockwise' ? 0 : 1;\n\n return `M${x + radius * (1 + startSine)} ${y + radius - radius * startCosine}\n A${radius} ${radius} 0 ${arcFlag} ${reverseFlag} ${x +\n radius * (1 + endSine)} ${y + radius - radius * endCosine}`;\n}\n\nexport default class Arc extends Component {\n static propTypes = {\n startAngle: PropTypes.number.isRequired, // in radians\n endAngle: PropTypes.number.isRequired, // in radians\n radius: PropTypes.number.isRequired,\n offset: PropTypes.shape({\n top: PropTypes.number,\n left: PropTypes.number,\n }),\n strokeCap: PropTypes.string,\n strokeWidth: PropTypes.number,\n direction: PropTypes.oneOf(['clockwise', 'counter-clockwise']),\n };\n\n static defaultProps = {\n startAngle: 0,\n offset: { top: 0, left: 0 },\n strokeCap: 'butt',\n strokeWidth: 0,\n direction: 'clockwise',\n };\n\n render() {\n const {\n startAngle,\n endAngle,\n radius,\n offset,\n direction,\n strokeCap,\n strokeWidth,\n ...restProps\n } = this.props;\n\n const path = makeArcPath(\n (offset.left || 0) + strokeWidth / 2,\n (offset.top || 0) + strokeWidth / 2,\n startAngle,\n endAngle,\n radius - strokeWidth / 2,\n direction\n );\n\n return (\n \n );\n }\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { Animated, Easing } from 'react-native';\n\nexport default function withAnimation(WrappedComponent, indeterminateProgress) {\n const wrappedComponentName =\n WrappedComponent.displayName || WrappedComponent.name || 'Component';\n\n return class AnimatedComponent extends Component {\n static displayName = `withAnimation(${wrappedComponentName})`;\n\n static propTypes = {\n animated: PropTypes.bool,\n direction: PropTypes.oneOf(['clockwise', 'counter-clockwise']),\n indeterminate: PropTypes.bool,\n indeterminateAnimationDuration: PropTypes.number,\n progress: PropTypes.number,\n };\n\n static defaultProps = {\n animated: true,\n indeterminateAnimationDuration: 1000,\n indeterminate: false,\n progress: 0,\n };\n\n constructor(props) {\n super(props);\n\n this.progressValue = Math.min(Math.max(props.progress, 0), 1);\n this.rotationValue = 0;\n this.state = {\n progress: new Animated.Value(this.progressValue),\n rotation: new Animated.Value(this.rotationValue),\n };\n }\n\n componentDidMount() {\n this.state.progress.addListener(event => {\n this.progressValue = event.value;\n });\n this.state.rotation.addListener(event => {\n this.rotationValue = event.value;\n });\n if (this.props.indeterminate) {\n this.spin();\n if (indeterminateProgress) {\n Animated.spring(this.state.progress, {\n toValue: indeterminateProgress,\n useNativeDriver: false\n }).start();\n }\n }\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.indeterminate !== this.props.indeterminate) {\n if (this.props.indeterminate) {\n this.spin();\n } else {\n Animated.spring(this.state.rotation, {\n toValue: this.rotationValue > 0.5 ? 1 : 0,\n useNativeDriver: false\n }).start(endState => {\n if (endState.finished) {\n this.state.rotation.setValue(0);\n }\n });\n }\n }\n const progress = this.props.indeterminate\n ? indeterminateProgress || 0\n : Math.min(Math.max(this.props.progress, 0), 1);\n if (progress !== this.progressValue) {\n if (this.props.animated) {\n Animated.spring(this.state.progress, {\n toValue: progress,\n bounciness: 0,\n useNativeDriver: false\n }).start();\n } else {\n this.state.progress.setValue(progress);\n }\n }\n }\n\n componentWillUnmount() {\n this.state.progress.removeAllListeners();\n this.state.rotation.removeAllListeners();\n }\n\n spin() {\n this.state.rotation.setValue(0);\n Animated.timing(this.state.rotation, {\n toValue: this.props.direction === 'counter-clockwise' ? -1 : 1,\n duration: this.props.indeterminateAnimationDuration,\n easing: Easing.linear,\n isInteraction: false,\n useNativeDriver: false\n }).start(endState => {\n if (endState.finished) {\n this.spin();\n }\n });\n }\n\n render() {\n return (\n \n );\n }\n };\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { Animated, StyleSheet, Text, View } from 'react-native';\nimport { Svg } from 'react-native-svg';\n\nimport Arc from './Shapes/Arc';\nimport withAnimation from './withAnimation';\n\nconst CIRCLE = Math.PI * 2;\n\nconst AnimatedSvg = Animated.createAnimatedComponent(Svg);\nconst AnimatedArc = Animated.createAnimatedComponent(Arc);\n\nconst styles = StyleSheet.create({\n container: {\n backgroundColor: 'transparent',\n overflow: 'hidden',\n },\n});\n\nexport class ProgressCircle extends Component {\n static propTypes = {\n animated: PropTypes.bool,\n borderColor: PropTypes.string,\n borderWidth: PropTypes.number,\n color: PropTypes.string,\n children: PropTypes.node,\n direction: PropTypes.oneOf(['clockwise', 'counter-clockwise']),\n fill: PropTypes.string,\n formatText: PropTypes.func,\n indeterminate: PropTypes.bool,\n progress: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.instanceOf(Animated.Value),\n ]),\n rotation: PropTypes.instanceOf(Animated.Value),\n showsText: PropTypes.bool,\n size: PropTypes.number,\n style: PropTypes.any,\n strokeCap: PropTypes.oneOf(['butt', 'square', 'round']),\n textStyle: PropTypes.any,\n thickness: PropTypes.number,\n unfilledColor: PropTypes.string,\n endAngle: PropTypes.number,\n allowFontScaling: PropTypes.bool,\n };\n\n static defaultProps = {\n borderWidth: 1,\n color: 'rgba(0, 122, 255, 1)',\n direction: 'clockwise',\n formatText: progress => `${Math.round(progress * 100)}%`,\n progress: 0,\n showsText: false,\n size: 40,\n thickness: 3,\n endAngle: 0.9,\n allowFontScaling: true,\n };\n\n constructor(props, context) {\n super(props, context);\n\n this.progressValue = 0;\n }\n\n componentDidMount() {\n if (this.props.animated) {\n this.props.progress.addListener(event => {\n this.progressValue = event.value;\n if (this.props.showsText || this.progressValue === 1) {\n this.forceUpdate();\n }\n });\n }\n }\n\n render() {\n const {\n animated,\n borderColor,\n borderWidth,\n color,\n children,\n direction,\n fill,\n formatText,\n indeterminate,\n progress,\n rotation,\n showsText,\n size,\n style,\n strokeCap,\n textStyle,\n thickness,\n unfilledColor,\n endAngle,\n allowFontScaling,\n ...restProps\n } = this.props;\n\n const border = borderWidth || (indeterminate ? 1 : 0);\n\n const radius = size / 2 - border;\n const offset = {\n top: border,\n left: border,\n };\n const textOffset = border + thickness;\n const textSize = size - textOffset * 2;\n\n const Surface = rotation ? AnimatedSvg : Svg;\n const Shape = animated ? AnimatedArc : Arc;\n const progressValue = animated ? this.progressValue : progress;\n const angle = animated\n ? Animated.multiply(progress, CIRCLE)\n : progress * CIRCLE;\n\n return (\n \n \n {unfilledColor && progressValue !== 1 ? (\n \n ) : (\n false\n )}\n {!indeterminate ? (\n \n ) : (\n false\n )}\n {border ? (\n \n ) : (\n false\n )}\n \n {!indeterminate && showsText ? (\n \n \n {formatText(progressValue)}\n \n \n ) : (\n false\n )}\n {children}\n \n );\n }\n}\n\nexport default withAnimation(ProgressCircle);\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { Animated, Easing } from 'react-native';\nimport { Svg } from 'react-native-svg';\n\nimport Arc from './Shapes/Arc';\n\nconst AnimatedArc = Animated.createAnimatedComponent(Arc);\n\nconst MIN_ARC_ANGLE = 0.1;\nconst MAX_ARC_ANGLE = 1.5 * Math.PI;\n\nexport default class CircleSnail extends Component {\n static propTypes = {\n animating: PropTypes.bool,\n color: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n children: PropTypes.node,\n direction: PropTypes.oneOf(['clockwise', 'counter-clockwise']),\n duration: PropTypes.number,\n hidesWhenStopped: PropTypes.bool,\n size: PropTypes.number,\n spinDuration: PropTypes.number,\n style: PropTypes.any,\n thickness: PropTypes.number,\n strokeCap: PropTypes.string,\n useNativeDriver: PropTypes.bool,\n };\n\n static defaultProps = {\n animating: true,\n color: 'rgba(0, 122, 255, 1)',\n direction: 'counter-clockwise',\n hidesWhenStopped: false,\n size: 40,\n thickness: 3,\n strokeCap: 'round',\n useNativeDriver: false,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n startAngle: new Animated.Value(-MIN_ARC_ANGLE),\n endAngle: new Animated.Value(0),\n rotation: new Animated.Value(0),\n colorIndex: 0,\n };\n }\n\n componentDidMount() {\n if (this.props.animating) {\n this.animate();\n this.spin();\n }\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.animating !== this.props.animating) {\n if (this.props.animating) {\n this.animate();\n this.spin();\n } else {\n this.stopAnimations();\n }\n }\n }\n\n animate(iteration = 1) {\n Animated.sequence([\n Animated.timing(this.state.startAngle, {\n toValue: -MAX_ARC_ANGLE * iteration - MIN_ARC_ANGLE,\n duration: this.props.duration || 1000,\n isInteraction: false,\n easing: Easing.inOut(Easing.quad),\n useNativeDriver: this.props.useNativeDriver,\n }),\n Animated.timing(this.state.endAngle, {\n toValue: -MAX_ARC_ANGLE * iteration,\n duration: this.props.duration || 1000,\n isInteraction: false,\n easing: Easing.inOut(Easing.quad),\n useNativeDriver: this.props.useNativeDriver,\n }),\n ]).start(endState => {\n if (endState.finished) {\n if (Array.isArray(this.props.color)) {\n this.setState({\n colorIndex: iteration % this.props.color.length,\n });\n }\n this.animate(iteration + 1);\n }\n });\n }\n\n spin() {\n Animated.timing(this.state.rotation, {\n toValue: 1,\n duration: this.props.spinDuration || 5000,\n easing: Easing.linear,\n isInteraction: false,\n useNativeDriver: this.props.useNativeDriver,\n }).start(endState => {\n if (endState.finished) {\n this.state.rotation.setValue(0);\n this.spin();\n }\n });\n }\n\n stopAnimations() {\n this.state.startAngle.stopAnimation();\n this.state.endAngle.stopAnimation();\n this.state.rotation.stopAnimation();\n }\n\n render() {\n const {\n animating,\n children,\n color,\n direction,\n hidesWhenStopped,\n size,\n style,\n thickness,\n strokeCap,\n ...restProps\n } = this.props;\n\n if (!animating && hidesWhenStopped) {\n return null;\n }\n\n const radius = size / 2 - thickness;\n const offset = {\n top: thickness,\n left: thickness,\n };\n\n const directionFactor = direction === 'counter-clockwise' ? -1 : 1;\n\n return (\n \n \n \n \n {children}\n \n );\n }\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { Path } from 'react-native-svg';\n\nfunction makeCirclePath(x, y, radius, direction) {\n const reverseFlag = direction === 'counter-clockwise' ? 0 : 1;\n\n return `M${x} ${y}\n m${radius} 0\n a${radius} ${radius} 0 0 ${reverseFlag} 0 ${radius * 2}\n a${radius} ${radius} 0 0 ${reverseFlag} 0 ${radius * -2}`;\n}\n\nexport default class Circle extends Component {\n static propTypes = {\n radius: PropTypes.number.isRequired,\n offset: PropTypes.shape({\n top: PropTypes.number,\n left: PropTypes.number,\n }),\n strokeWidth: PropTypes.number,\n direction: PropTypes.oneOf(['clockwise', 'counter-clockwise']),\n };\n\n static defaultProps = {\n offset: { top: 0, left: 0 },\n strokeWidth: 0,\n direction: 'clockwise',\n };\n\n render() {\n const { radius, offset, strokeWidth, direction, ...restProps } = this.props;\n const path = makeCirclePath(\n (offset.left || 0) + strokeWidth / 2,\n (offset.top || 0) + strokeWidth / 2,\n radius - strokeWidth / 2,\n direction\n );\n return (\n \n );\n }\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { Path } from 'react-native-svg';\n\nconst CIRCLE = Math.PI * 2;\n\nfunction makeSectorPath(x, y, angle, radius) {\n if (angle >= CIRCLE) {\n return `M${x} ${y}\n m${radius} 0\n a${radius} ${radius} 0 0 1 0 ${radius * 2}\n a${radius} ${radius} 0 0 1 0 ${radius * -2}`;\n }\n\n const startAngle = Math.PI / 2 - angle;\n const endAngle = Math.PI / 2;\n const arcFlag = angle > Math.PI ? 1 : 0;\n const centerX = x + radius;\n const centerY = y + radius;\n\n return `M${centerX} ${centerY}\n L${centerX + Math.cos(startAngle) * radius} ${centerY -\n Math.sin(startAngle) * radius}\n A${radius} ${radius} 0 ${arcFlag} 0 ${centerX +\n Math.cos(endAngle) * radius} ${centerY - Math.sin(endAngle) * radius}\n L${centerX} ${centerY}`;\n}\n\nexport default class Sector extends Component {\n static propTypes = {\n angle: PropTypes.number.isRequired, // in radians\n radius: PropTypes.number.isRequired,\n offset: PropTypes.shape({\n top: PropTypes.number,\n left: PropTypes.number,\n }),\n };\n\n static defaultProps = {\n offset: { top: 0, left: 0 },\n };\n\n render() {\n const { angle, radius, offset, ...restProps } = this.props;\n const path = makeSectorPath(\n offset.left || 0,\n offset.top || 0,\n angle,\n radius\n );\n return ;\n }\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { Animated, StyleSheet, View } from 'react-native';\nimport { Svg } from 'react-native-svg';\n\nimport Circle from './Shapes/Circle';\nimport Sector from './Shapes/Sector';\nimport withAnimation from './withAnimation';\n\nconst CIRCLE = Math.PI * 2;\n\nconst AnimatedSvg = Animated.createAnimatedComponent(Svg);\nconst AnimatedSector = Animated.createAnimatedComponent(Sector);\n\nconst styles = StyleSheet.create({\n container: {\n backgroundColor: 'transparent',\n overflow: 'hidden',\n },\n});\n\nexport class ProgressPie extends Component {\n static propTypes = {\n animated: PropTypes.bool,\n borderColor: PropTypes.string,\n borderWidth: PropTypes.number,\n color: PropTypes.string,\n children: PropTypes.node,\n progress: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.instanceOf(Animated.Value),\n ]),\n rotation: PropTypes.instanceOf(Animated.Value),\n size: PropTypes.number,\n style: PropTypes.any,\n unfilledColor: PropTypes.string,\n };\n\n static defaultProps = {\n borderWidth: 1,\n color: 'rgba(0, 122, 255, 1)',\n progress: 0,\n size: 40,\n };\n\n render() {\n const {\n animated,\n borderColor,\n borderWidth,\n children,\n color,\n progress,\n rotation,\n size,\n style,\n unfilledColor,\n ...restProps\n } = this.props;\n\n const Surface = rotation ? AnimatedSvg : Svg;\n const Shape = animated ? AnimatedSector : Sector;\n\n const angle = animated\n ? Animated.multiply(progress, CIRCLE)\n : progress * CIRCLE;\n const radius = size / 2 - borderWidth;\n const offset = {\n top: borderWidth,\n left: borderWidth,\n };\n\n return (\n \n \n {unfilledColor ? (\n \n ) : (\n false\n )}\n \n {borderWidth ? (\n \n ) : (\n false\n )}\n \n {children}\n \n );\n }\n}\n\nexport default withAnimation(ProgressPie, 0.2);\n","import { Platform, UIManager } from 'react-native';\n\n// const that tells if the library should use new implementation, will be undefined for older versions\nexport const shouldUseActivityState = true;\n\nexport const isNativePlatformSupported =\n Platform.OS === 'ios' ||\n Platform.OS === 'android' ||\n Platform.OS === 'windows';\n\nlet ENABLE_SCREENS = isNativePlatformSupported;\n\nexport function enableScreens(shouldEnableScreens = true) {\n ENABLE_SCREENS = shouldEnableScreens;\n\n if (!isNativePlatformSupported) {\n return;\n }\n\n if (ENABLE_SCREENS && !UIManager.getViewManagerConfig('RNSScreen')) {\n console.error(\n `Screen native module hasn't been linked. Please check the react-native-screens README for more details`\n );\n }\n}\n\nlet ENABLE_FREEZE = false;\n\nexport function enableFreeze(shouldEnableReactFreeze = true) {\n if (!isNativePlatformSupported) {\n return;\n }\n\n ENABLE_FREEZE = shouldEnableReactFreeze;\n}\n\nexport function screensEnabled() {\n return ENABLE_SCREENS;\n}\n\nexport function freezeEnabled() {\n return ENABLE_FREEZE;\n}\n","import { ScreenProps } from 'react-native-screens';\nimport { Animated, View } from 'react-native';\nimport React from 'react';\n\nimport { screensEnabled } from '../core';\n\nexport const InnerScreen = View;\n\n// We're using class component here because of the error from reanimated:\n// createAnimatedComponent` does not support stateless functional components; use a class component instead.\nexport class NativeScreen extends React.Component {\n render(): JSX.Element {\n let {\n active,\n activityState,\n style,\n enabled = screensEnabled(),\n ...rest\n } = this.props;\n\n if (enabled) {\n if (active !== undefined && activityState === undefined) {\n activityState = active !== 0 ? 2 : 0; // change taken from index.native.tsx\n }\n return (\n

}\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 this._captureRef = ref => {\n this._wrapperListRef = ref;\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 /**\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 recordInteraction() {\n var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n listRef && listRef.recordInteraction();\n }\n\n /**\n * Displays the scroll indicators momentarily.\n *\n * @platform ios\n */\n flashScrollIndicators() {\n var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n listRef && listRef.flashScrollIndicators();\n }\n\n /**\n * Provides a handle to the underlying scroll responder.\n */\n getScrollResponder() {\n var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n if (listRef) {\n return listRef.getScrollResponder();\n }\n }\n getScrollableNode() {\n var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n if (listRef) {\n return listRef.getScrollableNode();\n }\n }\n render() {\n var _this$props = this.props,\n _stickySectionHeadersEnabled = _this$props.stickySectionHeadersEnabled,\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\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 * 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\nimport SectionList from '../../vendor/react-native/SectionList';\nexport default SectionList;","/**\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\nvar isWebColor = color => color === 'currentcolor' || color === 'currentColor' || color === 'inherit' || color.indexOf('var(') === 0;\nexport default isWebColor;","/**\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 */\n\nimport normalizeColor from '@react-native/normalize-colors';\nvar processColor = color => {\n if (color === undefined || color === null) {\n return color;\n }\n\n // convert number and hex\n var int32Color = normalizeColor(color);\n if (int32Color === undefined || int32Color === null) {\n return undefined;\n }\n int32Color = (int32Color << 24 | int32Color >>> 8) >>> 0;\n return int32Color;\n};\nexport default processColor;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport isWebColor from '../../../modules/isWebColor';\nimport processColor from '../../../exports/processColor';\nvar normalizeColor = function normalizeColor(color, opacity) {\n if (opacity === void 0) {\n opacity = 1;\n }\n if (color == null) return;\n if (typeof color === 'string' && isWebColor(color)) {\n return color;\n }\n var colorInt = processColor(color);\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};\nexport default normalizeColor;","/**\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 */\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/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\nvar prefixes = ['ms', 'Moz', 'O', 'Webkit'];\nvar prefixKey = (prefix, key) => {\n return prefix + key.charAt(0).toUpperCase() + key.substring(1);\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 */\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 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 return returnValue;\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';\n\n// $FlowFixMe: HTMLStyleElement is incorrectly typed - https://github.com/facebook/flow/issues/2696\nexport default function createCSSStyleSheet(id, rootNode, textContent) {\n if (canUseDOM) {\n var root = rootNode != null ? rootNode : document;\n var element = root.getElementById(id);\n if (element == null) {\n element = document.createElement('style');\n element.setAttribute('id', id);\n if (typeof textContent === 'string') {\n element.appendChild(document.createTextNode(textContent));\n }\n if (root instanceof ShadowRoot) {\n root.insertBefore(element, root.firstChild);\n } else {\n var head = root.head;\n if (head) {\n head.insertBefore(element, head.firstChild);\n }\n }\n }\n // $FlowFixMe: HTMLElement is incorrectly typed\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 */\n\nvar slice = Array.prototype.slice;\n\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 */\nexport default function createOrderedCSSStyleSheet(sheet) {\n var groups = {};\n var selectors = {};\n\n /**\n * Hydrate approximate record from any existing rules in the sheet.\n */\n if (sheet != null) {\n var group;\n slice.call(sheet.cssRules).forEach((cssRule, i) => {\n var cssText = cssRule.cssText;\n // Create record of existing selectors and rules\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 if (selectorText != null) {\n selectors[selectorText] = true;\n groups[group].rules.push(cssText);\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];\n // Insert rule before the next group, or at the end of the stylesheet\n var position = nextGroup != null && groups[nextGroup].start != null ? groups[nextGroup].start : sheet.cssRules.length;\n var isInserted = insertRuleAt(sheet, text, position);\n if (isInserted) {\n // Set the starting index of the new group\n if (groups[group].start == null) {\n groups[group].start = position;\n }\n // Increment the starting index of all subsequent groups\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 return isInserted;\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;\n // Sorting provides deterministic order of styles in group for\n // build-time extraction of the style sheet.\n var marker = rules.shift();\n rules.sort();\n rules.unshift(marker);\n return rules.join('\\n');\n }).join('\\n');\n },\n /**\n * Insert a rule into the style sheet\n */\n insert(cssText, groupValue) {\n var group = Number(groupValue);\n\n // Create a new group.\n if (groups[group] == null) {\n var markerRule = encodeGroupRule(group);\n // Create the internal record.\n groups[group] = {\n start: null,\n rules: [markerRule]\n };\n // Update CSSOM.\n if (sheet != null) {\n sheetInsert(sheet, group, markerRule);\n }\n }\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 var selectorText = getSelectorText(cssText);\n if (selectorText != null && selectors[selectorText] == null) {\n // Update the internal records.\n selectors[selectorText] = true;\n groups[group].rules.push(cssText);\n // Update CSSOM.\n if (sheet != null) {\n var isInserted = sheetInsert(sheet, group, cssText);\n if (!isInserted) {\n // Revert internal record change if a rule was rejected (e.g.,\n // unrecognized pseudo-selector)\n groups[group].rules.pop();\n }\n }\n }\n }\n };\n return OrderedCSSStyleSheet;\n}\n\n/**\n * Helper functions\n */\n\nfunction encodeGroupRule(group) {\n return \"[stylesheet-group=\\\"\" + group + \"\\\"]{}\";\n}\nvar groupPattern = /[\"']/g;\nfunction decodeGroupRule(cssRule) {\n return Number(cssRule.selectorText.split(groupPattern)[1]);\n}\nfunction getOrderedGroups(obj) {\n return Object.keys(obj).map(Number).sort((a, b) => a > b ? 1 : -1);\n}\nvar selectorPattern = /\\s*([,])\\s*/g;\nfunction getSelectorText(cssText) {\n var selector = cssText.split('{')[0].trim();\n return selector !== '' ? selector.replace(selectorPattern, '$1') : null;\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 */\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 = [\n// 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;}',\n// 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 var sheet;\n if (canUseDOM) {\n var rootNode = root != null ? root.getRootNode() : document;\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 roots.set(rootNode, sheets.length);\n sheets.push(sheet);\n } else {\n var index = roots.get(rootNode);\n if (index == null) {\n var initialSheet = sheets[0];\n // If we're creating a new sheet, populate it with existing styles\n var textContent = initialSheet != null ? initialSheet.getTextContent() : '';\n // Cast rootNode to 'any' because Flow types for getRootNode are wrong\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 return {\n getTextContent() {\n return sheet.getTextContent();\n },\n id,\n insert(cssText, groupValue) {\n sheets.forEach(s => {\n s.insert(cssText, groupValue);\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 */\n\nimport normalizeValueWithProperty from './normalizeValueWithProperty';\nimport canUseDOM from '../../../modules/canUseDom';\n/**\n * The browser implements the CSS cascade, where the order of properties is a\n * factor in determining which styles to paint. React Native is different. It\n * gives giving precedence to the more specific style property. For example,\n * the value of `paddingTop` takes precedence over that of `padding`.\n *\n * This module creates mutally exclusive style declarations by expanding all of\n * React Native's supported shortform properties (e.g. `padding`) to their\n * longfrom equivalents.\n */\n\nvar emptyObject = {};\nvar supportsCSS3TextDecoration = !canUseDOM || window.CSS != null && window.CSS.supports != null && (window.CSS.supports('text-decoration-line', 'none') || window.CSS.supports('-webkit-text-decoration-line', 'none'));\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 borderBlockColor: ['borderTopColor', 'borderBottomColor'],\n borderInlineColor: ['borderRightColor', 'borderLeftColor'],\n borderRadius: ['borderTopLeftRadius', 'borderTopRightRadius', 'borderBottomRightRadius', 'borderBottomLeftRadius'],\n borderStyle: ['borderTopStyle', 'borderRightStyle', 'borderBottomStyle', 'borderLeftStyle'],\n borderBlockStyle: ['borderTopStyle', 'borderBottomStyle'],\n borderInlineStyle: ['borderRightStyle', 'borderLeftStyle'],\n borderWidth: ['borderTopWidth', 'borderRightWidth', 'borderBottomWidth', 'borderLeftWidth'],\n borderBlockWidth: ['borderTopWidth', 'borderBottomWidth'],\n borderInlineWidth: ['borderRightWidth', 'borderLeftWidth'],\n insetBlock: ['top', 'bottom'],\n insetInline: ['left', 'right'],\n marginBlock: ['marginTop', 'marginBottom'],\n marginInline: ['marginRight', 'marginLeft'],\n paddingBlock: ['paddingTop', 'paddingBottom'],\n paddingInline: ['paddingRight', 'paddingLeft'],\n overflow: ['overflowX', 'overflowY'],\n overscrollBehavior: ['overscrollBehaviorX', 'overscrollBehaviorY'],\n borderBlockStartColor: ['borderTopColor'],\n borderBlockStartStyle: ['borderTopStyle'],\n borderBlockStartWidth: ['borderTopWidth'],\n borderBlockEndColor: ['borderBottomColor'],\n borderBlockEndStyle: ['borderBottomStyle'],\n borderBlockEndWidth: ['borderBottomWidth'],\n //borderInlineStartColor: ['borderLeftColor'],\n //borderInlineStartStyle: ['borderLeftStyle'],\n //borderInlineStartWidth: ['borderLeftWidth'],\n //borderInlineEndColor: ['borderRightColor'],\n //borderInlineEndStyle: ['borderRightStyle'],\n //borderInlineEndWidth: ['borderRightWidth'],\n borderEndStartRadius: ['borderBottomLeftRadius'],\n borderEndEndRadius: ['borderBottomRightRadius'],\n borderStartStartRadius: ['borderTopLeftRadius'],\n borderStartEndRadius: ['borderTopRightRadius'],\n insetBlockEnd: ['bottom'],\n insetBlockStart: ['top'],\n //insetInlineEnd: ['right'],\n //insetInlineStart: ['left'],\n marginBlockStart: ['marginTop'],\n marginBlockEnd: ['marginBottom'],\n //marginInlineStart: ['marginLeft'],\n //marginInlineEnd: ['marginRight'],\n paddingBlockStart: ['paddingTop'],\n paddingBlockEnd: ['paddingBottom']\n //paddingInlineStart: ['marginLeft'],\n //paddingInlineEnd: ['marginRight'],\n};\n\n/**\n * Reducer\n */\n\nvar createReactDOMStyle = (style, isInline) => {\n if (!style) {\n return emptyObject;\n }\n var resolvedStyle = {};\n var _loop = function _loop() {\n var value = style[prop];\n if (\n // Ignore everything with a null value\n value == null) {\n return \"continue\";\n }\n 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 === '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 === 'writingDirection') {\n resolvedStyle.direction = value;\n } else {\n var _value = normalizeValueWithProperty(style[prop], prop);\n var longFormProperties = STYLE_SHORT_FORM_EXPANSIONS[prop];\n if (isInline && prop === 'inset') {\n if (style.insetInline == null) {\n resolvedStyle.left = _value;\n resolvedStyle.right = _value;\n }\n if (style.insetBlock == null) {\n resolvedStyle.top = _value;\n resolvedStyle.bottom = _value;\n }\n } else if (isInline && prop === 'margin') {\n if (style.marginInline == null) {\n resolvedStyle.marginLeft = _value;\n resolvedStyle.marginRight = _value;\n }\n if (style.marginBlock == null) {\n resolvedStyle.marginTop = _value;\n resolvedStyle.marginBottom = _value;\n }\n } else if (isInline && prop === 'padding') {\n if (style.paddingInline == null) {\n resolvedStyle.paddingLeft = _value;\n resolvedStyle.paddingRight = _value;\n }\n if (style.paddingBlock == 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] = _value;\n }\n }\n };\n for (var prop in style) {\n var _ret = _loop();\n if (_ret === \"continue\") continue;\n }\n return resolvedStyle;\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 */\n\nfunction murmurhash2_32_gc(str, seed) {\n var l = str.length,\n h = seed ^ l,\n i = 0,\n k;\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 switch (l) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n }\n h ^= h >>> 13;\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n h ^= h >>> 15;\n return h >>> 0;\n}\nvar hash = str => murmurhash2_32_gc(str, 1).toString(36);\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 */\n\nvar uppercasePattern = /[A-Z]/g;\nvar msPattern = /^ms-/;\nvar cache = {};\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase();\n}\nfunction hyphenateStyleName(name) {\n if (name in cache) {\n return cache[name];\n }\n var hName = name.replace(uppercasePattern, toHyphenLower);\n return cache[name] = msPattern.test(hName) ? '-' + hName : hName;\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 */\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 * 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\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 = 3;\nvar customGroup = {\n borderColor: 2,\n borderRadius: 2,\n borderStyle: 2,\n borderWidth: 2,\n display: 2,\n flex: 2,\n inset: 2,\n margin: 2,\n overflow: 2,\n overscrollBehavior: 2,\n padding: 2,\n insetBlock: 2.1,\n insetInline: 2.1,\n marginInline: 2.1,\n marginBlock: 2.1,\n paddingInline: 2.1,\n paddingBlock: 2.1,\n borderBlockStartColor: 2.2,\n borderBlockStartStyle: 2.2,\n borderBlockStartWidth: 2.2,\n borderBlockEndColor: 2.2,\n borderBlockEndStyle: 2.2,\n borderBlockEndWidth: 2.2,\n borderInlineStartColor: 2.2,\n borderInlineStartStyle: 2.2,\n borderInlineStartWidth: 2.2,\n borderInlineEndColor: 2.2,\n borderInlineEndStyle: 2.2,\n borderInlineEndWidth: 2.2,\n borderEndStartRadius: 2.2,\n borderEndEndRadius: 2.2,\n borderStartStartRadius: 2.2,\n borderStartEndRadius: 2.2,\n insetBlockEnd: 2.2,\n insetBlockStart: 2.2,\n insetInlineEnd: 2.2,\n insetInlineStart: 2.2,\n marginBlockStart: 2.2,\n marginBlockEnd: 2.2,\n marginInlineStart: 2.2,\n marginInlineEnd: 2.2,\n paddingBlockStart: 2.2,\n paddingBlockEnd: 2.2,\n paddingInlineStart: 2.2,\n paddingInlineEnd: 2.2\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';\n\n// Map of LTR property names to their BiDi equivalent.\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};\n\n// Map of I18N property names to their LTR equivalent.\nvar PROPERTIES_I18N = {\n borderStartStartRadius: borderTopLeftRadius,\n borderStartEndRadius: borderTopRightRadius,\n borderEndStartRadius: borderBottomLeftRadius,\n borderEndEndRadius: borderBottomRightRadius,\n borderInlineStartColor: borderLeftColor,\n borderInlineStartStyle: borderLeftStyle,\n borderInlineStartWidth: borderLeftWidth,\n borderInlineEndColor: borderRightColor,\n borderInlineEndStyle: borderRightStyle,\n borderInlineEndWidth: borderRightWidth,\n insetInlineEnd: right,\n insetInlineStart: left,\n marginInlineStart: marginLeft,\n marginInlineEnd: marginRight,\n paddingInlineStart: paddingLeft,\n paddingInlineEnd: paddingRight\n};\nvar PROPERTIES_VALUE = ['clear', 'float', 'textAlign'];\nexport function atomic(style) {\n var compiledStyle = {\n $$css: true\n };\n var compiledRules = [];\n function atomicCompile(srcProp, prop, value) {\n var valueString = stringifyValueWithProperty(value, prop);\n var cacheKey = prop + valueString;\n var cachedResult = cache.get(cacheKey);\n var identifier;\n if (cachedResult != null) {\n identifier = cachedResult[0];\n compiledRules.push(cachedResult[1]);\n } else {\n var v = srcProp !== prop ? cacheKey : valueString;\n identifier = createIdentifier('r', srcProp, v);\n var order = customGroup[srcProp] || 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 return identifier;\n }\n Object.keys(style).sort().forEach(srcProp => {\n var value = style[srcProp];\n if (value != null) {\n var localizeableValue;\n // BiDi flip values\n if (PROPERTIES_VALUE.indexOf(srcProp) > -1) {\n var _left = atomicCompile(srcProp, srcProp, 'left');\n var _right = atomicCompile(srcProp, srcProp, 'right');\n if (value === 'start') {\n localizeableValue = [_left, _right];\n } else if (value === 'end') {\n localizeableValue = [_right, _left];\n }\n }\n // BiDi flip properties\n var propPolyfill = PROPERTIES_I18N[srcProp];\n if (propPolyfill != null) {\n var ltr = atomicCompile(srcProp, propPolyfill, value);\n var rtl = atomicCompile(srcProp, PROPERTIES_FLIP[propPolyfill], value);\n localizeableValue = [ltr, rtl];\n }\n // BiDi flip transitionProperty value\n if (srcProp === 'transitionProperty') {\n var values = Array.isArray(value) ? value : [value];\n var polyfillIndices = [];\n for (var i = 0; i < values.length; i++) {\n var val = values[i];\n if (typeof val === 'string' && PROPERTIES_I18N[val] != null) {\n polyfillIndices.push(i);\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 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 var _ltr = atomicCompile(srcProp, srcProp, ltrPolyfillValues);\n var _rtl = atomicCompile(srcProp, srcProp, rtlPolyfillValues);\n localizeableValue = [_ltr, _rtl];\n }\n });\n }\n }\n if (localizeableValue == null) {\n localizeableValue = atomicCompile(srcProp, srcProp, value);\n } else {\n compiledStyle['$$css$localize'] = true;\n }\n compiledStyle[srcProp] = localizeableValue;\n }\n });\n return [compiledStyle, compiledRules];\n}\n\n/**\n * Compile simple style object to classic CSS rules.\n * No support for 'placeholderTextColor', 'scrollbarWidth', or 'pointerEvents'.\n */\nexport function classic(style, name) {\n var compiledStyle = {\n $$css: true\n };\n var compiledRules = [];\n var animationKeyframes = style.animationKeyframes,\n rest = _objectWithoutPropertiesLoose(style, _excluded);\n var identifier = createIdentifier('css', name, JSON.stringify(style));\n var selector = \".\" + identifier;\n var animationName;\n if (animationKeyframes != null) {\n var _processKeyframesValu = processKeyframesValue(animationKeyframes),\n animationNames = _processKeyframesValu[0],\n keyframesRules = _processKeyframesValu[1];\n animationName = animationNames.join(',');\n compiledRules.push(...keyframesRules);\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/**\n * Compile simple style object to inline DOM styles.\n * No support for 'animationKeyframes', 'placeholderTextColor', 'scrollbarWidth', or 'pointerEvents'.\n */\nexport function inline(originalStyle, isRTL) {\n var style = originalStyle || emptyObject;\n var frozenProps = {};\n var nextStyle = {};\n var _loop = function _loop() {\n var originalValue = style[originalProp];\n var prop = originalProp;\n var value = originalValue;\n if (!Object.prototype.hasOwnProperty.call(style, originalProp) || originalValue == null) {\n return \"continue\";\n }\n\n // BiDi flip values\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 }\n // BiDi flip properties\n var propPolyfill = PROPERTIES_I18N[originalProp];\n if (propPolyfill != null) {\n prop = isRTL ? PROPERTIES_FLIP[propPolyfill] : propPolyfill;\n }\n // BiDi flip transitionProperty value\n if (originalProp === 'transitionProperty') {\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 if (valuePolyfill != null) {\n originalValues[i] = isRTL ? PROPERTIES_FLIP[valuePolyfill] : valuePolyfill;\n value = originalValues.join(' ');\n }\n }\n });\n }\n\n // Create finalized style\n if (!frozenProps[prop]) {\n nextStyle[prop] = value;\n }\n if (prop === originalProp) {\n frozenProps[prop] = true;\n }\n\n // if (PROPERTIES_I18N.hasOwnProperty(originalProp)) {\n // frozenProps[prop] = true;\n //}\n };\n for (var originalProp in style) {\n var _ret = _loop();\n if (_ret === \"continue\") continue;\n }\n return createReactDOMStyle(nextStyle, true);\n}\n\n/**\n * Create a value string that normalizes different input values with a common\n * output.\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/**\n * Create the Atomic CSS rules needed for a given StyleSheet rule.\n * Translates StyleSheet declarations to CSS.\n */\nfunction createAtomicRules(identifier, property, value) {\n var rules = [];\n var selector = \".\" + identifier;\n\n // Handle non-standard properties and object values that require multiple\n // CSS rules to be created.\n switch (property) {\n case 'animationKeyframes':\n {\n var _processKeyframesValu2 = processKeyframesValue(value),\n animationNames = _processKeyframesValu2[0],\n keyframesRules = _processKeyframesValu2[1];\n var block = createDeclarationBlock({\n animationName: animationNames.join(',')\n });\n rules.push(\"\" + selector + block, ...keyframesRules);\n break;\n }\n\n // Equivalent to using '::placeholder'\n case 'placeholderTextColor':\n {\n var _block = createDeclarationBlock({\n color: value,\n opacity: 1\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\n // Polyfill for additional 'pointer-events' values\n // See d13f78622b233a0afc0c7a200c0a0792c8ca9e58\n case 'pointerEvents':\n {\n var finalValue = value;\n if (value === 'auto' || value === 'box-only') {\n finalValue = 'auto!important';\n if (value === 'box-only') {\n var _block2 = createDeclarationBlock({\n pointerEvents: 'none'\n });\n rules.push(selector + \">*\" + _block2);\n }\n } else if (value === 'none' || value === 'box-none') {\n finalValue = 'none!important';\n if (value === 'box-none') {\n var _block3 = createDeclarationBlock({\n pointerEvents: 'auto'\n });\n rules.push(selector + \">*\" + _block3);\n }\n }\n var _block4 = createDeclarationBlock({\n pointerEvents: finalValue\n });\n rules.push(\"\" + selector + _block4);\n break;\n }\n\n // Polyfill for draft spec\n // https://drafts.csswg.org/css-scrollbars-1/\n case 'scrollbarWidth':\n {\n if (value === 'none') {\n rules.push(selector + \"::-webkit-scrollbar{display:none}\");\n }\n var _block5 = createDeclarationBlock({\n scrollbarWidth: value\n });\n rules.push(\"\" + selector + _block5);\n break;\n }\n default:\n {\n var _block6 = createDeclarationBlock({\n [property]: value\n });\n rules.push(\"\" + selector + _block6);\n break;\n }\n }\n return rules;\n}\n\n/**\n * Creates a CSS declaration block from a StyleSheet object.\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);\n // 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 if (Array.isArray(value)) {\n return value.map(v => prop + \":\" + v).join(';');\n } else {\n return prop + \":\" + value;\n }\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/**\n * An identifier is associated with a unique set of styles.\n */\nfunction createIdentifier(prefix, name, key) {\n var hashedString = hash(name + key);\n return process.env.NODE_ENV !== 'production' ? prefix + \"-\" + name + \"-\" + hashedString : prefix + \"-\" + hashedString;\n}\n\n/**\n * Create individual CSS keyframes rules.\n */\nfunction createKeyframes(keyframes) {\n var prefixes = ['-webkit-', ''];\n var identifier = createIdentifier('r', 'animation', JSON.stringify(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/**\n * Create CSS keyframes rules and names from a StyleSheet keyframes object.\n */\nfunction processKeyframesValue(keyframesValue) {\n if (typeof keyframesValue === 'number') {\n throw new Error(\"Invalid CSS keyframes type: \" + typeof keyframesValue);\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 animationNames.push(identifier);\n rules.push(...keyframesRules);\n }\n });\n return [animationNames, rules];\n}","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"writingDirection\"];\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\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();\nvar defaultPreprocessOptions = {\n shadow: true,\n textShadow: true\n};\nfunction customStyleq(styles, options) {\n if (options === void 0) {\n options = {};\n }\n var _options = options,\n writingDirection = _options.writingDirection,\n preprocessOptions = _objectWithoutPropertiesLoose(_options, _excluded);\n var isRTL = writingDirection === 'rtl';\n return styleq.factory({\n transform(style) {\n var compiledStyle = staticStyleMap.get(style);\n if (compiledStyle != null) {\n return localizeStyle(compiledStyle, isRTL);\n }\n return preprocess(style, _objectSpread(_objectSpread({}, defaultPreprocessOptions), preprocessOptions));\n }\n })(styles);\n}\nfunction insertRules(compiledOrderedRules) {\n compiledOrderedRules.forEach(_ref => {\n var rules = _ref[0],\n order = _ref[1];\n if (sheet != null) {\n rules.forEach(rule => {\n sheet.insert(rule, order);\n });\n }\n });\n}\nfunction compileAndInsertAtomic(style) {\n var _atomic = atomic(preprocess(style, defaultPreprocessOptions)),\n compiledStyle = _atomic[0],\n compiledOrderedRules = _atomic[1];\n insertRules(compiledOrderedRules);\n return compiledStyle;\n}\nfunction compileAndInsertReset(style, key) {\n var _classic = classic(style, key),\n compiledStyle = _classic[0],\n compiledOrderedRules = _classic[1];\n insertRules(compiledOrderedRules);\n return compiledStyle;\n}\n\n/* ----- API ----- */\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/**\n * create\n */\nfunction create(styles) {\n Object.keys(styles).forEach(key => {\n var styleObj = styles[key];\n // Only compile at runtime if the style is not already compiled\n if (styleObj != null && styleObj.$$css !== true) {\n var compiledStyles;\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 compiledStyles = compileAndInsertAtomic(styleObj);\n }\n staticStyleMap.set(styleObj, compiledStyles);\n }\n });\n return styles;\n}\n\n/**\n * compose\n */\nfunction compose(style1, style2) {\n if (process.env.NODE_ENV !== 'production') {\n /* eslint-disable prefer-rest-params */\n var len = arguments.length;\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 console.warn('StyleSheet.compose(a, b) is deprecated; use array syntax, i.e., [a,b].');\n }\n return [style1, style2];\n}\n\n/**\n * flatten\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 var flatArray = styles.flat(Infinity);\n var result = {};\n for (var i = 0; i < flatArray.length; i++) {\n var style = flatArray[i];\n if (style != null && typeof style === 'object') {\n // $FlowFixMe\n Object.assign(result, style);\n }\n }\n return result;\n}\n\n/**\n * getSheet\n */\nfunction getSheet() {\n return {\n id: sheet.id,\n textContent: sheet.getTextContent()\n };\n}\n\n/**\n * resolve\n */\n\nfunction StyleSheet(styles, options) {\n if (options === void 0) {\n options = {};\n }\n var isRTL = options.writingDirection === 'rtl';\n var styleProps = customStyleq(styles, options);\n if (Array.isArray(styleProps) && styleProps[1] != null) {\n styleProps[1] = inline(styleProps[1], isRTL);\n }\n return styleProps;\n}\nStyleSheet.absoluteFill = absoluteFill;\nStyleSheet.absoluteFillObject = absoluteFillObject;\nStyleSheet.create = create;\nStyleSheet.compose = compose;\nStyleSheet.flatten = flatten;\nStyleSheet.getSheet = getSheet;\n// `hairlineWidth` is not implemented using screen density as browsers may\n// round sub-pixel values down to `0`, causing the line not to be rendered.\nStyleSheet.hairlineWidth = 1;\nif (canUseDOM && window.__REACT_DEVTOOLS_GLOBAL_HOOK__) {\n window.__REACT_DEVTOOLS_GLOBAL_HOOK__.resolveRNStyle = StyleSheet.flatten;\n}\nvar stylesheet = StyleSheet;\nexport default stylesheet;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport normalizeColor from './compiler/normalizeColor';\nimport normalizeValueWithProperty from './compiler/normalizeValueWithProperty';\nimport { warnOnce } from '../../modules/warnOnce';\nvar emptyObject = {};\n\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 var _ref = shadowOffset || defaultOffset,\n height = _ref.height,\n width = _ref.width;\n var offsetX = normalizeValueWithProperty(width);\n var offsetY = normalizeValueWithProperty(height);\n var blurRadius = normalizeValueWithProperty(shadowRadius || 0);\n var color = normalizeColor(shadowColor || 'black', shadowOpacity);\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 var _ref2 = textShadowOffset || defaultOffset,\n height = _ref2.height,\n width = _ref2.width;\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 if (color && (height !== 0 || width !== 0 || radius !== 0) && offsetX != null && offsetY != null && blurRadius != null) {\n return offsetX + \" \" + offsetY + \" \" + blurRadius + \" \" + color;\n }\n};\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)'\nvar mapTransform = transform => {\n var type = Object.keys(transform)[0];\n var value = transform[type];\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};\nexport var createTransformValue = value => {\n return value.map(mapTransform).join(' ');\n};\nvar PROPERTIES_STANDARD = {\n borderBottomEndRadius: 'borderEndEndRadius',\n borderBottomStartRadius: 'borderEndStartRadius',\n borderTopEndRadius: 'borderStartEndRadius',\n borderTopStartRadius: 'borderStartStartRadius',\n borderEndColor: 'borderInlineEndColor',\n borderEndStyle: 'borderInlineEndStyle',\n borderEndWidth: 'borderInlineEndWidth',\n borderStartColor: 'borderInlineStartColor',\n borderStartStyle: 'borderInlineStartStyle',\n borderStartWidth: 'borderInlineStartWidth',\n end: 'insetInlineEnd',\n marginEnd: 'marginInlineEnd',\n marginHorizontal: 'marginInline',\n marginStart: 'marginInlineStart',\n marginVertical: 'marginBlock',\n paddingEnd: 'paddingInlineEnd',\n paddingHorizontal: 'paddingInline',\n paddingStart: 'paddingInlineStart',\n paddingVertical: 'paddingBlock',\n start: 'insetInlineStart'\n};\nvar ignoredProps = {\n elevation: true,\n overlayColor: true,\n resizeMode: true,\n tintColor: true\n};\n\n/**\n * Preprocess styles\n */\nexport var preprocess = function preprocess(originalStyle, options) {\n if (options === void 0) {\n options = {};\n }\n var style = originalStyle || emptyObject;\n var nextStyle = {};\n\n // Convert shadow styles\n if (options.shadow === true, style.shadowColor != null || style.shadowOffset != null || style.shadowOpacity != null || style.shadowRadius != null) {\n warnOnce('shadowStyles', \"\\\"shadow*\\\" style props are deprecated. Use \\\"boxShadow\\\".\");\n var boxShadowValue = createBoxShadowValue(style);\n if (boxShadowValue != null && nextStyle.boxShadow == null) {\n var boxShadow = style.boxShadow;\n var value = boxShadow ? boxShadow + \", \" + boxShadowValue : boxShadowValue;\n nextStyle.boxShadow = value;\n }\n }\n\n // Convert text shadow styles\n if (options.textShadow === true, style.textShadowColor != null || style.textShadowOffset != null || style.textShadowRadius != null) {\n warnOnce('textShadowStyles', \"\\\"textShadow*\\\" style props are deprecated. Use \\\"textShadow\\\".\");\n var textShadowValue = createTextShadowValue(style);\n if (textShadowValue != null && nextStyle.textShadow == null) {\n var textShadow = style.textShadow;\n var _value = textShadow ? textShadow + \", \" + textShadowValue : textShadowValue;\n nextStyle.textShadow = _value;\n }\n }\n for (var originalProp in style) {\n if (\n // Ignore some React Native styles\n ignoredProps[originalProp] != null || originalProp === 'shadowColor' || originalProp === 'shadowOffset' || originalProp === 'shadowOpacity' || originalProp === 'shadowRadius' || originalProp === 'textShadowColor' || originalProp === 'textShadowOffset' || originalProp === 'textShadowRadius') {\n continue;\n }\n var originalValue = style[originalProp];\n var prop = PROPERTIES_STANDARD[originalProp] || originalProp;\n var _value2 = originalValue;\n if (!Object.prototype.hasOwnProperty.call(style, originalProp) || prop !== originalProp && style[prop] != null) {\n continue;\n }\n if (prop === 'aspectRatio' && typeof _value2 === 'number') {\n nextStyle[prop] = _value2.toString();\n } else if (prop === 'fontVariant') {\n if (Array.isArray(_value2) && _value2.length > 0) {\n warnOnce('fontVariant', '\"fontVariant\" style array value is deprecated. Use space-separated values.');\n _value2 = _value2.join(' ');\n }\n nextStyle[prop] = _value2;\n } else if (prop === 'textAlignVertical') {\n warnOnce('textAlignVertical', '\"textAlignVertical\" style is deprecated. Use \"verticalAlign\".');\n if (style.verticalAlign == null) {\n nextStyle.verticalAlign = _value2 === 'center' ? 'middle' : _value2;\n }\n } else if (prop === 'transform') {\n if (Array.isArray(_value2)) {\n _value2 = createTransformValue(_value2);\n }\n nextStyle.transform = _value2;\n } else {\n nextStyle[prop] = _value2;\n }\n }\n\n // $FlowIgnore\n return nextStyle;\n};\nexport default preprocess;","/**\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 */\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';\nimport { warnOnce } from '../../modules/warnOnce';\n\n/**\n * Determines whether a 'selection' prop differs from a node's existing\n * selection state.\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/**\n * Certain input types do no support 'selectSelectionRange' and will throw an\n * error.\n */\nvar setSelection = (node, selection) => {\n if (isSelectionStale(node, selection)) {\n var start = selection.start,\n end = selection.end;\n try {\n node.setSelectionRange(start, end || start);\n } catch (e) {}\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});\nvar pickProps = props => pick(props, forwardPropsList);\n\n// If an Input Method Editor is processing key input, the 'keyCode' is 229.\n// https://www.w3.org/TR/uievents/#determine-keydown-keyup-keyCode\nfunction isEventComposing(nativeEvent) {\n return nativeEvent.isComposing || nativeEvent.keyCode === 229;\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 caretHidden = props.caretHidden,\n clearTextOnFocus = props.clearTextOnFocus,\n dir = props.dir,\n editable = props.editable,\n enterKeyHint = props.enterKeyHint,\n inputMode = props.inputMode,\n keyboardType = props.keyboardType,\n _props$multiline = props.multiline,\n multiline = _props$multiline === void 0 ? false : _props$multiline,\n numberOfLines = 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 _props$readOnly = props.readOnly,\n readOnly = _props$readOnly === void 0 ? false : _props$readOnly,\n returnKeyType = props.returnKeyType,\n rows = props.rows,\n _props$secureTextEntr = props.secureTextEntry,\n secureTextEntry = _props$secureTextEntr === void 0 ? false : _props$secureTextEntr,\n selection = props.selection,\n selectTextOnFocus = props.selectTextOnFocus,\n showSoftInputOnFocus = props.showSoftInputOnFocus,\n spellCheck = props.spellCheck;\n var type;\n var _inputMode;\n if (inputMode != null) {\n _inputMode = inputMode;\n if (inputMode === 'email') {\n type = 'email';\n } else if (inputMode === 'tel') {\n type = 'tel';\n } else if (inputMode === 'search') {\n type = 'search';\n } else if (inputMode === 'url') {\n type = 'url';\n } else {\n type = 'text';\n }\n } else if (keyboardType != null) {\n warnOnce('keyboardType', 'keyboardType is deprecated. Use inputMode.');\n switch (keyboardType) {\n case 'email-address':\n type = 'email';\n break;\n case 'number-pad':\n case 'numeric':\n _inputMode = 'numeric';\n break;\n case 'decimal-pad':\n _inputMode = 'decimal';\n break;\n case 'phone-pad':\n type = 'tel';\n break;\n case 'search':\n case 'web-search':\n type = 'search';\n break;\n case 'url':\n type = 'url';\n break;\n default:\n type = 'text';\n }\n }\n if (secureTextEntry) {\n type = 'password';\n }\n var dimensions = React.useRef({\n height: null,\n width: null\n });\n var hostRef = React.useRef(null);\n var prevSelection = React.useRef(null);\n var prevSecureTextEntry = React.useRef(false);\n React.useEffect(() => {\n if (hostRef.current && prevSelection.current) {\n setSelection(hostRef.current, prevSelection.current);\n }\n prevSecureTextEntry.current = secureTextEntry;\n }, [secureTextEntry]);\n var handleContentSizeChange = React.useCallback(hostNode => {\n if (multiline && onContentSizeChange && hostNode != null) {\n var newHeight = hostNode.scrollHeight;\n var newWidth = hostNode.scrollWidth;\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 hostNode.isFocused = function () {\n return hostNode != null && TextInputState.currentlyFocusedField() === hostNode;\n };\n handleContentSizeChange(hostNode);\n }\n }, [handleContentSizeChange]);\n function handleBlur(e) {\n TextInputState._currentlyFocusedNode = null;\n if (onBlur) {\n e.nativeEvent.text = e.target.value;\n onBlur(e);\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 if (onChange) {\n onChange(e);\n }\n if (onChangeText) {\n onChangeText(text);\n }\n }\n function handleFocus(e) {\n var hostNode = e.target;\n if (onFocus) {\n e.nativeEvent.text = hostNode.value;\n onFocus(e);\n }\n if (hostNode != null) {\n TextInputState._currentlyFocusedNode = hostNode;\n if (clearTextOnFocus) {\n hostNode.value = '';\n }\n if (selectTextOnFocus) {\n // Safari requires selection to occur in a setTimeout\n if (focusTimeout != null) {\n clearTimeout(focusTimeout);\n }\n focusTimeout = setTimeout(() => {\n if (hostNode != null) {\n hostNode.select();\n }\n }, 0);\n }\n }\n }\n function handleKeyDown(e) {\n var hostNode = e.target;\n // Prevent key events bubbling (see #612)\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 if (onKeyPress) {\n onKeyPress(e);\n }\n if (e.key === 'Enter' && !e.shiftKey &&\n // 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 if (shouldBlurOnSubmit && hostNode != null) {\n setTimeout(() => hostNode.blur(), 0);\n }\n }\n }\n function handleSelectionChange(e) {\n try {\n var _e$target = e.target,\n selectionStart = _e$target.selectionStart,\n selectionEnd = _e$target.selectionEnd;\n var _selection = {\n start: selectionStart,\n end: selectionEnd\n };\n if (onSelectionChange) {\n e.nativeEvent.selection = _selection;\n e.nativeEvent.text = e.target.value;\n onSelectionChange(e);\n }\n if (prevSecureTextEntry.current === secureTextEntry) {\n prevSelection.current = _selection;\n }\n } catch (e) {}\n }\n useLayoutEffect(() => {\n var node = hostRef.current;\n if (node != null && selection != null) {\n setSelection(node, selection);\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 var _useLocaleContext = useLocaleContext(),\n contextDirection = _useLocaleContext.direction;\n var supportedProps = pickProps(props);\n supportedProps.autoCapitalize = autoCapitalize;\n supportedProps.autoComplete = autoComplete || autoCompleteType || 'on';\n supportedProps.autoCorrect = autoCorrect ? 'on' : 'off';\n // 'auto' by default allows browsers to infer writing direction\n supportedProps.dir = dir !== undefined ? dir : 'auto';\n if (returnKeyType != null) {\n warnOnce('returnKeyType', 'returnKeyType is deprecated. Use enterKeyHint.');\n }\n supportedProps.enterKeyHint = 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 if (editable != null) {\n warnOnce('editable', 'editable is deprecated. Use readOnly.');\n }\n supportedProps.readOnly = readOnly === true || editable === false;\n if (numberOfLines != null) {\n warnOnce('numberOfLines', 'TextInput numberOfLines is deprecated. Use rows.');\n }\n supportedProps.rows = multiline ? rows != null ? rows : numberOfLines : 1;\n supportedProps.spellCheck = spellCheck != null ? spellCheck : autoCorrect;\n supportedProps.style = [{\n '--placeholderTextColor': placeholderTextColor\n }, styles.textinput$raw, styles.placeholder, props.style, caretHidden && styles.caretHidden];\n supportedProps.type = multiline ? undefined : type;\n supportedProps.virtualkeyboardpolicy = showSoftInputOnFocus === false ? 'manual' : 'auto';\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';\n// $FlowFixMe\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 caretHidden: {\n caretColor: 'transparent'\n }\n});\nexport default TextInput;","/**\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\nimport { createContext } from 'react';\nvar TextAncestorContext = /*#__PURE__*/createContext(false);\nexport default TextAncestorContext;","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 * 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 */\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';\nimport { warnOnce } from '../../modules/warnOnce';\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});\nvar pickProps = props => pick(props, forwardPropsList);\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 if (selectable != null) {\n warnOnce('selectable', 'selectable prop is deprecated. Use styles.userSelect.');\n }\n var hasTextAncestor = React.useContext(TextAncestorContext);\n var hostRef = React.useRef(null);\n var _useLocaleContext = useLocaleContext(),\n contextDirection = _useLocaleContext.direction;\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;\n // 'auto' by default allows browsers to infer writing direction (root elements only)\n if (!hasTextAncestor) {\n supportedProps.dir = componentDirection != null ? componentDirection : 'auto';\n }\n if (onClick || onPress) {\n supportedProps.onClick = handleClick;\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 if (props.href != null) {\n component = 'a';\n if (hrefAttrs != null) {\n var download = hrefAttrs.download,\n rel = hrefAttrs.rel,\n target = hrefAttrs.target;\n if (download != null) {\n supportedProps.download = download;\n }\n if (rel != null) {\n supportedProps.rel = rel;\n }\n if (typeof target === 'string') {\n supportedProps.target = target.charAt(0) !== '_' ? '_' + target : target;\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 position: 'relative',\n textAlign: 'start',\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 textAlign: '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;","/**\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'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';\nimport { warnOnce } from '../../modules/warnOnce';\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 warnOnce('TouchableOpacity', 'TouchableOpacity is deprecated. Please use Pressable.');\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 var hostRef = useRef(null);\n var setRef = useMergeRefs(forwardedRef, hostRef);\n var _useState = useState('0s'),\n duration = _useState[0],\n setDuration = _useState[1];\n var _useState2 = useState(null),\n opacityOverride = _useState2[0],\n setOpacityOverride = _useState2[1];\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 onPressStart(event) {\n var isGrant = event.dispatchConfig != null ? event.dispatchConfig.registrationName === 'onResponderGrant' : event.type === 'keydown';\n setOpacityActive(isGrant ? 0 : 150);\n if (onPressIn != null) {\n onPressIn(event);\n }\n },\n onPressEnd(event) {\n setOpacityInactive(250);\n if (onPressOut != null) {\n onPressOut(event);\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 ? 'box-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}\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 */\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/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\nvar prefixes = ['ms', 'Moz', 'O', 'Webkit'];\nvar prefixKey = (prefix, key) => {\n return prefix + key.charAt(0).toUpperCase() + key.substring(1);\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 */\n\nimport isUnitlessNumber from '../unitlessNumbers';\n\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 */\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\n var isEmpty = value == null || typeof value === 'boolean' || value === '';\n if (isEmpty) {\n return '';\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}\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 */\n\nimport dangerousStyleValue from './dangerousStyleValue';\n\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 */\nfunction setValueForStyles(node, styles) {\n var style = node.style;\n for (var styleName in styles) {\n if (!styles.hasOwnProperty(styleName)) {\n continue;\n }\n var isCustomProperty = styleName.indexOf('--') === 0;\n var styleValue = dangerousStyleValue(styleName, styles[styleName], isCustomProperty);\n if (styleName === 'float') {\n styleName = 'cssFloat';\n }\n if (isCustomProperty) {\n style.setProperty(styleName, styleValue);\n } else {\n style[styleName] = styleValue;\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 */\n\nimport getBoundingClientRect from '../../modules/getBoundingClientRect';\nimport setValueForStyles from '../../modules/setValueForStyles';\nvar getRect = node => {\n var height = node.offsetHeight;\n var width = node.offsetWidth;\n var left = node.offsetLeft;\n var top = node.offsetTop;\n node = node.offsetParent;\n while (node && node.nodeType === 1 /* Node.ELEMENT_NODE */) {\n left += node.offsetLeft + node.clientLeft - node.scrollLeft;\n top += node.offsetTop + node.clientTop - node.scrollTop;\n node = node.offsetParent;\n }\n top -= window.scrollY;\n left -= window.scrollX;\n return {\n width,\n height,\n top,\n left\n };\n};\nvar measureLayout = (node, relativeToNativeNode, callback) => {\n var relativeNode = relativeToNativeNode || node && node.parentNode;\n if (node && relativeNode) {\n setTimeout(() => {\n if (node.isConnected && relativeNode.isConnected) {\n var relativeRect = getRect(relativeNode);\n var _getRect = getRect(node),\n height = _getRect.height,\n left = _getRect.left,\n top = _getRect.top,\n width = _getRect.width;\n var x = left - relativeRect.left;\n var y = top - relativeRect.top;\n callback(x, y, width, height, left, top);\n }\n }, 0);\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 focus(node) {\n try {\n var name = node.nodeName;\n // 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 if (node.getAttribute('tabIndex') == null && node.isContentEditable !== true && elementsToIgnore[name] == null) {\n node.setAttribute('tabIndex', '-1');\n }\n node.focus();\n } catch (err) {}\n },\n measure(node, callback) {\n measureLayout(node, null, callback);\n },\n measureInWindow(node, callback) {\n if (node) {\n setTimeout(() => {\n var _getBoundingClientRec = getBoundingClientRect(node),\n height = _getBoundingClientRec.height,\n left = _getBoundingClientRec.left,\n top = _getBoundingClientRec.top,\n width = _getBoundingClientRec.width;\n callback(left, top, width, height);\n }, 0);\n }\n },\n measureLayout(node, relativeToNativeNode, onFail, onSuccess) {\n measureLayout(node, relativeToNativeNode, onSuccess);\n },\n updateView(node, props) {\n for (var prop in props) {\n if (!Object.prototype.hasOwnProperty.call(props, prop)) {\n continue;\n }\n var value = props[prop];\n switch (prop) {\n case 'style':\n {\n setValueForStyles(node, value);\n break;\n }\n case 'class':\n case 'className':\n {\n node.setAttribute('class', value);\n break;\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 default:\n node.setAttribute(prop, value);\n }\n }\n },\n configureNextLayoutAnimation(config, onAnimationDidEnd) {\n onAnimationDidEnd();\n },\n // mocks\n setLayoutAnimationEnabledExperimental() {}\n};\nexport default UIManager;","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 * 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 */\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.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});\nvar pickProps = props => pick(props, forwardPropsList);\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 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 var hasTextAncestor = React.useContext(TextAncestorContext);\n var hostRef = React.useRef(null);\n var _useLocaleContext = useLocaleContext(),\n contextDirection = _useLocaleContext.direction;\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 if (props.href != null) {\n component = 'a';\n if (hrefAttrs != null) {\n var download = hrefAttrs.download,\n rel = hrefAttrs.rel,\n target = hrefAttrs.target;\n if (download != null) {\n supportedProps.download = download;\n }\n if (rel != null) {\n supportedProps.rel = rel;\n }\n if (typeof target === 'string') {\n supportedProps.target = target.charAt(0) !== '_' ? '_' + target : target;\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;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"aria-activedescendant\", \"accessibilityActiveDescendant\", \"aria-atomic\", \"accessibilityAtomic\", \"aria-autocomplete\", \"accessibilityAutoComplete\", \"aria-busy\", \"accessibilityBusy\", \"aria-checked\", \"accessibilityChecked\", \"aria-colcount\", \"accessibilityColumnCount\", \"aria-colindex\", \"accessibilityColumnIndex\", \"aria-colspan\", \"accessibilityColumnSpan\", \"aria-controls\", \"accessibilityControls\", \"aria-current\", \"accessibilityCurrent\", \"aria-describedby\", \"accessibilityDescribedBy\", \"aria-details\", \"accessibilityDetails\", \"aria-disabled\", \"accessibilityDisabled\", \"aria-errormessage\", \"accessibilityErrorMessage\", \"aria-expanded\", \"accessibilityExpanded\", \"aria-flowto\", \"accessibilityFlowTo\", \"aria-haspopup\", \"accessibilityHasPopup\", \"aria-hidden\", \"accessibilityHidden\", \"aria-invalid\", \"accessibilityInvalid\", \"aria-keyshortcuts\", \"accessibilityKeyShortcuts\", \"aria-label\", \"accessibilityLabel\", \"aria-labelledby\", \"accessibilityLabelledBy\", \"aria-level\", \"accessibilityLevel\", \"aria-live\", \"accessibilityLiveRegion\", \"aria-modal\", \"accessibilityModal\", \"aria-multiline\", \"accessibilityMultiline\", \"aria-multiselectable\", \"accessibilityMultiSelectable\", \"aria-orientation\", \"accessibilityOrientation\", \"aria-owns\", \"accessibilityOwns\", \"aria-placeholder\", \"accessibilityPlaceholder\", \"aria-posinset\", \"accessibilityPosInSet\", \"aria-pressed\", \"accessibilityPressed\", \"aria-readonly\", \"accessibilityReadOnly\", \"aria-required\", \"accessibilityRequired\", \"role\", \"accessibilityRole\", \"aria-roledescription\", \"accessibilityRoleDescription\", \"aria-rowcount\", \"accessibilityRowCount\", \"aria-rowindex\", \"accessibilityRowIndex\", \"aria-rowspan\", \"accessibilityRowSpan\", \"aria-selected\", \"accessibilitySelected\", \"aria-setsize\", \"accessibilitySetSize\", \"aria-sort\", \"accessibilitySort\", \"aria-valuemax\", \"accessibilityValueMax\", \"aria-valuemin\", \"accessibilityValueMin\", \"aria-valuenow\", \"accessibilityValueNow\", \"aria-valuetext\", \"accessibilityValueText\", \"dataSet\", \"focusable\", \"id\", \"nativeID\", \"pointerEvents\", \"style\", \"tabIndex\", \"testID\"];\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\nimport AccessibilityUtil from '../AccessibilityUtil';\nimport StyleSheet from '../../exports/StyleSheet';\nimport { warnOnce } from '../warnOnce';\nvar emptyObject = {};\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\nvar uppercasePattern = /[A-Z]/g;\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase();\n}\nfunction hyphenateString(str) {\n return str.replace(uppercasePattern, toHyphenLower);\n}\nfunction processIDRefList(idRefList) {\n return isArray(idRefList) ? idRefList.join(' ') : idRefList;\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});\nvar createDOMProps = (elementType, props, options) => {\n if (!props) {\n props = emptyObject;\n }\n var _props = props,\n ariaActiveDescendant = _props['aria-activedescendant'],\n accessibilityActiveDescendant = _props.accessibilityActiveDescendant,\n ariaAtomic = _props['aria-atomic'],\n accessibilityAtomic = _props.accessibilityAtomic,\n ariaAutoComplete = _props['aria-autocomplete'],\n accessibilityAutoComplete = _props.accessibilityAutoComplete,\n ariaBusy = _props['aria-busy'],\n accessibilityBusy = _props.accessibilityBusy,\n ariaChecked = _props['aria-checked'],\n accessibilityChecked = _props.accessibilityChecked,\n ariaColumnCount = _props['aria-colcount'],\n accessibilityColumnCount = _props.accessibilityColumnCount,\n ariaColumnIndex = _props['aria-colindex'],\n accessibilityColumnIndex = _props.accessibilityColumnIndex,\n ariaColumnSpan = _props['aria-colspan'],\n accessibilityColumnSpan = _props.accessibilityColumnSpan,\n ariaControls = _props['aria-controls'],\n accessibilityControls = _props.accessibilityControls,\n ariaCurrent = _props['aria-current'],\n accessibilityCurrent = _props.accessibilityCurrent,\n ariaDescribedBy = _props['aria-describedby'],\n accessibilityDescribedBy = _props.accessibilityDescribedBy,\n ariaDetails = _props['aria-details'],\n accessibilityDetails = _props.accessibilityDetails,\n ariaDisabled = _props['aria-disabled'],\n accessibilityDisabled = _props.accessibilityDisabled,\n ariaErrorMessage = _props['aria-errormessage'],\n accessibilityErrorMessage = _props.accessibilityErrorMessage,\n ariaExpanded = _props['aria-expanded'],\n accessibilityExpanded = _props.accessibilityExpanded,\n ariaFlowTo = _props['aria-flowto'],\n accessibilityFlowTo = _props.accessibilityFlowTo,\n ariaHasPopup = _props['aria-haspopup'],\n accessibilityHasPopup = _props.accessibilityHasPopup,\n ariaHidden = _props['aria-hidden'],\n accessibilityHidden = _props.accessibilityHidden,\n ariaInvalid = _props['aria-invalid'],\n accessibilityInvalid = _props.accessibilityInvalid,\n ariaKeyShortcuts = _props['aria-keyshortcuts'],\n accessibilityKeyShortcuts = _props.accessibilityKeyShortcuts,\n ariaLabel = _props['aria-label'],\n accessibilityLabel = _props.accessibilityLabel,\n ariaLabelledBy = _props['aria-labelledby'],\n accessibilityLabelledBy = _props.accessibilityLabelledBy,\n ariaLevel = _props['aria-level'],\n accessibilityLevel = _props.accessibilityLevel,\n ariaLive = _props['aria-live'],\n accessibilityLiveRegion = _props.accessibilityLiveRegion,\n ariaModal = _props['aria-modal'],\n accessibilityModal = _props.accessibilityModal,\n ariaMultiline = _props['aria-multiline'],\n accessibilityMultiline = _props.accessibilityMultiline,\n ariaMultiSelectable = _props['aria-multiselectable'],\n accessibilityMultiSelectable = _props.accessibilityMultiSelectable,\n ariaOrientation = _props['aria-orientation'],\n accessibilityOrientation = _props.accessibilityOrientation,\n ariaOwns = _props['aria-owns'],\n accessibilityOwns = _props.accessibilityOwns,\n ariaPlaceholder = _props['aria-placeholder'],\n accessibilityPlaceholder = _props.accessibilityPlaceholder,\n ariaPosInSet = _props['aria-posinset'],\n accessibilityPosInSet = _props.accessibilityPosInSet,\n ariaPressed = _props['aria-pressed'],\n accessibilityPressed = _props.accessibilityPressed,\n ariaReadOnly = _props['aria-readonly'],\n accessibilityReadOnly = _props.accessibilityReadOnly,\n ariaRequired = _props['aria-required'],\n accessibilityRequired = _props.accessibilityRequired,\n ariaRole = _props.role,\n accessibilityRole = _props.accessibilityRole,\n ariaRoleDescription = _props['aria-roledescription'],\n accessibilityRoleDescription = _props.accessibilityRoleDescription,\n ariaRowCount = _props['aria-rowcount'],\n accessibilityRowCount = _props.accessibilityRowCount,\n ariaRowIndex = _props['aria-rowindex'],\n accessibilityRowIndex = _props.accessibilityRowIndex,\n ariaRowSpan = _props['aria-rowspan'],\n accessibilityRowSpan = _props.accessibilityRowSpan,\n ariaSelected = _props['aria-selected'],\n accessibilitySelected = _props.accessibilitySelected,\n ariaSetSize = _props['aria-setsize'],\n accessibilitySetSize = _props.accessibilitySetSize,\n ariaSort = _props['aria-sort'],\n accessibilitySort = _props.accessibilitySort,\n ariaValueMax = _props['aria-valuemax'],\n accessibilityValueMax = _props.accessibilityValueMax,\n ariaValueMin = _props['aria-valuemin'],\n accessibilityValueMin = _props.accessibilityValueMin,\n ariaValueNow = _props['aria-valuenow'],\n accessibilityValueNow = _props.accessibilityValueNow,\n ariaValueText = _props['aria-valuetext'],\n accessibilityValueText = _props.accessibilityValueText,\n dataSet = _props.dataSet,\n focusable = _props.focusable,\n id = _props.id,\n nativeID = _props.nativeID,\n pointerEvents = _props.pointerEvents,\n style = _props.style,\n tabIndex = _props.tabIndex,\n testID = _props.testID,\n domProps = _objectWithoutPropertiesLoose(_props, _excluded);\n if (accessibilityDisabled != null) {\n warnOnce('accessibilityDisabled', \"accessibilityDisabled is deprecated.\");\n }\n var disabled = ariaDisabled || accessibilityDisabled;\n var role = AccessibilityUtil.propsToAriaRole(props);\n\n // ACCESSIBILITY\n if (accessibilityActiveDescendant != null) {\n warnOnce('accessibilityActiveDescendant', \"accessibilityActiveDescendant is deprecated. Use aria-activedescendant.\");\n }\n var _ariaActiveDescendant = ariaActiveDescendant != null ? ariaActiveDescendant : accessibilityActiveDescendant;\n if (_ariaActiveDescendant != null) {\n domProps['aria-activedescendant'] = _ariaActiveDescendant;\n }\n if (accessibilityAtomic != null) {\n warnOnce('accessibilityAtomic', \"accessibilityAtomic is deprecated. Use aria-atomic.\");\n }\n var _ariaAtomic = ariaAtomic != null ? ariaActiveDescendant : accessibilityAtomic;\n if (_ariaAtomic != null) {\n domProps['aria-atomic'] = _ariaAtomic;\n }\n if (accessibilityAutoComplete != null) {\n warnOnce('accessibilityAutoComplete', \"accessibilityAutoComplete is deprecated. Use aria-autocomplete.\");\n }\n var _ariaAutoComplete = ariaAutoComplete != null ? ariaAutoComplete : accessibilityAutoComplete;\n if (_ariaAutoComplete != null) {\n domProps['aria-autocomplete'] = _ariaAutoComplete;\n }\n if (accessibilityBusy != null) {\n warnOnce('accessibilityBusy', \"accessibilityBusy is deprecated. Use aria-busy.\");\n }\n var _ariaBusy = ariaBusy != null ? ariaBusy : accessibilityBusy;\n if (_ariaBusy != null) {\n domProps['aria-busy'] = _ariaBusy;\n }\n if (accessibilityChecked != null) {\n warnOnce('accessibilityChecked', \"accessibilityChecked is deprecated. Use aria-checked.\");\n }\n var _ariaChecked = ariaChecked != null ? ariaChecked : accessibilityChecked;\n if (_ariaChecked != null) {\n domProps['aria-checked'] = _ariaChecked;\n }\n if (accessibilityColumnCount != null) {\n warnOnce('accessibilityColumnCount', \"accessibilityColumnCount is deprecated. Use aria-colcount.\");\n }\n var _ariaColumnCount = ariaColumnCount != null ? ariaColumnCount : accessibilityColumnCount;\n if (_ariaColumnCount != null) {\n domProps['aria-colcount'] = _ariaColumnCount;\n }\n if (accessibilityColumnIndex != null) {\n warnOnce('accessibilityColumnIndex', \"accessibilityColumnIndex is deprecated. Use aria-colindex.\");\n }\n var _ariaColumnIndex = ariaColumnIndex != null ? ariaColumnIndex : accessibilityColumnIndex;\n if (_ariaColumnIndex != null) {\n domProps['aria-colindex'] = _ariaColumnIndex;\n }\n if (accessibilityColumnSpan != null) {\n warnOnce('accessibilityColumnSpan', \"accessibilityColumnSpan is deprecated. Use aria-colspan.\");\n }\n var _ariaColumnSpan = ariaColumnSpan != null ? ariaColumnSpan : accessibilityColumnSpan;\n if (_ariaColumnSpan != null) {\n domProps['aria-colspan'] = _ariaColumnSpan;\n }\n if (accessibilityControls != null) {\n warnOnce('accessibilityControls', \"accessibilityControls is deprecated. Use aria-controls.\");\n }\n var _ariaControls = ariaControls != null ? ariaControls : accessibilityControls;\n if (_ariaControls != null) {\n domProps['aria-controls'] = processIDRefList(_ariaControls);\n }\n if (accessibilityCurrent != null) {\n warnOnce('accessibilityCurrent', \"accessibilityCurrent is deprecated. Use aria-current.\");\n }\n var _ariaCurrent = ariaCurrent != null ? ariaCurrent : accessibilityCurrent;\n if (_ariaCurrent != null) {\n domProps['aria-current'] = _ariaCurrent;\n }\n if (accessibilityDescribedBy != null) {\n warnOnce('accessibilityDescribedBy', \"accessibilityDescribedBy is deprecated. Use aria-describedby.\");\n }\n var _ariaDescribedBy = ariaDescribedBy != null ? ariaDescribedBy : accessibilityDescribedBy;\n if (_ariaDescribedBy != null) {\n domProps['aria-describedby'] = processIDRefList(_ariaDescribedBy);\n }\n if (accessibilityDetails != null) {\n warnOnce('accessibilityDetails', \"accessibilityDetails is deprecated. Use aria-details.\");\n }\n var _ariaDetails = ariaDetails != null ? ariaDetails : accessibilityDetails;\n if (_ariaDetails != null) {\n domProps['aria-details'] = _ariaDetails;\n }\n if (disabled === true) {\n domProps['aria-disabled'] = true;\n // Enhance with native semantics\n if (elementType === 'button' || elementType === 'form' || elementType === 'input' || elementType === 'select' || elementType === 'textarea') {\n domProps.disabled = true;\n }\n }\n if (accessibilityErrorMessage != null) {\n warnOnce('accessibilityErrorMessage', \"accessibilityErrorMessage is deprecated. Use aria-errormessage.\");\n }\n var _ariaErrorMessage = ariaErrorMessage != null ? ariaErrorMessage : accessibilityErrorMessage;\n if (_ariaErrorMessage != null) {\n domProps['aria-errormessage'] = _ariaErrorMessage;\n }\n if (accessibilityExpanded != null) {\n warnOnce('accessibilityExpanded', \"accessibilityExpanded is deprecated. Use aria-expanded.\");\n }\n var _ariaExpanded = ariaExpanded != null ? ariaExpanded : accessibilityExpanded;\n if (_ariaExpanded != null) {\n domProps['aria-expanded'] = _ariaExpanded;\n }\n if (accessibilityFlowTo != null) {\n warnOnce('accessibilityFlowTo', \"accessibilityFlowTo is deprecated. Use aria-flowto.\");\n }\n var _ariaFlowTo = ariaFlowTo != null ? ariaFlowTo : accessibilityFlowTo;\n if (_ariaFlowTo != null) {\n domProps['aria-flowto'] = processIDRefList(_ariaFlowTo);\n }\n if (accessibilityHasPopup != null) {\n warnOnce('accessibilityHasPopup', \"accessibilityHasPopup is deprecated. Use aria-haspopup.\");\n }\n var _ariaHasPopup = ariaHasPopup != null ? ariaHasPopup : accessibilityHasPopup;\n if (_ariaHasPopup != null) {\n domProps['aria-haspopup'] = _ariaHasPopup;\n }\n if (accessibilityHidden != null) {\n warnOnce('accessibilityHidden', \"accessibilityHidden is deprecated. Use aria-hidden.\");\n }\n var _ariaHidden = ariaHidden != null ? ariaHidden : accessibilityHidden;\n if (_ariaHidden === true) {\n domProps['aria-hidden'] = _ariaHidden;\n }\n if (accessibilityInvalid != null) {\n warnOnce('accessibilityInvalid', \"accessibilityInvalid is deprecated. Use aria-invalid.\");\n }\n var _ariaInvalid = ariaInvalid != null ? ariaInvalid : accessibilityInvalid;\n if (_ariaInvalid != null) {\n domProps['aria-invalid'] = _ariaInvalid;\n }\n if (accessibilityKeyShortcuts != null) {\n warnOnce('accessibilityKeyShortcuts', \"accessibilityKeyShortcuts is deprecated. Use aria-keyshortcuts.\");\n }\n var _ariaKeyShortcuts = ariaKeyShortcuts != null ? ariaKeyShortcuts : accessibilityKeyShortcuts;\n if (_ariaKeyShortcuts != null) {\n domProps['aria-keyshortcuts'] = processIDRefList(_ariaKeyShortcuts);\n }\n if (accessibilityLabel != null) {\n warnOnce('accessibilityLabel', \"accessibilityLabel is deprecated. Use aria-label.\");\n }\n var _ariaLabel = ariaLabel != null ? ariaLabel : accessibilityLabel;\n if (_ariaLabel != null) {\n domProps['aria-label'] = _ariaLabel;\n }\n if (accessibilityLabelledBy != null) {\n warnOnce('accessibilityLabelledBy', \"accessibilityLabelledBy is deprecated. Use aria-labelledby.\");\n }\n var _ariaLabelledBy = ariaLabelledBy != null ? ariaLabelledBy : accessibilityLabelledBy;\n if (_ariaLabelledBy != null) {\n domProps['aria-labelledby'] = processIDRefList(_ariaLabelledBy);\n }\n if (accessibilityLevel != null) {\n warnOnce('accessibilityLevel', \"accessibilityLevel is deprecated. Use aria-level.\");\n }\n var _ariaLevel = ariaLevel != null ? ariaLevel : accessibilityLevel;\n if (_ariaLevel != null) {\n domProps['aria-level'] = _ariaLevel;\n }\n if (accessibilityLiveRegion != null) {\n warnOnce('accessibilityLiveRegion', \"accessibilityLiveRegion is deprecated. Use aria-live.\");\n }\n var _ariaLive = ariaLive != null ? ariaLive : accessibilityLiveRegion;\n if (_ariaLive != null) {\n domProps['aria-live'] = _ariaLive === 'none' ? 'off' : _ariaLive;\n }\n if (accessibilityModal != null) {\n warnOnce('accessibilityModal', \"accessibilityModal is deprecated. Use aria-modal.\");\n }\n var _ariaModal = ariaModal != null ? ariaModal : accessibilityModal;\n if (_ariaModal != null) {\n domProps['aria-modal'] = _ariaModal;\n }\n if (accessibilityMultiline != null) {\n warnOnce('accessibilityMultiline', \"accessibilityMultiline is deprecated. Use aria-multiline.\");\n }\n var _ariaMultiline = ariaMultiline != null ? ariaMultiline : accessibilityMultiline;\n if (_ariaMultiline != null) {\n domProps['aria-multiline'] = _ariaMultiline;\n }\n if (accessibilityMultiSelectable != null) {\n warnOnce('accessibilityMultiSelectable', \"accessibilityMultiSelectable is deprecated. Use aria-multiselectable.\");\n }\n var _ariaMultiSelectable = ariaMultiSelectable != null ? ariaMultiSelectable : accessibilityMultiSelectable;\n if (_ariaMultiSelectable != null) {\n domProps['aria-multiselectable'] = _ariaMultiSelectable;\n }\n if (accessibilityOrientation != null) {\n warnOnce('accessibilityOrientation', \"accessibilityOrientation is deprecated. Use aria-orientation.\");\n }\n var _ariaOrientation = ariaOrientation != null ? ariaOrientation : accessibilityOrientation;\n if (_ariaOrientation != null) {\n domProps['aria-orientation'] = _ariaOrientation;\n }\n if (accessibilityOwns != null) {\n warnOnce('accessibilityOwns', \"accessibilityOwns is deprecated. Use aria-owns.\");\n }\n var _ariaOwns = ariaOwns != null ? ariaOwns : accessibilityOwns;\n if (_ariaOwns != null) {\n domProps['aria-owns'] = processIDRefList(_ariaOwns);\n }\n if (accessibilityPlaceholder != null) {\n warnOnce('accessibilityPlaceholder', \"accessibilityPlaceholder is deprecated. Use aria-placeholder.\");\n }\n var _ariaPlaceholder = ariaPlaceholder != null ? ariaPlaceholder : accessibilityPlaceholder;\n if (_ariaPlaceholder != null) {\n domProps['aria-placeholder'] = _ariaPlaceholder;\n }\n if (accessibilityPosInSet != null) {\n warnOnce('accessibilityPosInSet', \"accessibilityPosInSet is deprecated. Use aria-posinset.\");\n }\n var _ariaPosInSet = ariaPosInSet != null ? ariaPosInSet : accessibilityPosInSet;\n if (_ariaPosInSet != null) {\n domProps['aria-posinset'] = _ariaPosInSet;\n }\n if (accessibilityPressed != null) {\n warnOnce('accessibilityPressed', \"accessibilityPressed is deprecated. Use aria-pressed.\");\n }\n var _ariaPressed = ariaPressed != null ? ariaPressed : accessibilityPressed;\n if (_ariaPressed != null) {\n domProps['aria-pressed'] = _ariaPressed;\n }\n if (accessibilityReadOnly != null) {\n warnOnce('accessibilityReadOnly', \"accessibilityReadOnly is deprecated. Use aria-readonly.\");\n }\n var _ariaReadOnly = ariaReadOnly != null ? ariaReadOnly : accessibilityReadOnly;\n if (_ariaReadOnly != null) {\n domProps['aria-readonly'] = _ariaReadOnly;\n // Enhance with native semantics\n if (elementType === 'input' || elementType === 'select' || elementType === 'textarea') {\n domProps.readOnly = true;\n }\n }\n if (accessibilityRequired != null) {\n warnOnce('accessibilityRequired', \"accessibilityRequired is deprecated. Use aria-required.\");\n }\n var _ariaRequired = ariaRequired != null ? ariaRequired : accessibilityRequired;\n if (_ariaRequired != null) {\n domProps['aria-required'] = _ariaRequired;\n // Enhance with native semantics\n if (elementType === 'input' || elementType === 'select' || elementType === 'textarea') {\n domProps.required = accessibilityRequired;\n }\n }\n if (accessibilityRole != null) {\n warnOnce('accessibilityRole', \"accessibilityRole is deprecated. Use role.\");\n }\n if (role != null) {\n // 'presentation' synonym has wider browser support\n domProps['role'] = role === 'none' ? 'presentation' : role;\n }\n if (accessibilityRoleDescription != null) {\n warnOnce('accessibilityRoleDescription', \"accessibilityRoleDescription is deprecated. Use aria-roledescription.\");\n }\n var _ariaRoleDescription = ariaRoleDescription != null ? ariaRoleDescription : accessibilityRoleDescription;\n if (_ariaRoleDescription != null) {\n domProps['aria-roledescription'] = _ariaRoleDescription;\n }\n if (accessibilityRowCount != null) {\n warnOnce('accessibilityRowCount', \"accessibilityRowCount is deprecated. Use aria-rowcount.\");\n }\n var _ariaRowCount = ariaRowCount != null ? ariaRowCount : accessibilityRowCount;\n if (_ariaRowCount != null) {\n domProps['aria-rowcount'] = _ariaRowCount;\n }\n if (accessibilityRowIndex != null) {\n warnOnce('accessibilityRowIndex', \"accessibilityRowIndex is deprecated. Use aria-rowindex.\");\n }\n var _ariaRowIndex = ariaRowIndex != null ? ariaRowIndex : accessibilityRowIndex;\n if (_ariaRowIndex != null) {\n domProps['aria-rowindex'] = _ariaRowIndex;\n }\n if (accessibilityRowSpan != null) {\n warnOnce('accessibilityRowSpan', \"accessibilityRowSpan is deprecated. Use aria-rowspan.\");\n }\n var _ariaRowSpan = ariaRowSpan != null ? ariaRowSpan : accessibilityRowSpan;\n if (_ariaRowSpan != null) {\n domProps['aria-rowspan'] = _ariaRowSpan;\n }\n if (accessibilitySelected != null) {\n warnOnce('accessibilitySelected', \"accessibilitySelected is deprecated. Use aria-selected.\");\n }\n var _ariaSelected = ariaSelected != null ? ariaSelected : accessibilitySelected;\n if (_ariaSelected != null) {\n domProps['aria-selected'] = _ariaSelected;\n }\n if (accessibilitySetSize != null) {\n warnOnce('accessibilitySetSize', \"accessibilitySetSize is deprecated. Use aria-setsize.\");\n }\n var _ariaSetSize = ariaSetSize != null ? ariaSetSize : accessibilitySetSize;\n if (_ariaSetSize != null) {\n domProps['aria-setsize'] = _ariaSetSize;\n }\n if (accessibilitySort != null) {\n warnOnce('accessibilitySort', \"accessibilitySort is deprecated. Use aria-sort.\");\n }\n var _ariaSort = ariaSort != null ? ariaSort : accessibilitySort;\n if (_ariaSort != null) {\n domProps['aria-sort'] = _ariaSort;\n }\n if (accessibilityValueMax != null) {\n warnOnce('accessibilityValueMax', \"accessibilityValueMax is deprecated. Use aria-valuemax.\");\n }\n var _ariaValueMax = ariaValueMax != null ? ariaValueMax : accessibilityValueMax;\n if (_ariaValueMax != null) {\n domProps['aria-valuemax'] = _ariaValueMax;\n }\n if (accessibilityValueMin != null) {\n warnOnce('accessibilityValueMin', \"accessibilityValueMin is deprecated. Use aria-valuemin.\");\n }\n var _ariaValueMin = ariaValueMin != null ? ariaValueMin : accessibilityValueMin;\n if (_ariaValueMin != null) {\n domProps['aria-valuemin'] = _ariaValueMin;\n }\n if (accessibilityValueNow != null) {\n warnOnce('accessibilityValueNow', \"accessibilityValueNow is deprecated. Use aria-valuenow.\");\n }\n var _ariaValueNow = ariaValueNow != null ? ariaValueNow : accessibilityValueNow;\n if (_ariaValueNow != null) {\n domProps['aria-valuenow'] = _ariaValueNow;\n }\n if (accessibilityValueText != null) {\n warnOnce('accessibilityValueText', \"accessibilityValueText is deprecated. Use aria-valuetext.\");\n }\n var _ariaValueText = ariaValueText != null ? ariaValueText : accessibilityValueText;\n if (_ariaValueText != null) {\n domProps['aria-valuetext'] = _ariaValueText;\n }\n\n // \"dataSet\" replaced with \"data-*\"\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 if (dataValue != null) {\n domProps[\"data-\" + dataName] = dataValue;\n }\n }\n }\n }\n\n // FOCUS\n if (tabIndex === 0 || tabIndex === '0' || tabIndex === -1 || tabIndex === '-1') {\n domProps.tabIndex = tabIndex;\n } else {\n if (focusable != null) {\n warnOnce('focusable', \"focusable is deprecated.\");\n }\n\n // \"focusable\" indicates that an element may be a keyboard tab-stop.\n if (focusable === false) {\n domProps.tabIndex = '-1';\n }\n if (\n // 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 (\n // 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 }\n }\n\n // Resolve styles\n if (pointerEvents != null) {\n warnOnce('pointerEvents', \"props.pointerEvents is deprecated. Use style.pointerEvents\");\n }\n var _StyleSheet = StyleSheet([style, pointerEvents && pointerEventsStyles[pointerEvents]], _objectSpread({\n writingDirection: 'ltr'\n }, options)),\n className = _StyleSheet[0],\n inlineStyle = _StyleSheet[1];\n if (className) {\n domProps.className = className;\n }\n if (inlineStyle) {\n domProps.style = inlineStyle;\n }\n\n // OTHER\n // Native element ID\n if (nativeID != null) {\n warnOnce('nativeID', \"nativeID is deprecated. Use id.\");\n }\n var _id = id != null ? id : nativeID;\n if (_id != null) {\n domProps.id = _id;\n }\n // Automated test IDs\n if (testID != null) {\n domProps['data-testid'] = testID;\n }\n if (domProps.type == null && elementType === 'button') {\n domProps.type = 'button';\n }\n return domProps;\n};\nexport default createDOMProps;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport AccessibilityUtil from '../../modules/AccessibilityUtil';\nimport createDOMProps from '../../modules/createDOMProps';\nimport React from 'react';\nimport { LocaleProvider } from '../../modules/useLocale';\nvar createElement = (component, props, options) => {\n // Use equivalent platform elements where possible.\n var accessibilityComponent;\n if (component && component.constructor === String) {\n accessibilityComponent = AccessibilityUtil.propsToAccessibilityComponent(props);\n }\n var Component = accessibilityComponent || component;\n var domProps = createDOMProps(Component, props, options);\n var element = /*#__PURE__*/React.createElement(Component, domProps);\n\n // Update locale context if element's writing direction prop changes\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};\nexport default createElement;","/**\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\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};\nvar propsToAriaRole = _ref => {\n var accessibilityRole = _ref.accessibilityRole,\n role = _ref.role;\n var _role = role || accessibilityRole;\n if (_role) {\n var inferredRole = accessibilityRoleToWebRole[_role];\n if (inferredRole !== null) {\n // ignore roles that don't map to web\n return inferredRole || _role;\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 */\n\nimport propsToAriaRole from './propsToAriaRole';\nvar roleComponents = {\n article: 'article',\n banner: 'header',\n blockquote: 'blockquote',\n button: 'button',\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 paragraph: 'p',\n region: 'section',\n strong: 'strong'\n};\nvar emptyObject = {};\nvar propsToAccessibilityComponent = function propsToAccessibilityComponent(props) {\n if (props === void 0) {\n props = emptyObject;\n }\n var roleProp = props.role || props.accessibilityRole;\n // special-case for \"label\" role which doesn't map to an ARIA role\n if (roleProp === 'label') {\n return 'label';\n }\n var role = propsToAriaRole(props);\n if (role) {\n if (role === 'heading') {\n var level = props.accessibilityLevel || props['aria-level'];\n if (level != null) {\n return \"h\" + level;\n }\n return 'h1';\n }\n return roleComponents[role];\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 */\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;","/**\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\nvar isDisabled = props => props.disabled || Array.isArray(props.accessibilityStates) && props.accessibilityStates.indexOf('disabled') > -1;\nexport default isDisabled;","/**\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 */\n\nimport UIManager from '../../exports/UIManager';\n\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 */\nvar TextInputState = {\n /**\n * Internal state\n */\n _currentlyFocusedNode: null,\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 return this._currentlyFocusedNode;\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 if (document.activeElement !== textFieldNode) {\n UIManager.focus(textFieldNode);\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 if (document.activeElement === textFieldNode) {\n UIManager.blur(textFieldNode);\n }\n }\n }\n};\nexport default TextInputState;","/**\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\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nexport default canUseDOM;","/**\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\nimport TextInputState from '../TextInputState';\nvar dismissKeyboard = () => {\n TextInputState.blurTextInput(TextInputState.currentlyFocusedField());\n};\nexport default dismissKeyboard;","/**\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\nexport var defaultProps = {\n children: true,\n dataSet: true,\n dir: true,\n id: true,\n ref: true,\n suppressHydrationWarning: true,\n tabIndex: true,\n testID: true,\n // @deprecated\n focusable: true,\n nativeID: true\n};\nexport var accessibilityProps = {\n 'aria-activedescendant': true,\n 'aria-atomic': true,\n 'aria-autocomplete': true,\n 'aria-busy': true,\n 'aria-checked': true,\n 'aria-colcount': true,\n 'aria-colindex': true,\n 'aria-colspan': true,\n 'aria-controls': true,\n 'aria-current': true,\n 'aria-describedby': true,\n 'aria-details': true,\n 'aria-disabled': true,\n 'aria-errormessage': true,\n 'aria-expanded': true,\n 'aria-flowto': true,\n 'aria-haspopup': true,\n 'aria-hidden': true,\n 'aria-invalid': true,\n 'aria-keyshortcuts': true,\n 'aria-label': true,\n 'aria-labelledby': true,\n 'aria-level': true,\n 'aria-live': true,\n 'aria-modal': true,\n 'aria-multiline': true,\n 'aria-multiselectable': true,\n 'aria-orientation': true,\n 'aria-owns': true,\n 'aria-placeholder': true,\n 'aria-posinset': true,\n 'aria-pressed': true,\n 'aria-readonly': true,\n 'aria-required': true,\n role: true,\n 'aria-roledescription': true,\n 'aria-rowcount': true,\n 'aria-rowindex': true,\n 'aria-rowspan': true,\n 'aria-selected': true,\n 'aria-setsize': true,\n 'aria-sort': true,\n 'aria-valuemax': true,\n 'aria-valuemin': true,\n 'aria-valuenow': true,\n 'aria-valuetext': true,\n // @deprecated\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};\nexport var clickProps = {\n onClick: true,\n onAuxClick: true,\n onContextMenu: true,\n onGotPointerCapture: true,\n onLostPointerCapture: true,\n onPointerCancel: true,\n onPointerDown: true,\n onPointerEnter: true,\n onPointerMove: true,\n onPointerLeave: true,\n onPointerOut: true,\n onPointerOver: true,\n onPointerUp: 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 style: true\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\nvar getBoundingClientRect = node => {\n if (node != null) {\n var isElement = node.nodeType === 1; /* Node.ELEMENT_NODE */\n if (isElement && typeof node.getBoundingClientRect === 'function') {\n return node.getBoundingClientRect();\n }\n }\n};\nexport default getBoundingClientRect;","/**\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\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 return function forwardRef(node) {\n args.forEach(ref => {\n if (ref == null) {\n return;\n }\n if (typeof ref === 'function') {\n ref(node);\n return;\n }\n if (typeof ref === 'object') {\n ref.current = node;\n return;\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 */\n\nexport default function pick(obj, list) {\n var nextObj = {};\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 return nextObj;\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\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;\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 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 return resizeObserver;\n}\nexport default function useElementLayout(ref, onLayout) {\n var observer = getResizeObserver();\n useLayoutEffect(() => {\n var node = ref.current;\n if (node != null) {\n node[DOM_LAYOUT_HANDLER_NAME] = onLayout;\n }\n }, [ref, onLayout]);\n\n // Observing is done in a separate effect to avoid this effect running\n // when 'onLayout' changes.\n useLayoutEffect(() => {\n var node = ref.current;\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 return () => {\n if (node != null && observer != null) {\n observer.unobserve(node);\n }\n };\n }, [ref, observer]);\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 */\n\nimport { useEffect, useLayoutEffect } from 'react';\nimport canUseDOM from '../canUseDom';\nvar useLayoutEffectImpl = canUseDOM ? useLayoutEffect : useEffect;\nexport default useLayoutEffectImpl;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar rtlScripts = new Set(['Arab', 'Syrc', 'Samr', 'Mand', 'Thaa', 'Mend', 'Nkoo', 'Adlm', 'Rohg', 'Hebr']);\nvar rtlLangs = new Set(['ae',\n// Avestan\n'ar',\n// Arabic\n'arc',\n// Aramaic\n'bcc',\n// Southern Balochi\n'bqi',\n// Bakthiari\n'ckb',\n// Sorani\n'dv',\n// Dhivehi\n'fa', 'far',\n// Persian\n'glk',\n// Gilaki\n'he', 'iw',\n// Hebrew\n'khw',\n// Khowar\n'ks',\n// Kashmiri\n'ku',\n// Kurdish\n'mzn',\n// Mazanderani\n'nqo',\n// N'Ko\n'pnb',\n// Western Punjabi\n'ps',\n// Pashto\n'sd',\n// Sindhi\n'ug',\n// Uyghur\n'ur',\n// Urdu\n'yi' // Yiddish\n]);\n\nvar cache = new Map();\n\n/**\n * Determine the writing direction of a locale\n */\nexport function isLocaleRTL(locale) {\n var cachedRTL = cache.get(locale);\n if (cachedRTL) {\n return cachedRTL;\n }\n var isRTL = false;\n // $FlowFixMe\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 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 */\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) 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\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 return React.useMemo(() => mergeRefs(...args),\n // eslint-disable-next-line\n [...args]);\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\nimport UIManager from '../../exports/UIManager';\nimport useStable from '../useStable';\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 */\nexport default function usePlatformMethods(_ref) {\n var pointerEvents = _ref.pointerEvents,\n style = _ref.style;\n // Avoid creating a new ref on every render.\n var ref = useStable(() => hostNode => {\n if (hostNode != null) {\n hostNode.measure = callback => UIManager.measure(hostNode, callback);\n hostNode.measureLayout = (relativeToNode, success, failure) => UIManager.measureLayout(hostNode, relativeToNode, failure, success);\n hostNode.measureInWindow = callback => UIManager.measureInWindow(hostNode, callback);\n }\n });\n return ref;\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\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});\nvar getElementRole = element => element.getAttribute('role');\nvar getElementType = element => element.tagName.toLowerCase();\nvar isActiveSignal = signal => signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START;\nvar isButtonRole = element => getElementRole(element) === 'button';\nvar isPressStartSignal = signal => signal === RESPONDER_INACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START;\nvar isTerminalSignal = signal => signal === RESPONDER_TERMINATED || signal === RESPONDER_RELEASE;\nvar isValidKeyPress = event => {\n var key = event.key,\n target = event.target;\n var isSpacebar = key === ' ' || key === 'Spacebar';\n var isButtonish = getElementType(target) === 'button' || isButtonRole(target);\n return key === 'Enter' || isSpacebar && isButtonish;\n};\nvar DEFAULT_LONG_PRESS_DELAY_MS = 450; // 500 - 50\nvar DEFAULT_PRESS_DELAY_MS = 50;\n\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 */\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._responderElement = null;\n this.configure(config);\n }\n configure(config) {\n this._config = config;\n }\n\n /**\n * Resets any pending timers. This should be called on unmount.\n */\n reset() {\n this._cancelLongPressDelayTimeout();\n this._cancelPressDelayTimeout();\n this._cancelPressOutDelayTimeout();\n }\n\n /**\n * Returns a set of props to spread into the interactive element.\n */\n getEventHandlers() {\n if (this._eventHandlers == null) {\n this._eventHandlers = this._createEventHandlers();\n }\n return this._eventHandlers;\n }\n _createEventHandlers() {\n var start = (event, shouldDelay) => {\n event.persist();\n this._cancelPressOutDelayTimeout();\n this._longPressDispatched = false;\n this._selectionTerminated = false;\n this._touchState = NOT_RESPONDER;\n this._isPointerTouch = event.nativeEvent.type === 'touchstart';\n this._receiveSignal(RESPONDER_GRANT, event);\n var delayPressStart = normalizeDelay(this._config.delayPressStart, 0, DEFAULT_PRESS_DELAY_MS);\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 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 var end = event => {\n this._receiveSignal(RESPONDER_RELEASE, event);\n };\n var keyupHandler = event => {\n var onPress = this._config.onPress;\n var target = event.target;\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 = getElementType(target);\n var isNativeInteractiveElement = role === 'link' || elementType === 'a' || elementType === 'button' || elementType === 'input' || elementType === 'select' || elementType === 'textarea';\n var isActiveElement = this._responderElement === target;\n if (onPress != null && !isNativeInteractiveElement && isActiveElement) {\n onPress(event);\n }\n this._responderElement = null;\n }\n };\n return {\n onStartShouldSetResponder: event => {\n var disabled = this._config.disabled;\n if (disabled && isButtonRole(event.currentTarget)) {\n event.stopPropagation();\n }\n if (disabled == null) {\n return true;\n }\n return !disabled;\n },\n onKeyDown: event => {\n var disabled = this._config.disabled;\n var key = event.key,\n target = event.target;\n if (!disabled && isValidKeyPress(event)) {\n if (this._touchState === NOT_RESPONDER) {\n start(event, false);\n this._responderElement = target;\n // Listen to 'keyup' on document to account for situations where\n // focus is moved to another element during 'keydown'.\n document.addEventListener('keyup', keyupHandler);\n }\n var isSpacebarKey = key === ' ' || key === 'Spacebar';\n var role = getElementRole(target);\n var isButtonLikeRole = role === 'button' || role === 'menuitem';\n if (isSpacebarKey && isButtonLikeRole && getElementType(target) !== 'button') {\n // Prevent spacebar scrolling the window if using non-native button\n event.preventDefault();\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 var touch = getTouchFromResponderEvent(event);\n if (this._touchActivatePosition != null) {\n var deltaX = this._touchActivatePosition.pageX - touch.pageX;\n var deltaY = this._touchActivatePosition.pageY - touch.pageY;\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 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;\n // If `onLongPress` is provided, don't terminate on `contextmenu` as default\n // behavior will be prevented for non-mouse pointers.\n if (!disabled && onLongPress != null && this._isPointerTouch && event.nativeEvent.type === 'contextmenu') {\n return false;\n }\n if (cancelable == null) {\n return true;\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 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 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 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 /**\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 _receiveSignal(signal, event) {\n var prevState = this._touchState;\n var nextState = null;\n if (Transitions[prevState] != null) {\n nextState = Transitions[prevState][signal];\n }\n if (this._touchState === NOT_RESPONDER && signal === RESPONDER_RELEASE) {\n return;\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 this._touchState = nextState;\n }\n }\n\n /**\n * Performs a transition between touchable states and identify any activations\n * or deactivations (and callback invocations).\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 this._cancelLongPressDelayTimeout();\n }\n if (isPressStartSignal(prevState) && signal === LONG_PRESS_DETECTED) {\n var onLongPress = this._config.onLongPress;\n // Long press is not supported for keyboards because 'click' can be dispatched\n // immediately (and multiple times) after 'keydown'.\n if (onLongPress != null && event.nativeEvent.key == null) {\n onLongPress(event);\n this._longPressDispatched = true;\n }\n }\n var isPrevActive = isActiveSignal(prevState);\n var isNextActive = isActiveSignal(nextState);\n if (!isPrevActive && isNextActive) {\n this._activate(event);\n } else if (isPrevActive && !isNextActive) {\n this._deactivate(event);\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 if (onPress != null) {\n var isPressCanceledByLongPress = _onLongPress != null && prevState === RESPONDER_ACTIVE_LONG_PRESS_START;\n if (!isPressCanceledByLongPress) {\n // If we never activated (due to delays), activate and deactivate now.\n if (!isNextActive && !isPrevActive) {\n this._activate(event);\n this._deactivate(event);\n }\n }\n }\n }\n this._cancelPressDelayTimeout();\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 if (onPressStart != null) {\n onPressStart(event);\n }\n if (onPressChange != null) {\n onPressChange(true);\n }\n }\n _deactivate(event) {\n var _this$_config6 = this._config,\n onPressChange = _this$_config6.onPressChange,\n onPressEnd = _this$_config6.onPressEnd;\n function end() {\n if (onPressEnd != null) {\n onPressEnd(event);\n }\n if (onPressChange != null) {\n onPressChange(false);\n }\n }\n var delayPressEnd = normalizeDelay(this._config.delayPressEnd);\n if (delayPressEnd > 0) {\n this._pressOutDelayTimeout = setTimeout(() => {\n end();\n }, delayPressEnd);\n } else {\n end();\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 _cancelLongPressDelayTimeout() {\n if (this._longPressDelayTimeout != null) {\n clearTimeout(this._longPressDelayTimeout);\n this._longPressDelayTimeout = null;\n }\n }\n _cancelPressDelayTimeout() {\n if (this._pressDelayTimeout != null) {\n clearTimeout(this._pressDelayTimeout);\n this._pressDelayTimeout = null;\n }\n }\n _cancelPressOutDelayTimeout() {\n if (this._pressOutDelayTimeout != null) {\n clearTimeout(this._pressOutDelayTimeout);\n this._pressOutDelayTimeout = null;\n }\n }\n}\nfunction normalizeDelay(delay, min, fallback) {\n if (min === void 0) {\n min = 0;\n }\n if (fallback === void 0) {\n fallback = 0;\n }\n return Math.max(min, delay !== null && delay !== void 0 ? delay : fallback);\n}\nfunction getTouchFromResponderEvent(event) {\n var _event$nativeEvent = event.nativeEvent,\n changedTouches = _event$nativeEvent.changedTouches,\n touches = _event$nativeEvent.touches;\n if (touches != null && touches.length > 0) {\n return touches[0];\n }\n if (changedTouches != null && changedTouches.length > 0) {\n return changedTouches[0];\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\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 if (pressResponderRef.current == null) {\n pressResponderRef.current = new PressResponder(config);\n }\n var pressResponder = pressResponderRef.current;\n\n // Re-configure to use the current node and configuration.\n useEffect(() => {\n pressResponder.configure(config);\n }, [config, pressResponder]);\n\n // 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 useEffect(() => {\n return () => {\n pressResponder.reset();\n };\n }, [pressResponder]);\n useDebugValue(config);\n return pressResponder.getEventHandlers();\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\nimport getBoundingClientRect from '../../modules/getBoundingClientRect';\nvar emptyFunction = () => {};\nvar emptyObject = {};\nvar emptyArray = [];\n\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 */\nfunction normalizeIdentifier(identifier) {\n return identifier > 20 ? identifier % 20 : identifier;\n}\n\n/**\n * Converts a native DOM event to a ResponderEvent.\n * Mouse events are transformed into fake touch events.\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 function normalizeTouches(touches) {\n return Array.prototype.slice.call(touches).map(touch => {\n return {\n force: touch.force,\n identifier: normalizeIdentifier(touch.identifier),\n get locationX() {\n return locationX(touch.clientX);\n },\n get locationY() {\n return locationY(touch.clientY);\n },\n pageX: touch.pageX,\n pageY: touch.pageY,\n target: touch.target,\n timestamp\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 get locationX() {\n return locationX(clientX);\n },\n get locationY() {\n return locationY(clientY);\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 var responderEvent = {\n bubbles: true,\n cancelable: true,\n // `currentTarget` is set before dispatch\n currentTarget: null,\n defaultPrevented: domEvent.defaultPrevented,\n dispatchConfig: emptyObject,\n eventPhase: domEvent.eventPhase,\n isDefaultPrevented() {\n return domEvent.defaultPrevented;\n },\n isPropagationStopped() {\n return propagationWasStopped;\n },\n isTrusted: domEvent.isTrusted,\n nativeEvent: {\n altKey: false,\n ctrlKey: false,\n metaKey,\n shiftKey,\n changedTouches,\n force,\n identifier,\n get locationX() {\n return locationX(clientX);\n },\n get locationY() {\n return locationY(clientY);\n },\n pageX,\n pageY,\n target: domEvent.target,\n timestamp,\n touches,\n type: domEventType\n },\n persist: emptyFunction,\n preventDefault,\n stopPropagation() {\n propagationWasStopped = true;\n },\n target: domEvent.target,\n timeStamp: timestamp,\n touchHistory: responderTouchHistoryStore.touchHistory\n };\n\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 function locationX(x) {\n rect = rect || getBoundingClientRect(responderEvent.currentTarget);\n if (rect) {\n return x - rect.left;\n }\n }\n function locationY(y) {\n rect = rect || getBoundingClientRect(responderEvent.currentTarget);\n if (rect) {\n return y - rect.top;\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 */\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 */\n\nimport isSelectionValid from '../../modules/isSelectionValid';\nvar keyName = '__reactResponderId';\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}\nfunction composedPathFallback(target) {\n var path = [];\n while (target != null && target !== document.body) {\n path.push(target);\n target = target.parentNode;\n }\n return path;\n}\n\n/**\n * Retrieve the responderId from a host node\n */\nfunction getResponderId(node) {\n if (node != null) {\n return node[keyName];\n }\n return null;\n}\n\n/**\n * Store the responderId on a host node\n */\nexport function setResponderId(node, id) {\n if (node != null) {\n node[keyName] = id;\n }\n}\n\n/**\n * Filter the event path to contain only the nodes attached to the responder system\n */\nexport function getResponderPaths(domEvent) {\n var idPath = [];\n var nodePath = [];\n var eventPath = getEventPath(domEvent);\n for (var i = 0; i < eventPath.length; i++) {\n var node = eventPath[i];\n var id = getResponderId(node);\n if (id != null) {\n idPath.push(id);\n nodePath.push(node);\n }\n }\n return {\n idPath,\n nodePath\n };\n}\n\n/**\n * Walk the paths and find the first common ancestor\n */\nexport function getLowestCommonAncestor(pathA, pathB) {\n var pathALength = pathA.length;\n var pathBLength = pathB.length;\n if (\n // If either path is empty\n pathALength === 0 || pathBLength === 0 ||\n // 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 var itemA = pathA[0];\n var indexA = 0;\n var itemB = pathB[0];\n var indexB = 0;\n\n // If A is deeper, skip indices that can't match.\n if (pathALength - pathBLength > 0) {\n indexA = pathALength - pathBLength;\n itemA = pathA[indexA];\n pathALength = pathBLength;\n }\n\n // If B is deeper, skip indices that can't match\n if (pathBLength - pathALength > 0) {\n indexB = pathBLength - pathALength;\n itemB = pathB[indexB];\n pathBLength = pathALength;\n }\n\n // Walk in lockstep until a match is found\n var depth = pathALength;\n while (depth--) {\n if (itemA === itemB) {\n return itemA;\n }\n itemA = pathA[indexA++];\n itemB = pathB[indexB++];\n }\n return null;\n}\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 */\nexport function hasTargetTouches(target, touches) {\n if (!touches || touches.length === 0) {\n return false;\n }\n for (var i = 0; i < touches.length; i++) {\n var node = touches[i].target;\n if (node != null) {\n if (target.contains(node)) {\n return true;\n }\n }\n }\n return false;\n}\n\n/**\n * Ignore 'selectionchange' events that don't correspond with a person's intent to\n * select text.\n */\nexport function hasValidSelection(domEvent) {\n if (domEvent.type === 'selectionchange') {\n return isSelectionValid();\n }\n return domEvent.type === 'select';\n}\n\n/**\n * Events are only valid if the primary button was used without specific modifier keys.\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 if (isTouch || isPrimaryMouseDown && noModifiers || isPrimaryMouseMove && noModifiers) {\n return true;\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 */\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 */\n\nimport { isStartish, isMoveish, isEndish } from './ResponderEventTypes';\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 */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\nvar MAX_TOUCH_BANK = 20;\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/**\n * TODO: Instead of making gestures recompute filtered velocity, we could\n * include a built in velocity computation that can be reused globally.\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}\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}\nfunction getTouchIdentifier(_ref) {\n var identifier = _ref.identifier;\n if (identifier == null) {\n console.error('Touch object is missing identifier.');\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 return identifier;\n}\nfunction recordTouchStart(touch, touchHistory) {\n var identifier = getTouchIdentifier(touch);\n var touchRecord = touchHistory.touchBank[identifier];\n if (touchRecord) {\n resetTouchRecord(touchRecord, touch);\n } else {\n touchHistory.touchBank[identifier] = createTouchRecord(touch);\n }\n touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n}\nfunction recordTouchMove(touch, touchHistory) {\n var touchRecord = touchHistory.touchBank[getTouchIdentifier(touch)];\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}\nfunction recordTouchEnd(touch, touchHistory) {\n var touchRecord = touchHistory.touchBank[getTouchIdentifier(touch)];\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}\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}\nfunction printTouchBank(touchHistory) {\n var touchBank = touchHistory.touchBank;\n var printed = JSON.stringify(touchBank.slice(0, MAX_TOUCH_BANK));\n if (touchBank.length > MAX_TOUCH_BANK) {\n printed += ' (original size: ' + touchBank.length + ')';\n }\n return printed;\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 recordTouchTrack(topLevelType, nativeEvent) {\n var touchHistory = this._touchHistory;\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 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 if (touchHistory.numberActiveTouches === 1) {\n var touchBank = touchHistory.touchBank;\n for (var i = 0; i < touchBank.length; i++) {\n var touchTrackToCheck = touchBank[i];\n if (touchTrackToCheck != null && touchTrackToCheck.touchActive) {\n touchHistory.indexOfSingleActiveTouch = i;\n break;\n }\n }\n if (__DEV__) {\n var activeRecord = touchBank[touchHistory.indexOfSingleActiveTouch];\n if (!(activeRecord != null && activeRecord.touchActive)) {\n console.error('Cannot find single active touch.');\n }\n }\n }\n }\n }\n get touchHistory() {\n return this._touchHistory;\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 + + */\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\n/* ------------ TYPES ------------ */\n\nvar emptyObject = {};\n\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();\nfunction changeCurrentResponder(responder) {\n currentResponder = responder;\n}\nfunction getResponderConfig(id) {\n var config = responderListenersMap.get(id);\n return config != null ? config : emptyObject;\n}\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 */\nfunction eventListener(domEvent) {\n var eventType = domEvent.type;\n var eventTarget = domEvent.target;\n\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\n // Flag when browser may produce emulated events\n if (eventType === 'touchstart') {\n isEmulatingMouseEvents = true;\n }\n // Remove flag when browser will not produce emulated events\n if (eventType === 'touchmove' || trackedTouchCount > 1) {\n isEmulatingMouseEvents = false;\n }\n // Ignore various events in particular circumstances\n if (\n // Ignore browser emulated mouse events\n eventType === 'mousedown' && isEmulatingMouseEvents || eventType === 'mousemove' && isEmulatingMouseEvents ||\n // Ignore mousemove if a mousedown didn't occur first\n eventType === 'mousemove' && trackedTouchCount < 1) {\n return;\n }\n // Remove flag after emulated events are finished\n if (isEmulatingMouseEvents && eventType === 'mouseup') {\n if (trackedTouchCount === 0) {\n isEmulatingMouseEvents = false;\n }\n return;\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 /**\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 responderTouchHistoryStore.recordTouchTrack(eventType, responderEvent.nativeEvent);\n }\n\n /**\n * Responder System logic\n */\n\n var eventPaths = getResponderPaths(domEvent);\n var wasNegotiated = false;\n var wantsResponder;\n\n // If an event occured that might change the current responder...\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 if (currentResponderIdPath != null && eventIdPath != null) {\n var lowestCommonAncestor = getLowestCommonAncestor(currentResponderIdPath, eventIdPath);\n if (lowestCommonAncestor != null) {\n var indexOfLowestCommonAncestor = eventIdPath.indexOf(lowestCommonAncestor);\n // Skip the current responder so it doesn't receive unexpected \"shouldSet\" events.\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 if (eventPaths != null) {\n // If a node wants to become the responder, attempt to transfer.\n wantsResponder = findWantsResponder(eventPaths, domEvent, responderEvent);\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 }\n\n // If there is now a responder, invoke its callbacks for the lifecycle of the gesture.\n if (currentResponder.id != null && currentResponder.node != null) {\n var _currentResponder = currentResponder,\n id = _currentResponder.id,\n node = _currentResponder.node;\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 responderEvent.bubbles = false;\n responderEvent.cancelable = false;\n responderEvent.currentTarget = node;\n\n // Start\n if (isStartEvent) {\n if (onResponderStart != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderStart';\n onResponderStart(responderEvent);\n }\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) ||\n // native context menu\n eventType === 'contextmenu' ||\n // window blur\n eventType === 'blur' && eventTarget === window ||\n // responder (or ancestors) blur\n eventType === 'blur' && eventTarget.contains(node) && domEvent.relatedTarget !== node ||\n // native scroll without using a pointer\n isScrollEvent && trackedTouchCount === 0 ||\n // native scroll on node that is parent of the responder (allow siblings to scroll)\n isScrollEvent && eventTarget.contains(node) && eventTarget !== node ||\n // native select/selectionchange on node\n isSelectionChangeEvent && hasValidSelection(domEvent);\n var isReleaseEvent = isEndEvent && !isTerminateEvent && !hasTargetTouches(node, domEvent.touches);\n\n // End\n if (isEndEvent) {\n if (onResponderEnd != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderEnd';\n onResponderEnd(responderEvent);\n }\n }\n // Release\n if (isReleaseEvent) {\n if (onResponderRelease != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderRelease';\n onResponderRelease(responderEvent);\n }\n changeCurrentResponder(emptyResponder);\n }\n // Terminate\n if (isTerminateEvent) {\n var shouldTerminate = true;\n\n // Responders can still avoid termination but only for these events.\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 if (onResponderTerminationRequest(responderEvent) === false) {\n shouldTerminate = false;\n }\n }\n }\n if (shouldTerminate) {\n if (onResponderTerminate != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderTerminate';\n onResponderTerminate(responderEvent);\n }\n changeCurrentResponder(emptyResponder);\n isEmulatingMouseEvents = false;\n trackedTouchCount = 0;\n }\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 */\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 var check = function check(id, node, callbackName) {\n var config = getResponderConfig(id);\n var shouldSetCallback = config[callbackName];\n if (shouldSetCallback != null) {\n responderEvent.currentTarget = node;\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 };\n\n // capture\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 if (result != null) {\n return result;\n }\n if (responderEvent.isPropagationStopped() === true) {\n return;\n }\n }\n\n // bubble\n if (bubbles) {\n for (var _i = 0; _i < idPath.length; _i++) {\n var _id = idPath[_i];\n var _node = nodePath[_i];\n var _result = check(_id, _node, shouldSetCallbackBubbleName);\n if (_result != null) {\n return _result;\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 if (target === _node2) {\n return check(_id2, _node2, shouldSetCallbackBubbleName);\n }\n }\n }\n}\n\n/**\n * Attempt to transfer the responder.\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 var _getResponderConfig2 = getResponderConfig(id),\n onResponderGrant = _getResponderConfig2.onResponderGrant,\n onResponderReject = _getResponderConfig2.onResponderReject;\n responderEvent.bubbles = false;\n responderEvent.cancelable = false;\n responderEvent.currentTarget = node;\n\n // Set responder\n if (currentId == null) {\n if (onResponderGrant != null) {\n responderEvent.currentTarget = node;\n responderEvent.dispatchConfig.registrationName = 'onResponderGrant';\n onResponderGrant(responderEvent);\n }\n changeCurrentResponder(wantsResponder);\n }\n // Negotiate with current responder\n else {\n var _getResponderConfig3 = getResponderConfig(currentId),\n onResponderTerminate = _getResponderConfig3.onResponderTerminate,\n onResponderTerminationRequest = _getResponderConfig3.onResponderTerminationRequest;\n var allowTransfer = true;\n if (onResponderTerminationRequest != null) {\n responderEvent.currentTarget = currentNode;\n responderEvent.dispatchConfig.registrationName = 'onResponderTerminationRequest';\n if (onResponderTerminationRequest(responderEvent) === false) {\n allowTransfer = false;\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 }\n // Grant next responder\n if (onResponderGrant != null) {\n responderEvent.currentTarget = node;\n responderEvent.dispatchConfig.registrationName = 'onResponderGrant';\n onResponderGrant(responderEvent);\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\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 */\nvar documentEventsCapturePhase = ['blur', 'scroll'];\nvar documentEventsBubblePhase = [\n// mouse\n'mousedown', 'mousemove', 'mouseup', 'dragstart',\n// touch\n'touchstart', 'touchmove', 'touchend', 'touchcancel',\n// 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/**\n * Register a node with the ResponderSystem.\n */\nexport function addNode(id, node, config) {\n setResponderId(node, id);\n responderListenersMap.set(id, config);\n}\n\n/**\n * Unregister a node with the ResponderSystem.\n */\nexport function removeNode(id) {\n if (currentResponder.id === id) {\n terminateResponder();\n }\n if (responderListenersMap.has(id)) {\n responderListenersMap.delete(id);\n }\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 */\nexport function terminateResponder() {\n var _currentResponder3 = currentResponder,\n id = _currentResponder3.id,\n node = _currentResponder3.node;\n if (id != null && node != null) {\n var _getResponderConfig4 = getResponderConfig(id),\n onResponderTerminate = _getResponderConfig4.onResponderTerminate;\n if (onResponderTerminate != null) {\n var event = createResponderEvent({}, responderTouchHistoryStore);\n event.currentTarget = node;\n onResponderTerminate(event);\n }\n changeCurrentResponder(emptyResponder);\n }\n isEmulatingMouseEvents = false;\n trackedTouchCount = 0;\n}\n\n/**\n * Allow unit tests to inspect the current responder in the system.\n * FOR TESTING ONLY.\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 */\n\nimport * as React from 'react';\nimport * as ResponderSystem from './ResponderSystem';\nvar emptyObject = {};\nvar idCounter = 0;\nfunction useStable(getInitialValue) {\n var ref = React.useRef(null);\n if (ref.current == null) {\n ref.current = getInitialValue();\n }\n return ref.current;\n}\nexport default function useResponderEvents(hostRef, config) {\n if (config === void 0) {\n config = emptyObject;\n }\n var id = useStable(() => idCounter++);\n var isAttachedRef = React.useRef(false);\n\n // 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 React.useEffect(() => {\n ResponderSystem.attachListeners();\n return () => {\n ResponderSystem.removeNode(id);\n };\n }, [id]);\n\n // Register and unregister with the Responder System as necessary\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 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 * \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 if (ref.current === UNINITIALIZED) {\n ref.current = getInitialValue();\n }\n // $FlowFixMe (#64650789) Trouble refining types where `Symbol` is concerned.\n return ref.current;\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\nvar warnedKeys = {};\n\n/**\n * A simple function that prints a warning message once per session.\n *\n * @param {string} key - The key used to ensure the message is printed once.\n * This should be unique to the callsite.\n * @param {string} message - The message to print\n */\nexport function warnOnce(key, message) {\n if (process.env.NODE_ENV !== 'production') {\n if (warnedKeys[key]) {\n return;\n }\n console.warn(message);\n warnedKeys[key] = 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\n'use strict';\n\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 */\nexport function elementsThatOverlapOffsets(offsets, props, getFrameMetrics, zoomScale) {\n if (zoomScale === void 0) {\n zoomScale = 1;\n }\n var itemCount = props.getItemCount(props.data);\n var result = [];\n for (var offsetIndex = 0; offsetIndex < offsets.length; offsetIndex++) {\n var currentOffset = offsets[offsetIndex];\n var left = 0;\n var right = itemCount - 1;\n while (left <= right) {\n // eslint-disable-next-line no-bitwise\n var mid = left + (right - left >>> 1);\n var frame = getFrameMetrics(mid, props);\n var scaledOffsetStart = frame.offset * zoomScale;\n var scaledOffsetEnd = (frame.offset + frame.length) * zoomScale;\n\n // We want the first frame that contains the offset, with inclusive bounds. Thus, for the\n // first frame the scaledOffsetStart is inclusive, while for other frames it is exclusive.\n if (mid === 0 && currentOffset < scaledOffsetStart || mid !== 0 && currentOffset <= scaledOffsetStart) {\n right = mid - 1;\n } else if (currentOffset > scaledOffsetEnd) {\n left = mid + 1;\n } else {\n result[offsetIndex] = mid;\n break;\n }\n }\n }\n return result;\n}\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 */\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/**\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 */\nexport function computeWindowedRenderLimits(props, maxToRenderPerBatch, windowSize, prev, getFrameMetricsApprox, scrollMetrics) {\n var itemCount = props.getItemCount(props.data);\n if (itemCount === 0) {\n return {\n first: 0,\n last: -1\n };\n }\n var offset = scrollMetrics.offset,\n velocity = scrollMetrics.velocity,\n visibleLength = scrollMetrics.visibleLength,\n _scrollMetrics$zoomSc = scrollMetrics.zoomScale,\n zoomScale = _scrollMetrics$zoomSc === void 0 ? 1 : _scrollMetrics$zoomSc;\n\n // 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 var visibleBegin = Math.max(0, offset);\n var visibleEnd = visibleBegin + visibleLength;\n var overscanLength = (windowSize - 1) * visibleLength;\n\n // Considering velocity seems to introduce more churn than it's worth.\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, props).offset * zoomScale;\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 }\n\n // Find the indices that correspond to the items at the render boundaries we're targeting.\n var _elementsThatOverlapO = elementsThatOverlapOffsets([overscanBegin, visibleBegin, visibleEnd, overscanEnd], props, getFrameMetricsApprox, zoomScale),\n overscanFirst = _elementsThatOverlapO[0],\n first = _elementsThatOverlapO[1],\n last = _elementsThatOverlapO[2],\n overscanLast = _elementsThatOverlapO[3];\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 };\n\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 var newCellCount = newRangeCount(prev, visible);\n while (true) {\n if (first <= overscanFirst && last >= overscanLast) {\n // If we fill the entire overscan range, we're done.\n break;\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 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 if (firstShouldIncrement && !(fillPreference === 'after' && lastShouldIncrement && lastWillAddMore)) {\n if (firstWillAddMore) {\n newCellCount++;\n }\n first--;\n }\n if (lastShouldIncrement && !(fillPreference === 'before' && firstShouldIncrement && firstWillAddMore)) {\n if (lastWillAddMore) {\n newCellCount++;\n }\n last++;\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 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 if (typeof item === 'object' && (item == null ? void 0 : item.id) != null) {\n return item.id;\n }\n return String(index);\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"colors\", \"enabled\", \"onRefresh\", \"progressBackgroundColor\", \"progressViewOffset\", \"refreshing\", \"size\", \"tintColor\", \"title\", \"titleColor\"];\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 */\n\nimport View from '../View';\nimport React from 'react';\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 return /*#__PURE__*/React.createElement(View, rest);\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 * @format\n * \n */\n\n'use strict';\n\nimport InteractionManager from '../../../exports/InteractionManager';\n\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 */\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 dispose(options) {\n if (options === void 0) {\n options = {\n abort: false\n };\n }\n if (this._taskHandle) {\n this._taskHandle.cancel();\n if (!options.abort) {\n this._callback();\n }\n this._taskHandle = null;\n }\n }\n schedule() {\n if (this._taskHandle) {\n return;\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 this._callback();\n });\n }, this._delay);\n this._taskHandle = {\n cancel: () => clearTimeout(timeoutHandle)\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 * @format\n * \n */\n\n'use strict';\n\nfunction clamp(min, value, max) {\n if (value < min) {\n return min;\n }\n if (value > max) {\n return max;\n }\n return value;\n}\nexport default clamp;","/**\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\n'use strict';\n\n/**\n * Intentional info-level logging for clear separation from ad-hoc console debug logging.\n */\nfunction infoLog() {\n return console.log(...arguments);\n}\nexport default infoLog;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\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\nimport invariant from 'fbjs/lib/invariant';\nexport class CellRenderMask {\n constructor(numCells) {\n invariant(numCells >= 0, 'CellRenderMask must contain a non-negative number os cells');\n this._numCells = numCells;\n if (numCells === 0) {\n this._regions = [];\n } else {\n this._regions = [{\n first: 0,\n last: numCells - 1,\n isSpacer: true\n }];\n }\n }\n enumerateRegions() {\n return this._regions;\n }\n addCells(cells) {\n invariant(cells.first >= 0 && cells.first < this._numCells && cells.last >= -1 && cells.last < this._numCells && cells.last >= cells.first - 1, 'CellRenderMask.addCells called with invalid cell range');\n\n // VirtualizedList uses inclusive ranges, where zero-count states are\n // possible. E.g. [0, -1] for no cells, starting at 0.\n if (cells.last < cells.first) {\n return;\n }\n var _this$_findRegion = this._findRegion(cells.first),\n firstIntersect = _this$_findRegion[0],\n firstIntersectIdx = _this$_findRegion[1];\n var _this$_findRegion2 = this._findRegion(cells.last),\n lastIntersect = _this$_findRegion2[0],\n lastIntersectIdx = _this$_findRegion2[1];\n\n // Fast-path if the cells to add are already all present in the mask. We\n // will otherwise need to do some mutation.\n if (firstIntersectIdx === lastIntersectIdx && !firstIntersect.isSpacer) {\n return;\n }\n\n // We need to replace the existing covered regions with 1-3 new regions\n // depending whether we need to split spacers out of overlapping regions.\n var newLeadRegion = [];\n var newTailRegion = [];\n var newMainRegion = _objectSpread(_objectSpread({}, cells), {}, {\n isSpacer: false\n });\n if (firstIntersect.first < newMainRegion.first) {\n if (firstIntersect.isSpacer) {\n newLeadRegion.push({\n first: firstIntersect.first,\n last: newMainRegion.first - 1,\n isSpacer: true\n });\n } else {\n newMainRegion.first = firstIntersect.first;\n }\n }\n if (lastIntersect.last > newMainRegion.last) {\n if (lastIntersect.isSpacer) {\n newTailRegion.push({\n first: newMainRegion.last + 1,\n last: lastIntersect.last,\n isSpacer: true\n });\n } else {\n newMainRegion.last = lastIntersect.last;\n }\n }\n var replacementRegions = [...newLeadRegion, newMainRegion, ...newTailRegion];\n var numRegionsToDelete = lastIntersectIdx - firstIntersectIdx + 1;\n this._regions.splice(firstIntersectIdx, numRegionsToDelete, ...replacementRegions);\n }\n numCells() {\n return this._numCells;\n }\n equals(other) {\n return this._numCells === other._numCells && this._regions.length === other._regions.length && this._regions.every((region, i) => region.first === other._regions[i].first && region.last === other._regions[i].last && region.isSpacer === other._regions[i].isSpacer);\n }\n _findRegion(cellIdx) {\n var firstIdx = 0;\n var lastIdx = this._regions.length - 1;\n while (firstIdx <= lastIdx) {\n var middleIdx = Math.floor((firstIdx + lastIdx) / 2);\n var middleRegion = this._regions[middleIdx];\n if (cellIdx >= middleRegion.first && cellIdx <= middleRegion.last) {\n return [middleRegion, middleIdx];\n } else if (cellIdx < middleRegion.first) {\n lastIdx = middleIdx - 1;\n } else if (cellIdx > middleRegion.last) {\n firstIdx = middleIdx + 1;\n }\n }\n invariant(false, \"A region was not found containing cellIdx \" + cellIdx);\n }\n}","import _createForOfIteratorHelperLoose from \"@babel/runtime/helpers/createForOfIteratorHelperLoose\";\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\nimport invariant from 'fbjs/lib/invariant';\nexport default class ChildListCollection {\n constructor() {\n this._cellKeyToChildren = new Map();\n this._childrenToCellKey = new Map();\n }\n add(list, cellKey) {\n var _this$_cellKeyToChild;\n invariant(!this._childrenToCellKey.has(list), 'Trying to add already present child list');\n var cellLists = (_this$_cellKeyToChild = this._cellKeyToChildren.get(cellKey)) !== null && _this$_cellKeyToChild !== void 0 ? _this$_cellKeyToChild : new Set();\n cellLists.add(list);\n this._cellKeyToChildren.set(cellKey, cellLists);\n this._childrenToCellKey.set(list, cellKey);\n }\n remove(list) {\n var cellKey = this._childrenToCellKey.get(list);\n invariant(cellKey != null, 'Trying to remove non-present child list');\n this._childrenToCellKey.delete(list);\n var cellLists = this._cellKeyToChildren.get(cellKey);\n invariant(cellLists, '_cellKeyToChildren should contain cellKey');\n cellLists.delete(list);\n if (cellLists.size === 0) {\n this._cellKeyToChildren.delete(cellKey);\n }\n }\n forEach(fn) {\n for (var _iterator = _createForOfIteratorHelperLoose(this._cellKeyToChildren.values()), _step; !(_step = _iterator()).done;) {\n var listSet = _step.value;\n for (var _iterator2 = _createForOfIteratorHelperLoose(listSet), _step2; !(_step2 = _iterator2()).done;) {\n var list = _step2.value;\n fn(list);\n }\n }\n }\n forEachInCell(cellKey, fn) {\n var _this$_cellKeyToChild2;\n var listSet = (_this$_cellKeyToChild2 = this._cellKeyToChildren.get(cellKey)) !== null && _this$_cellKeyToChild2 !== void 0 ? _this$_cellKeyToChild2 : [];\n for (var _iterator3 = _createForOfIteratorHelperLoose(listSet), _step3; !(_step3 = _iterator3()).done;) {\n var list = _step3.value;\n fn(list);\n }\n }\n anyInCell(cellKey, fn) {\n var _this$_cellKeyToChild3;\n var listSet = (_this$_cellKeyToChild3 = this._cellKeyToChildren.get(cellKey)) !== null && _this$_cellKeyToChild3 !== void 0 ? _this$_cellKeyToChild3 : [];\n for (var _iterator4 = _createForOfIteratorHelperLoose(listSet), _step4; !(_step4 = _iterator4()).done;) {\n var list = _step4.value;\n if (fn(list)) {\n return true;\n }\n }\n return false;\n }\n size() {\n return this._childrenToCellKey.size;\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\n'use strict';\n\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\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}\nvar DEBUG = false;\nvar _listeners = [];\nvar _minSampleCount = 10;\nvar _sampleRate = DEBUG ? 1 : null;\n\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 */\nclass FillRateHelper {\n static addListener(callback) {\n if (_sampleRate === null) {\n console.warn('Call `FillRateHelper.setSampleRate` before `addListener`.');\n }\n _listeners.push(callback);\n return {\n remove: () => {\n _listeners = _listeners.filter(listener => callback !== listener);\n }\n };\n }\n static setSampleRate(sampleRate) {\n _sampleRate = sampleRate;\n }\n static setMinSampleCount(minSampleCount) {\n _minSampleCount = minSampleCount;\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 this._resetData();\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 deactivateAndFlush() {\n if (!this._enabled) {\n return;\n }\n var start = this._samplesStartTime; // const for flow\n if (start == null) {\n DEBUG && console.debug('FillRateHelper: bail on deactivate with no start time');\n return;\n }\n if (this._info.sample_count < _minSampleCount) {\n // Don't bother with under-sampled events.\n this._resetData();\n return;\n }\n var total_time_spent = global.performance.now() - start;\n var info = _objectSpread(_objectSpread({}, this._info), {}, {\n total_time_spent\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 for (var key in derived) {\n // $FlowFixMe[prop-missing]\n derived[key] = Math.round(1000 * derived[key]) / 1000;\n }\n console.debug('FillRateHelper deactivateAndFlush: ', {\n derived,\n info\n });\n }\n _listeners.forEach(listener => listener(info));\n this._resetData();\n }\n computeBlankness(props, cellsAroundViewport, scrollMetrics) {\n if (!this._enabled || props.getItemCount(props.data) === 0 || cellsAroundViewport.last < cellsAroundViewport.first || this._samplesStartTime == null) {\n return 0;\n }\n var dOffset = scrollMetrics.dOffset,\n offset = scrollMetrics.offset,\n velocity = scrollMetrics.velocity,\n visibleLength = scrollMetrics.visibleLength;\n\n // Denominator metrics that we track for all events - most of the time there is no blankness and\n // we want to capture that.\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\n // Whether blank now or not, record the elapsed time blank if we were blank last time.\n var now = global.performance.now();\n if (this._anyBlankStartTime != null) {\n this._info.any_blank_ms += now - this._anyBlankStartTime;\n }\n this._anyBlankStartTime = null;\n if (this._mostlyBlankStartTime != null) {\n this._info.mostly_blank_ms += now - this._mostlyBlankStartTime;\n }\n this._mostlyBlankStartTime = null;\n var blankTop = 0;\n var first = cellsAroundViewport.first;\n var firstFrame = this._getFrameMetrics(first, props);\n while (first <= cellsAroundViewport.last && (!firstFrame || !firstFrame.inLayout)) {\n firstFrame = this._getFrameMetrics(first, props);\n first++;\n }\n // Only count blankTop if we aren't rendering the first item, otherwise we will count the header\n // as blank.\n if (firstFrame && first > 0) {\n blankTop = Math.min(visibleLength, Math.max(0, firstFrame.offset - offset));\n }\n var blankBottom = 0;\n var last = cellsAroundViewport.last;\n var lastFrame = this._getFrameMetrics(last, props);\n while (last >= cellsAroundViewport.first && (!lastFrame || !lastFrame.inLayout)) {\n lastFrame = this._getFrameMetrics(last, props);\n last--;\n }\n // Only count blankBottom if we aren't rendering the last item, otherwise we will count the\n // footer as blank.\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 var pixels_blank = Math.round(blankTop + blankBottom);\n var blankness = pixels_blank / visibleLength;\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 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 return blankness;\n }\n enabled() {\n return this._enabled;\n }\n _resetData() {\n this._anyBlankStartTime = null;\n this._info = new Info();\n this._mostlyBlankStartTime = null;\n this._samplesStartTime = null;\n }\n}\nexport default FillRateHelper;","/**\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\nimport invariant from 'fbjs/lib/invariant';\nimport * as React from 'react';\n\n/**\n * `setState` is called asynchronously, and should not rely on the value of\n * `this.props` or `this.state`:\n * https://reactjs.org/docs/state-and-lifecycle.html#state-updates-may-be-asynchronous\n *\n * SafePureComponent adds runtime enforcement, to catch cases where these\n * variables are read in a state updater function, instead of the ones passed\n * in.\n */\nexport default class StateSafePureComponent extends React.PureComponent {\n constructor(props) {\n super(props);\n this._inAsyncStateUpdate = false;\n this._installSetStateHooks();\n }\n setState(partialState, callback) {\n if (typeof partialState === 'function') {\n super.setState((state, props) => {\n this._inAsyncStateUpdate = true;\n var ret;\n try {\n ret = partialState(state, props);\n } catch (err) {\n throw err;\n } finally {\n this._inAsyncStateUpdate = false;\n }\n return ret;\n }, callback);\n } else {\n super.setState(partialState, callback);\n }\n }\n _installSetStateHooks() {\n var that = this;\n var props = this.props,\n state = this.state;\n Object.defineProperty(this, 'props', {\n get() {\n invariant(!that._inAsyncStateUpdate, '\"this.props\" should not be accessed during state updates');\n return props;\n },\n set(newProps) {\n props = newProps;\n }\n });\n Object.defineProperty(this, 'state', {\n get() {\n invariant(!that._inAsyncStateUpdate, '\"this.state\" should not be acceessed during state updates');\n return state;\n },\n set(newState) {\n state = newState;\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 * @format\n */\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 * 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 this._hasInteracted = false;\n this._timers = new Set();\n this._viewableIndices = [];\n this._viewableItems = new Map();\n this._config = config;\n }\n\n /**\n * Cleanup, e.g. on unmount. Clears any pending timers.\n */\n dispose() {\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 see\n * the error delete this comment and run Flow. */\n this._timers.forEach(clearTimeout);\n }\n\n /**\n * Determines which items are viewable based on the current metrics and config.\n */\n computeViewableItems(props, scrollOffset, viewportHeight, getFrameMetrics,\n // Optional optimization to reduce the scan size\n renderRange) {\n var itemCount = props.getItemCount(props.data);\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 if (itemCount === 0) {\n return viewableIndices;\n }\n var firstVisible = -1;\n var _ref = renderRange || {\n first: 0,\n last: itemCount - 1\n },\n first = _ref.first,\n last = _ref.last;\n if (last >= itemCount) {\n console.warn('Invalid render range computing viewability ' + JSON.stringify({\n renderRange,\n itemCount\n }));\n return [];\n }\n for (var idx = first; idx <= last; idx++) {\n var metrics = getFrameMetrics(idx, props);\n if (!metrics) {\n continue;\n }\n var top = metrics.offset - scrollOffset;\n var bottom = top + metrics.length;\n if (top < viewportHeight && bottom > 0) {\n firstVisible = idx;\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 return viewableIndices;\n }\n\n /**\n * Figures out which items are viewable and how that has changed from before and calls\n * `onViewableItemsChanged` as appropriate.\n */\n onUpdate(props, scrollOffset, viewportHeight, getFrameMetrics, createViewToken, onViewableItemsChanged,\n // Optional optimization to reduce the scan size\n renderRange) {\n var itemCount = props.getItemCount(props.data);\n if (this._config.waitForInteraction && !this._hasInteracted || itemCount === 0 || !getFrameMetrics(0, props)) {\n return;\n }\n var viewableIndices = [];\n if (itemCount) {\n viewableIndices = this.computeViewableItems(props, scrollOffset, viewportHeight, getFrameMetrics, renderRange);\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 this._viewableIndices = viewableIndices;\n if (this._config.minimumViewTime) {\n var handle = setTimeout(() => {\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 this._timers.delete(handle);\n this._onUpdateSync(props, viewableIndices, onViewableItemsChanged, createViewToken);\n }, this._config.minimumViewTime);\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 see\n * the error delete this comment and run Flow. */\n this._timers.add(handle);\n } else {\n this._onUpdateSync(props, viewableIndices, onViewableItemsChanged, createViewToken);\n }\n }\n\n /**\n * clean-up cached _viewableIndices to evaluate changed items on next update\n */\n resetViewableIndices() {\n this._viewableIndices = [];\n }\n\n /**\n * Records that an interaction has happened even if there has been no scroll.\n */\n recordInteraction() {\n this._hasInteracted = true;\n }\n _onUpdateSync(props, viewableIndicesToCheck, onViewableItemsChanged, 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, props);\n return [viewable.key, viewable];\n }));\n var changed = [];\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 if (!prevItems.has(key)) {\n changed.push(viewable);\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 if (!nextItems.has(_key)) {\n changed.push(_objectSpread(_objectSpread({}, _viewable), {}, {\n isViewable: false\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}\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 var percent = 100 * (viewAreaMode ? pixels / viewportHeight : pixels / itemLength);\n return percent >= viewablePercentThreshold;\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}\nfunction _isEntirelyVisible(top, bottom, viewportHeight) {\n return top >= 0 && bottom <= viewportHeight && bottom > top;\n}\nexport default ViewabilityHelper;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\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\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nvar __DEV__ = process.env.NODE_ENV !== 'production';\nexport var VirtualizedListContext = /*#__PURE__*/React.createContext(null);\nif (__DEV__) {\n VirtualizedListContext.displayName = 'VirtualizedListContext';\n}\n\n/**\n * Resets the context. Intended for use by portal-like components (e.g. Modal).\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/**\n * Sets the context with memoization. Intended to be used by `VirtualizedList`.\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 registerAsNestedChild: value.registerAsNestedChild,\n unregisterAsNestedChild: value.unregisterAsNestedChild\n }), [value.getScrollMetrics, value.horizontal, value.getOutermostParentListRef, value.registerAsNestedChild, value.unregisterAsNestedChild]);\n return /*#__PURE__*/React.createElement(VirtualizedListContext.Provider, {\n value: context\n }, children);\n}\n\n/**\n * Sets the `cellKey`. Intended to be used by `VirtualizedList` for each cell.\n */\nexport function VirtualizedListCellContextProvider(_ref3) {\n var cellKey = _ref3.cellKey,\n children = _ref3.children;\n // Avoid setting a newly created context object if the values are identical.\n var currContext = useContext(VirtualizedListContext);\n var context = useMemo(() => currContext == null ? null : _objectSpread(_objectSpread({}, currContext), {}, {\n cellKey\n }), [currContext, cellKey]);\n return /*#__PURE__*/React.createElement(VirtualizedListContext.Provider, {\n value: context\n }, children);\n}","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\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\nimport View from '../../../exports/View';\nimport StyleSheet from '../../../exports/StyleSheet';\nimport { VirtualizedListCellContextProvider } from './VirtualizedListContext.js';\nimport invariant from 'fbjs/lib/invariant';\nimport * as React from 'react';\nexport default class 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$props = this.props,\n cellKey = _this$props.cellKey,\n prevCellKey = _this$props.prevCellKey;\n this.props.onUpdateSeparators([cellKey, prevCellKey], {\n highlighted: true\n });\n },\n unhighlight: () => {\n var _this$props2 = this.props,\n cellKey = _this$props2.cellKey,\n prevCellKey = _this$props2.prevCellKey;\n this.props.onUpdateSeparators([cellKey, prevCellKey], {\n highlighted: false\n });\n },\n updateProps: (select, newProps) => {\n var _this$props3 = this.props,\n cellKey = _this$props3.cellKey,\n prevCellKey = _this$props3.prevCellKey;\n this.props.onUpdateSeparators([select === 'leading' ? prevCellKey : cellKey], newProps);\n }\n };\n this._onLayout = nativeEvent => {\n this.props.onCellLayout && this.props.onCellLayout(nativeEvent, this.props.cellKey, this.props.index);\n };\n }\n static getDerivedStateFromProps(props, prevState) {\n return {\n separatorProps: _objectSpread(_objectSpread({}, prevState.separatorProps), {}, {\n leadingItem: props.item\n })\n };\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 // $FlowFixMe[missing-local-annot]\n updateSeparatorProps(newProps) {\n this.setState(state => ({\n separatorProps: _objectSpread(_objectSpread({}, state.separatorProps), newProps)\n }));\n }\n componentWillUnmount() {\n this.props.onUnmount(this.props.cellKey);\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 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 /* $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 if (renderItem) {\n return renderItem({\n item,\n index,\n separators: this._separators\n });\n }\n invariant(false, 'VirtualizedList: Either ListItemComponent or renderItem props are required but none were found.');\n }\n render() {\n var _this$props4 = this.props,\n CellRendererComponent = _this$props4.CellRendererComponent,\n ItemSeparatorComponent = _this$props4.ItemSeparatorComponent,\n ListItemComponent = _this$props4.ListItemComponent,\n cellKey = _this$props4.cellKey,\n horizontal = _this$props4.horizontal,\n item = _this$props4.item,\n index = _this$props4.index,\n inversionStyle = _this$props4.inversionStyle,\n onCellFocusCapture = _this$props4.onCellFocusCapture,\n onCellLayout = _this$props4.onCellLayout,\n renderItem = _this$props4.renderItem;\n var element = this._renderElement(renderItem, ListItemComponent, item, index);\n\n // NOTE: that when this is a sticky header, `onLayout` will get automatically extracted and\n // called explicitly by `ScrollViewStickyHeader`.\n var itemSeparator = /*#__PURE__*/React.isValidElement(ItemSeparatorComponent) ?\n // $FlowFixMe[incompatible-type]\n ItemSeparatorComponent :\n // $FlowFixMe[incompatible-type]\n 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 ? /*#__PURE__*/React.createElement(View, _extends({\n style: cellStyle,\n onFocusCapture: onCellFocusCapture\n }, onCellLayout && {\n onLayout: this._onLayout\n }), element, itemSeparator) : /*#__PURE__*/React.createElement(CellRendererComponent, _extends({\n cellKey: cellKey,\n index: index,\n item: item,\n style: cellStyle,\n onFocusCapture: onCellFocusCapture\n }, onCellLayout && {\n onLayout: this._onLayout\n }), element, itemSeparator);\n return /*#__PURE__*/React.createElement(VirtualizedListCellContextProvider, {\n cellKey: this.props.cellKey\n }, result);\n }\n}\nvar styles = StyleSheet.create({\n row: {\n flexDirection: 'row'\n },\n rowReverse: {\n flexDirection: 'row-reverse'\n },\n columnReverse: {\n flexDirection: 'column-reverse'\n }\n});","import _createForOfIteratorHelperLoose from \"@babel/runtime/helpers/createForOfIteratorHelperLoose\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\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\nimport RefreshControl from '../../../exports/RefreshControl';\nimport ScrollView from '../../../exports/ScrollView';\nimport View from '../../../exports/View';\nimport StyleSheet from '../../../exports/StyleSheet';\nimport findNodeHandle from '../../../exports/findNodeHandle';\nimport Batchinator from '../Batchinator';\nimport clamp from '../Utilities/clamp';\nimport infoLog from '../infoLog';\nimport { CellRenderMask } from './CellRenderMask';\nimport ChildListCollection from './ChildListCollection';\nimport FillRateHelper from '../FillRateHelper';\nimport StateSafePureComponent from './StateSafePureComponent';\nimport ViewabilityHelper from '../ViewabilityHelper';\nimport CellRenderer from './VirtualizedListCellRenderer';\nimport { VirtualizedListCellContextProvider, VirtualizedListContext, VirtualizedListContextProvider } from './VirtualizedListContext.js';\nimport { computeWindowedRenderLimits, keyExtractor as defaultKeyExtractor } from '../VirtualizeUtils';\nimport invariant from 'fbjs/lib/invariant';\nimport nullthrows from 'nullthrows';\nimport * as React from 'react';\nvar __DEV__ = process.env.NODE_ENV !== 'production';\nvar ON_EDGE_REACHED_EPSILON = 0.001;\nvar _usedIndexForKey = false;\nvar _keylessItemComponentName = '';\n/**\n * Default Props Helper Functions\n * Use the following helper functions for default values\n */ // horizontalOrDefault(this.props.horizontal)\nfunction horizontalOrDefault(horizontal) {\n return horizontal !== null && horizontal !== void 0 ? horizontal : false;\n}\n\n// initialNumToRenderOrDefault(this.props.initialNumToRender)\nfunction initialNumToRenderOrDefault(initialNumToRender) {\n return initialNumToRender !== null && initialNumToRender !== void 0 ? initialNumToRender : 10;\n}\n\n// maxToRenderPerBatchOrDefault(this.props.maxToRenderPerBatch)\nfunction maxToRenderPerBatchOrDefault(maxToRenderPerBatch) {\n return maxToRenderPerBatch !== null && maxToRenderPerBatch !== void 0 ? maxToRenderPerBatch : 10;\n}\n\n// onStartReachedThresholdOrDefault(this.props.onStartReachedThreshold)\nfunction onStartReachedThresholdOrDefault(onStartReachedThreshold) {\n return onStartReachedThreshold !== null && onStartReachedThreshold !== void 0 ? onStartReachedThreshold : 2;\n}\n\n// onEndReachedThresholdOrDefault(this.props.onEndReachedThreshold)\nfunction onEndReachedThresholdOrDefault(onEndReachedThreshold) {\n return onEndReachedThreshold !== null && onEndReachedThreshold !== void 0 ? onEndReachedThreshold : 2;\n}\n\n// getScrollingThreshold(visibleLength, onEndReachedThreshold)\nfunction getScrollingThreshold(threshold, visibleLength) {\n return threshold * visibleLength / 2;\n}\n\n// scrollEventThrottleOrDefault(this.props.scrollEventThrottle)\nfunction scrollEventThrottleOrDefault(scrollEventThrottle) {\n return scrollEventThrottle !== null && scrollEventThrottle !== void 0 ? scrollEventThrottle : 50;\n}\n\n// windowSizeOrDefault(this.props.windowSize)\nfunction windowSizeOrDefault(windowSize) {\n return windowSize !== null && windowSize !== void 0 ? windowSize : 21;\n}\nfunction findLastWhere(arr, predicate) {\n for (var i = arr.length - 1; i >= 0; i--) {\n if (predicate(arr[i])) {\n return arr[i];\n }\n }\n return null;\n}\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 */\nclass VirtualizedList extends StateSafePureComponent {\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 if (veryLast < 0) {\n return;\n }\n var frame = this.__getFrameMetricsApprox(veryLast, this.props);\n var offset = Math.max(0, frame.offset + frame.length + this._footerLength - this._scrollMetrics.visibleLength);\n if (this._scrollRef == null) {\n return;\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 this._scrollRef.scrollTo(horizontalOrDefault(this.props.horizontal) ? {\n x: offset,\n animated\n } : {\n y: offset,\n animated\n });\n }\n\n // scrollToIndex may be janky without getItemLayout prop\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 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 var frame = this.__getFrameMetricsApprox(Math.floor(index), this.props);\n var offset = Math.max(0, this._getOffsetApprox(index, this.props) - (viewPosition || 0) * (this._scrollMetrics.visibleLength - frame.length)) - (viewOffset || 0);\n if (this._scrollRef == null) {\n return;\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 this._scrollRef.scrollTo(horizontal ? {\n x: offset,\n animated\n } : {\n y: offset,\n animated\n });\n }\n\n // scrollToItem may be janky without getItemLayout prop. Required linear scan through items -\n // use scrollToIndex instead if possible.\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 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 /**\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 scrollToOffset(params) {\n var animated = params.animated,\n offset = params.offset;\n if (this._scrollRef == null) {\n return;\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 this._scrollRef.scrollTo(horizontalOrDefault(this.props.horizontal) ? {\n x: offset,\n animated\n } : {\n y: offset,\n animated\n });\n }\n recordInteraction() {\n this._nestedChildLists.forEach(childList => {\n childList.recordInteraction();\n });\n this._viewabilityTuples.forEach(t => {\n t.viewabilityHelper.recordInteraction();\n });\n this._updateViewableItems(this.props, this.state.cellsAroundViewport);\n }\n flashScrollIndicators() {\n if (this._scrollRef == null) {\n return;\n }\n this._scrollRef.flashScrollIndicators();\n }\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 getScrollResponder() {\n if (this._scrollRef && this._scrollRef.getScrollResponder) {\n return this._scrollRef.getScrollResponder();\n }\n }\n getScrollableNode() {\n if (this._scrollRef && this._scrollRef.getScrollableNode) {\n return this._scrollRef.getScrollableNode();\n } else {\n return this._scrollRef;\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 _getCellKey() {\n var _this$context;\n return ((_this$context = this.context) == null ? void 0 : _this$context.cellKey) || 'rootList';\n }\n\n // $FlowFixMe[missing-local-annot]\n\n hasMore() {\n return this._hasMore;\n }\n\n // $FlowFixMe[missing-local-annot]\n\n // REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.\n\n constructor(_props) {\n var _this$props$updateCel;\n super(_props);\n this._getScrollMetrics = () => {\n return this._scrollMetrics;\n };\n this._getOutermostParentListRef = () => {\n if (this._isNestedWithSameOrientation()) {\n return this.context.getOutermostParentListRef();\n } else {\n return this;\n }\n };\n this._registerAsNestedChild = childList => {\n this._nestedChildLists.add(childList.ref, childList.cellKey);\n if (this._hasInteracted) {\n childList.ref.recordInteraction();\n }\n };\n this._unregisterAsNestedChild = childList => {\n this._nestedChildLists.remove(childList.ref);\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 this._getSpacerKey = isVertical => isVertical ? 'height' : 'width';\n this._averageCellLength = 0;\n this._cellRefs = {};\n this._frames = {};\n this._footerLength = 0;\n this._hasTriggeredInitialScrollToIndex = 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._lastFocusedCellKey = null;\n this._nestedChildLists = new ChildListCollection();\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 zoomScale: 1\n };\n this._scrollRef = null;\n this._sentStartForContentLength = 0;\n this._sentEndForContentLength = 0;\n this._totalCellLength = 0;\n this._totalCellsMeasured = 0;\n this._viewabilityTuples = [];\n this._captureScrollRef = ref => {\n this._scrollRef = ref;\n };\n this._defaultRenderScrollComponent = props => {\n var onRefresh = props.onRefresh;\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 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 // $FlowFixMe[incompatible-use]\n React.createElement(ScrollView, _extends({}, props, {\n refreshControl: props.refreshControl == null ? /*#__PURE__*/React.createElement(RefreshControl\n // $FlowFixMe[incompatible-type]\n , {\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 // $FlowFixMe[incompatible-use]\n return /*#__PURE__*/React.createElement(ScrollView, props);\n }\n };\n this._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 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 this._scheduleCellsToRenderUpdate();\n } else {\n this._frames[cellKey].inLayout = true;\n }\n this._triggerRemeasureForChildListsInCell(cellKey);\n this._computeBlankness();\n this._updateViewableItems(this.props, this.state.cellsAroundViewport);\n };\n this._onCellUnmount = cellKey => {\n delete this._cellRefs[cellKey];\n var curr = this._frames[cellKey];\n if (curr) {\n this._frames[cellKey] = _objectSpread(_objectSpread({}, curr), {}, {\n inLayout: false\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 this.props.onLayout && this.props.onLayout(e);\n this._scheduleCellsToRenderUpdate();\n this._maybeCallOnEdgeReached();\n };\n this._onLayoutEmpty = e => {\n this.props.onLayout && this.props.onLayout(e);\n };\n this._onLayoutFooter = e => {\n this._triggerRemeasureForChildListsInCell(this._getFooterCellKey());\n this._footerLength = this._selectLength(e.nativeEvent.layout);\n };\n this._onLayoutHeader = e => {\n this._headerLength = this._selectLength(e.nativeEvent.layout);\n };\n this._onContentSizeChange = (width, height) => {\n if (width > 0 && height > 0 && this.props.initialScrollIndex != null && this.props.initialScrollIndex > 0 && !this._hasTriggeredInitialScrollToIndex) {\n if (this.props.contentOffset == null) {\n if (this.props.initialScrollIndex < this.props.getItemCount(this.props.data)) {\n this.scrollToIndex({\n animated: false,\n index: nullthrows(this.props.initialScrollIndex)\n });\n } else {\n this.scrollToEnd({\n animated: false\n });\n }\n }\n this._hasTriggeredInitialScrollToIndex = true;\n }\n if (this.props.onContentSizeChange) {\n this.props.onContentSizeChange(width, height);\n }\n this._scrollMetrics.contentLength = this._selectLength({\n height,\n width\n });\n this._scheduleCellsToRenderUpdate();\n this._maybeCallOnEdgeReached();\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;\n // Child's visible length is the same as its parent's\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 this._onScroll = e => {\n this._nestedChildLists.forEach(childList => {\n childList._onScroll(e);\n });\n if (this.props.onScroll) {\n this.props.onScroll(e);\n }\n var timestamp = e.timeStamp;\n var visibleLength = this._selectLength(e.nativeEvent.layoutMeasurement);\n var contentLength = this._selectLength(e.nativeEvent.contentSize);\n var offset = this._selectOffset(e.nativeEvent.contentOffset);\n var dOffset = offset - this._scrollMetrics.offset;\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 var _this$_convertParentS = this._convertParentScrollMetrics({\n visibleLength,\n offset\n });\n visibleLength = _this$_convertParentS.visibleLength;\n contentLength = _this$_convertParentS.contentLength;\n offset = _this$_convertParentS.offset;\n dOffset = _this$_convertParentS.dOffset;\n }\n var dt = this._scrollMetrics.timestamp ? Math.max(1, timestamp - this._scrollMetrics.timestamp) : 1;\n var velocity = dOffset / dt;\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 // For invalid negative values (w/ RTL), set this to 1.\n var zoomScale = e.nativeEvent.zoomScale < 0 ? 1 : e.nativeEvent.zoomScale;\n this._scrollMetrics = {\n contentLength,\n dt,\n dOffset,\n offset,\n timestamp,\n velocity,\n visibleLength,\n zoomScale\n };\n this._updateViewableItems(this.props, this.state.cellsAroundViewport);\n if (!this.props) {\n return;\n }\n this._maybeCallOnEdgeReached();\n if (velocity !== 0) {\n this._fillRateHelper.activate();\n }\n this._computeBlankness();\n this._scheduleCellsToRenderUpdate();\n };\n this._onScrollBeginDrag = e => {\n this._nestedChildLists.forEach(childList => {\n childList._onScrollBeginDrag(e);\n });\n this._viewabilityTuples.forEach(tuple => {\n tuple.viewabilityHelper.recordInteraction();\n });\n this._hasInteracted = true;\n this.props.onScrollBeginDrag && this.props.onScrollBeginDrag(e);\n };\n this._onScrollEndDrag = e => {\n this._nestedChildLists.forEach(childList => {\n childList._onScrollEndDrag(e);\n });\n var velocity = e.nativeEvent.velocity;\n if (velocity) {\n this._scrollMetrics.velocity = this._selectOffset(velocity);\n }\n this._computeBlankness();\n this.props.onScrollEndDrag && this.props.onScrollEndDrag(e);\n };\n this._onMomentumScrollBegin = e => {\n this._nestedChildLists.forEach(childList => {\n childList._onMomentumScrollBegin(e);\n });\n this.props.onMomentumScrollBegin && this.props.onMomentumScrollBegin(e);\n };\n this._onMomentumScrollEnd = e => {\n this._nestedChildLists.forEach(childList => {\n childList._onMomentumScrollEnd(e);\n });\n this._scrollMetrics.velocity = 0;\n this._computeBlankness();\n this.props.onMomentumScrollEnd && this.props.onMomentumScrollEnd(e);\n };\n this._updateCellsToRender = () => {\n this._updateViewableItems(this.props, this.state.cellsAroundViewport);\n this.setState((state, props) => {\n var cellsAroundViewport = this._adjustCellsAroundViewport(props, state.cellsAroundViewport);\n var renderMask = VirtualizedList._createRenderMask(props, cellsAroundViewport, this._getNonViewportRenderRegions(props));\n if (cellsAroundViewport.first === state.cellsAroundViewport.first && cellsAroundViewport.last === state.cellsAroundViewport.last && renderMask.equals(state.renderMask)) {\n return null;\n }\n return {\n cellsAroundViewport,\n renderMask\n };\n });\n };\n this._createViewToken = (index, isViewable, props\n // $FlowFixMe[missing-local-annot]\n ) => {\n var data = props.data,\n getItem = props.getItem;\n var item = getItem(data, index);\n return {\n index,\n item,\n key: this._keyExtractor(item, index, props),\n isViewable\n };\n };\n this._getOffsetApprox = (index, props) => {\n if (Number.isInteger(index)) {\n return this.__getFrameMetricsApprox(index, props).offset;\n } else {\n var frameMetrics = this.__getFrameMetricsApprox(Math.floor(index), props);\n var remainder = index - Math.floor(index);\n return frameMetrics.offset + remainder * frameMetrics.length;\n }\n };\n this.__getFrameMetricsApprox = (index, props) => {\n var frame = this._getFrameMetrics(index, props);\n if (frame && frame.index === index) {\n // check for invalid frames due to row re-ordering\n return frame;\n } else {\n var data = props.data,\n getItemCount = props.getItemCount,\n getItemLayout = props.getItemLayout;\n invariant(index >= 0 && index < getItemCount(data), 'Tried to get frame for out of range index ' + index);\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 this._getFrameMetrics = (index, props) => {\n var data = props.data,\n getItem = props.getItem,\n getItemCount = props.getItemCount,\n getItemLayout = props.getItemLayout;\n invariant(index >= 0 && index < getItemCount(data), 'Tried to get frame for out of range index ' + index);\n var item = getItem(data, index);\n var frame = this._frames[this._keyExtractor(item, index, props)];\n if (!frame || frame.index !== index) {\n if (getItemLayout) {\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 return getItemLayout(data, index);\n }\n }\n return frame;\n };\n this._getNonViewportRenderRegions = props => {\n // Keep a viewport's worth of content around the last focused cell to allow\n // random navigation around it without any blanking. E.g. tabbing from one\n // focused item out of viewport to another.\n if (!(this._lastFocusedCellKey && this._cellRefs[this._lastFocusedCellKey])) {\n return [];\n }\n var lastFocusedCellRenderer = this._cellRefs[this._lastFocusedCellKey];\n var focusedCellIndex = lastFocusedCellRenderer.props.index;\n var itemCount = props.getItemCount(props.data);\n\n // The last cell we rendered may be at a new index. Bail if we don't know\n // where it is.\n if (focusedCellIndex >= itemCount || this._keyExtractor(props.getItem(props.data, focusedCellIndex), focusedCellIndex, props) !== this._lastFocusedCellKey) {\n return [];\n }\n var first = focusedCellIndex;\n var heightOfCellsBeforeFocused = 0;\n for (var i = first - 1; i >= 0 && heightOfCellsBeforeFocused < this._scrollMetrics.visibleLength; i--) {\n first--;\n heightOfCellsBeforeFocused += this.__getFrameMetricsApprox(i, props).length;\n }\n var last = focusedCellIndex;\n var heightOfCellsAfterFocused = 0;\n for (var _i = last + 1; _i < itemCount && heightOfCellsAfterFocused < this._scrollMetrics.visibleLength; _i++) {\n last++;\n heightOfCellsAfterFocused += this.__getFrameMetricsApprox(_i, props).length;\n }\n return [{\n first,\n last\n }];\n };\n this._checkProps(_props);\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 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 {\n var _this$props3 = this.props,\n onViewableItemsChanged = _this$props3.onViewableItemsChanged,\n viewabilityConfig = _this$props3.viewabilityConfig;\n if (onViewableItemsChanged) {\n this._viewabilityTuples.push({\n viewabilityHelper: new ViewabilityHelper(viewabilityConfig),\n onViewableItemsChanged: onViewableItemsChanged\n });\n }\n }\n var initialRenderRegion = VirtualizedList._initialRenderRegion(_props);\n this.state = {\n cellsAroundViewport: initialRenderRegion,\n renderMask: VirtualizedList._createRenderMask(_props, initialRenderRegion)\n };\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 this.invertedWheelEventHandler = ev => {\n var scrollOffset = this.props.horizontal ? ev.target.scrollLeft : ev.target.scrollTop;\n var scrollLength = this.props.horizontal ? ev.target.scrollWidth : ev.target.scrollHeight;\n var clientLength = this.props.horizontal ? ev.target.clientWidth : ev.target.clientHeight;\n var isEventTargetScrollable = scrollLength > clientLength;\n var delta = this.props.horizontal ? ev.deltaX || ev.wheelDeltaX : ev.deltaY || ev.wheelDeltaY;\n var leftoverDelta = delta;\n if (isEventTargetScrollable) {\n leftoverDelta = delta < 0 ? Math.min(delta + scrollOffset, 0) : Math.max(delta - (scrollLength - clientLength - scrollOffset), 0);\n }\n var targetDelta = delta - leftoverDelta;\n if (this.props.inverted && this._scrollRef && this._scrollRef.getScrollableNode) {\n var node = this._scrollRef.getScrollableNode();\n if (this.props.horizontal) {\n ev.target.scrollLeft += targetDelta;\n var nextScrollLeft = node.scrollLeft - leftoverDelta;\n node.scrollLeft = !this.props.getItemLayout ? Math.min(nextScrollLeft, this._totalCellLength) : nextScrollLeft;\n } else {\n ev.target.scrollTop += targetDelta;\n var nextScrollTop = node.scrollTop - leftoverDelta;\n node.scrollTop = !this.props.getItemLayout ? Math.min(nextScrollTop, this._totalCellLength) : nextScrollTop;\n }\n ev.preventDefault();\n }\n };\n }\n _checkProps(props) {\n var onScroll = props.onScroll,\n windowSize = props.windowSize,\n getItemCount = props.getItemCount,\n data = props.data,\n initialScrollIndex = props.initialScrollIndex;\n invariant(\n // $FlowFixMe[prop-missing]\n !onScroll || !onScroll.__isNative, 'Components based on VirtualizedList must be wrapped with Animated.createAnimatedComponent ' + 'to support native onScroll events with useNativeDriver');\n invariant(windowSizeOrDefault(windowSize) > 0, 'VirtualizedList: The windowSize prop must be present and set to a value greater than 0.');\n invariant(getItemCount, 'VirtualizedList: The \"getItemCount\" prop must be provided');\n var itemCount = getItemCount(data);\n if (initialScrollIndex != null && !this._hasTriggeredInitialScrollToIndex && (initialScrollIndex < 0 || itemCount > 0 && initialScrollIndex >= itemCount) && !this._hasWarned.initialScrollIndex) {\n console.warn(\"initialScrollIndex \\\"\" + initialScrollIndex + \"\\\" is not valid (list has \" + itemCount + \" items)\");\n this._hasWarned.initialScrollIndex = true;\n }\n if (__DEV__ && !this._hasWarned.flexWrap) {\n // $FlowFixMe[underconstrained-implicit-instantiation]\n var flatStyles = StyleSheet.flatten(this.props.contentContainerStyle);\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 this._hasWarned.flexWrap = true;\n }\n }\n }\n static _createRenderMask(props, cellsAroundViewport, additionalRegions) {\n var itemCount = props.getItemCount(props.data);\n invariant(cellsAroundViewport.first >= 0 && cellsAroundViewport.last >= cellsAroundViewport.first - 1 && cellsAroundViewport.last < itemCount, \"Invalid cells around viewport \\\"[\" + cellsAroundViewport.first + \", \" + cellsAroundViewport.last + \"]\\\" was passed to VirtualizedList._createRenderMask\");\n var renderMask = new CellRenderMask(itemCount);\n if (itemCount > 0) {\n var allRegions = [cellsAroundViewport, ...(additionalRegions !== null && additionalRegions !== void 0 ? additionalRegions : [])];\n for (var _i2 = 0, _allRegions = allRegions; _i2 < _allRegions.length; _i2++) {\n var region = _allRegions[_i2];\n renderMask.addCells(region);\n }\n\n // The initially rendered cells are retained as part of the\n // \"scroll-to-top\" optimization\n if (props.initialScrollIndex == null || props.initialScrollIndex <= 0) {\n var initialRegion = VirtualizedList._initialRenderRegion(props);\n renderMask.addCells(initialRegion);\n }\n\n // The layout coordinates of sticker headers may be off-screen while the\n // actual header is on-screen. Keep the most recent before the viewport\n // rendered, even if its layout coordinates are not in viewport.\n var stickyIndicesSet = new Set(props.stickyHeaderIndices);\n VirtualizedList._ensureClosestStickyHeader(props, stickyIndicesSet, renderMask, cellsAroundViewport.first);\n }\n return renderMask;\n }\n static _initialRenderRegion(props) {\n var _props$initialScrollI;\n var itemCount = props.getItemCount(props.data);\n var firstCellIndex = Math.max(0, Math.min(itemCount - 1, Math.floor((_props$initialScrollI = props.initialScrollIndex) !== null && _props$initialScrollI !== void 0 ? _props$initialScrollI : 0)));\n var lastCellIndex = Math.min(itemCount, firstCellIndex + initialNumToRenderOrDefault(props.initialNumToRender)) - 1;\n return {\n first: firstCellIndex,\n last: lastCellIndex\n };\n }\n static _ensureClosestStickyHeader(props, stickyIndicesSet, renderMask, cellIdx) {\n var stickyOffset = props.ListHeaderComponent ? 1 : 0;\n for (var itemIdx = cellIdx - 1; itemIdx >= 0; itemIdx--) {\n if (stickyIndicesSet.has(itemIdx + stickyOffset)) {\n renderMask.addCells({\n first: itemIdx,\n last: itemIdx\n });\n break;\n }\n }\n }\n _adjustCellsAroundViewport(props, cellsAroundViewport) {\n var data = props.data,\n getItemCount = props.getItemCount;\n var onEndReachedThreshold = onEndReachedThresholdOrDefault(props.onEndReachedThreshold);\n var _this$_scrollMetrics = this._scrollMetrics,\n contentLength = _this$_scrollMetrics.contentLength,\n offset = _this$_scrollMetrics.offset,\n visibleLength = _this$_scrollMetrics.visibleLength;\n var distanceFromEnd = contentLength - visibleLength - offset;\n\n // 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 return cellsAroundViewport.last >= getItemCount(data) ? VirtualizedList._constrainToItemCount(cellsAroundViewport, props) : cellsAroundViewport;\n }\n var newCellsAroundViewport;\n if (props.disableVirtualization) {\n var renderAhead = distanceFromEnd < onEndReachedThreshold * visibleLength ? maxToRenderPerBatchOrDefault(props.maxToRenderPerBatch) : 0;\n newCellsAroundViewport = {\n first: 0,\n last: Math.min(cellsAroundViewport.last + renderAhead, getItemCount(data) - 1)\n };\n } else {\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\n // Thus, we want to recalculate the windowed render limits if any of the following hold:\n // - initialScrollIndex is undefined or is 0\n // - initialScrollIndex > 0 AND scrolling is complete\n // - initialScrollIndex > 0 AND the end of the list is visible (this handles the case\n // where the list is shorter than the visible area)\n if (props.initialScrollIndex && !this._scrollMetrics.offset && Math.abs(distanceFromEnd) >= Number.EPSILON) {\n return cellsAroundViewport.last >= getItemCount(data) ? VirtualizedList._constrainToItemCount(cellsAroundViewport, props) : cellsAroundViewport;\n }\n newCellsAroundViewport = computeWindowedRenderLimits(props, maxToRenderPerBatchOrDefault(props.maxToRenderPerBatch), windowSizeOrDefault(props.windowSize), cellsAroundViewport, this.__getFrameMetricsApprox, this._scrollMetrics);\n invariant(newCellsAroundViewport.last < getItemCount(data), 'computeWindowedRenderLimits() should return range in-bounds');\n }\n if (this._nestedChildLists.size() > 0) {\n // 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 // Will this prevent rendering if the nested list doesn't realize the end?\n var childIdx = this._findFirstChildWithMore(newCellsAroundViewport.first, newCellsAroundViewport.last);\n newCellsAroundViewport.last = childIdx !== null && childIdx !== void 0 ? childIdx : newCellsAroundViewport.last;\n }\n return newCellsAroundViewport;\n }\n _findFirstChildWithMore(first, last) {\n for (var ii = first; ii <= last; ii++) {\n var cellKeyForIndex = this._indicesToKeys.get(ii);\n if (cellKeyForIndex != null && this._nestedChildLists.anyInCell(cellKeyForIndex, childList => childList.hasMore())) {\n return ii;\n }\n }\n return null;\n }\n componentDidMount() {\n if (this._isNestedWithSameOrientation()) {\n this.context.registerAsNestedChild({\n ref: this,\n cellKey: this.context.cellKey\n });\n }\n\n // REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.\n this.setupWebWheelHandler();\n }\n componentWillUnmount() {\n if (this._isNestedWithSameOrientation()) {\n this.context.unregisterAsNestedChild({\n ref: this\n });\n }\n this._updateCellsToRenderBatcher.dispose({\n abort: true\n });\n this._viewabilityTuples.forEach(tuple => {\n tuple.viewabilityHelper.dispose();\n });\n this._fillRateHelper.deactivateAndFlush();\n\n // REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.\n this.teardownWebWheelHandler();\n }\n\n // REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.\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 }\n\n // REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.\n teardownWebWheelHandler() {\n if (this._scrollRef && this._scrollRef.getScrollableNode) {\n this._scrollRef.getScrollableNode().removeEventListener('wheel', this.invertedWheelEventHandler);\n }\n }\n static getDerivedStateFromProps(newProps, prevState) {\n // 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 var itemCount = newProps.getItemCount(newProps.data);\n if (itemCount === prevState.renderMask.numCells()) {\n return prevState;\n }\n var constrainedCells = VirtualizedList._constrainToItemCount(prevState.cellsAroundViewport, newProps);\n return {\n cellsAroundViewport: constrainedCells,\n renderMask: VirtualizedList._createRenderMask(newProps, constrainedCells)\n };\n }\n _pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, first, last, inversionStyle) {\n var _this = this;\n var _this$props4 = this.props,\n CellRendererComponent = _this$props4.CellRendererComponent,\n ItemSeparatorComponent = _this$props4.ItemSeparatorComponent,\n ListHeaderComponent = _this$props4.ListHeaderComponent,\n ListItemComponent = _this$props4.ListItemComponent,\n data = _this$props4.data,\n debug = _this$props4.debug,\n getItem = _this$props4.getItem,\n getItemCount = _this$props4.getItemCount,\n getItemLayout = _this$props4.getItemLayout,\n horizontal = _this$props4.horizontal,\n renderItem = _this$props4.renderItem;\n var stickyOffset = ListHeaderComponent ? 1 : 0;\n var end = getItemCount(data) - 1;\n var prevCellKey;\n last = Math.min(end, last);\n var _loop = function _loop() {\n var item = getItem(data, ii);\n var key = _this._keyExtractor(item, ii, _this.props);\n _this._indicesToKeys.set(ii, key);\n if (stickyIndicesFromProps.has(ii + stickyOffset)) {\n stickyHeaderIndices.push(cells.length);\n }\n var shouldListenForLayout = getItemLayout == null || debug || _this._fillRateHelper.enabled();\n cells.push( /*#__PURE__*/React.createElement(CellRenderer, _extends({\n CellRendererComponent: CellRendererComponent,\n ItemSeparatorComponent: ii < end ? ItemSeparatorComponent : undefined,\n ListItemComponent: ListItemComponent,\n cellKey: key,\n horizontal: horizontal,\n index: ii,\n inversionStyle: inversionStyle,\n item: item,\n key: key,\n prevCellKey: prevCellKey,\n onUpdateSeparators: _this._onUpdateSeparators,\n onCellFocusCapture: e => _this._onCellFocusCapture(key),\n onUnmount: _this._onCellUnmount,\n ref: _ref => {\n _this._cellRefs[key] = _ref;\n },\n renderItem: renderItem\n }, shouldListenForLayout && {\n onCellLayout: _this._onCellLayout\n })));\n prevCellKey = key;\n };\n for (var ii = first; ii <= last; ii++) {\n _loop();\n }\n }\n static _constrainToItemCount(cells, props) {\n var itemCount = props.getItemCount(props.data);\n var last = Math.min(itemCount - 1, cells.last);\n var maxToRenderPerBatch = maxToRenderPerBatchOrDefault(props.maxToRenderPerBatch);\n return {\n first: clamp(0, itemCount - 1 - maxToRenderPerBatch, cells.first),\n last\n };\n }\n _isNestedWithSameOrientation() {\n var nestedContext = this.context;\n return !!(nestedContext && !!nestedContext.horizontal === horizontalOrDefault(this.props.horizontal));\n }\n _keyExtractor(item, index, props\n // $FlowFixMe[missing-local-annot]\n ) {\n if (props.keyExtractor != null) {\n return props.keyExtractor(item, index);\n }\n var key = defaultKeyExtractor(item, index);\n if (key === String(index)) {\n _usedIndexForKey = true;\n if (item.type && item.type.displayName) {\n _keylessItemComponentName = item.type.displayName;\n }\n }\n return key;\n }\n render() {\n this._checkProps(this.props);\n var _this$props5 = this.props,\n ListEmptyComponent = _this$props5.ListEmptyComponent,\n ListFooterComponent = _this$props5.ListFooterComponent,\n ListHeaderComponent = _this$props5.ListHeaderComponent;\n var _this$props6 = this.props,\n data = _this$props6.data,\n horizontal = _this$props6.horizontal;\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 // 1. Add cell for ListHeaderComponent\n if (ListHeaderComponent) {\n if (stickyIndicesFromProps.has(0)) {\n stickyHeaderIndices.push(0);\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: [inversionStyle, this.props.ListHeaderComponentStyle]\n },\n // $FlowFixMe[incompatible-type] - Typing ReactNativeComponent revealed errors\n _element)));\n }\n\n // 2a. Add a cell for ListEmptyComponent if applicable\n var itemCount = this.props.getItemCount(data);\n if (itemCount === 0 && ListEmptyComponent) {\n var _element2 = /*#__PURE__*/React.isValidElement(ListEmptyComponent) ? ListEmptyComponent :\n /*#__PURE__*/\n // $FlowFixMe[not-a-component]\n // $FlowFixMe[incompatible-type-arg]\n React.createElement(ListEmptyComponent, null);\n cells.push( /*#__PURE__*/React.createElement(VirtualizedListCellContextProvider, {\n cellKey: this._getCellKey() + '-empty',\n key: \"$empty\"\n }, /*#__PURE__*/React.cloneElement(_element2, {\n onLayout: event => {\n this._onLayoutEmpty(event);\n if (_element2.props.onLayout) {\n _element2.props.onLayout(event);\n }\n },\n style: [inversionStyle, _element2.props.style]\n })));\n }\n\n // 2b. Add cells and spacers for each item\n if (itemCount > 0) {\n _usedIndexForKey = false;\n _keylessItemComponentName = '';\n var spacerKey = this._getSpacerKey(!horizontal);\n var renderRegions = this.state.renderMask.enumerateRegions();\n var lastSpacer = findLastWhere(renderRegions, r => r.isSpacer);\n for (var _iterator = _createForOfIteratorHelperLoose(renderRegions), _step; !(_step = _iterator()).done;) {\n var section = _step.value;\n if (section.isSpacer) {\n // Legacy behavior is to avoid spacers when virtualization is\n // disabled (including head spacers on initial render).\n if (this.props.disableVirtualization) {\n continue;\n }\n\n // 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 var isLastSpacer = section === lastSpacer;\n var constrainToMeasured = isLastSpacer && !this.props.getItemLayout;\n var last = constrainToMeasured ? clamp(section.first - 1, section.last, this._highestMeasuredFrameIndex) : section.last;\n var firstMetrics = this.__getFrameMetricsApprox(section.first, this.props);\n var lastMetrics = this.__getFrameMetricsApprox(last, this.props);\n var spacerSize = lastMetrics.offset + lastMetrics.length - firstMetrics.offset;\n cells.push( /*#__PURE__*/React.createElement(View, {\n key: \"$spacer-\" + section.first,\n style: {\n [spacerKey]: spacerSize\n }\n }));\n } else {\n this._pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, section.first, section.last, inversionStyle);\n }\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\n // 3. Add cell for ListFooterComponent\n if (ListFooterComponent) {\n var _element3 = /*#__PURE__*/React.isValidElement(ListFooterComponent) ? ListFooterComponent :\n /*#__PURE__*/\n // $FlowFixMe[not-a-component]\n // $FlowFixMe[incompatible-type-arg]\n React.createElement(ListFooterComponent, null);\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: [inversionStyle, this.props.ListFooterComponentStyle]\n },\n // $FlowFixMe[incompatible-type] - Typing ReactNativeComponent revealed errors\n _element3)));\n }\n\n // 4. Render the ScrollView\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 this._hasMore = this.state.cellsAroundViewport.last < itemCount - 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 registerAsNestedChild: this._registerAsNestedChild,\n unregisterAsNestedChild: this._unregisterAsNestedChild\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 this.props.scrollEnabled !== false\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 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 componentDidUpdate(prevProps) {\n var _this$props7 = this.props,\n data = _this$props7.data,\n extraData = _this$props7.extraData;\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 }\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 var hiPriInProgress = this._hiPriInProgress;\n this._scheduleCellsToRenderUpdate();\n // Make sure setting `this._hiPriInProgress` back to false after `componentDidUpdate`\n // is triggered with `this._hiPriInProgress = true`\n if (hiPriInProgress) {\n this._hiPriInProgress = false;\n }\n }\n\n // Used for preventing scrollToIndex from being called multiple times for initialScrollIndex\n\n // flag to prevent infinite hiPri cell limit update\n\n // $FlowFixMe[missing-local-annot]\n\n /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\n\n _computeBlankness() {\n this._fillRateHelper.computeBlankness(this.props, this.state.cellsAroundViewport, this._scrollMetrics);\n }\n\n /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\n\n _onCellFocusCapture(cellKey) {\n this._lastFocusedCellKey = cellKey;\n this._updateCellsToRender();\n }\n _triggerRemeasureForChildListsInCell(cellKey) {\n this._nestedChildLists.forEachInCell(cellKey, childList => {\n childList.measureLayoutRelativeToContainingList();\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 }\n // We are assuming that getOutermostParentListRef().getScrollRef()\n // is a non-null reference to a ScrollView\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 var scrollMetrics = this._convertParentScrollMetrics(this.context.getScrollMetrics());\n var metricsChanged = this._scrollMetrics.visibleLength !== scrollMetrics.visibleLength || this._scrollMetrics.offset !== scrollMetrics.offset;\n if (metricsChanged) {\n this._scrollMetrics.visibleLength = scrollMetrics.visibleLength;\n this._scrollMetrics.offset = scrollMetrics.offset;\n\n // If metrics of the scrollView changed, then we triggered remeasure for child list\n // to ensure VirtualizedList has the right information.\n this._nestedChildLists.forEach(childList => {\n childList.measureLayoutRelativeToContainingList();\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 _getFooterCellKey() {\n return this._getCellKey() + '-footer';\n }\n // $FlowFixMe[missing-local-annot]\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 for (var ii = 0; ii < itemCount; ii++) {\n var frame = this.__getFrameMetricsApprox(ii, this.props);\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 if (frame.inLayout) {\n framesInLayout.push(frame);\n }\n }\n var windowTop = this.__getFrameMetricsApprox(this.state.cellsAroundViewport.first, this.props).offset;\n var frameLast = this.__getFrameMetricsApprox(this.state.cellsAroundViewport.last, this.props);\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 _selectLength(metrics) {\n return !horizontalOrDefault(this.props.horizontal) ? metrics.height : metrics.width;\n }\n _selectOffset(metrics) {\n return !horizontalOrDefault(this.props.horizontal) ? metrics.y : metrics.x;\n }\n _maybeCallOnEdgeReached() {\n var _this$props8 = this.props,\n data = _this$props8.data,\n getItemCount = _this$props8.getItemCount,\n onStartReached = _this$props8.onStartReached,\n onStartReachedThreshold = _this$props8.onStartReachedThreshold,\n onEndReached = _this$props8.onEndReached,\n onEndReachedThreshold = _this$props8.onEndReachedThreshold,\n initialScrollIndex = _this$props8.initialScrollIndex;\n var _this$_scrollMetrics2 = this._scrollMetrics,\n contentLength = _this$_scrollMetrics2.contentLength,\n visibleLength = _this$_scrollMetrics2.visibleLength,\n offset = _this$_scrollMetrics2.offset;\n var distanceFromStart = offset;\n var distanceFromEnd = contentLength - visibleLength - offset;\n\n // Especially when oERT is zero it's necessary to 'floor' very small distance values to be 0\n // since debouncing causes us to not fire this event for every single \"pixel\" we scroll and can thus\n // be at the edge of the list with a distance approximating 0 but not quite there.\n if (distanceFromStart < ON_EDGE_REACHED_EPSILON) {\n distanceFromStart = 0;\n }\n if (distanceFromEnd < ON_EDGE_REACHED_EPSILON) {\n distanceFromEnd = 0;\n }\n\n // TODO: T121172172 Look into why we're \"defaulting\" to a threshold of 2px\n // when oERT is not present (different from 2 viewports used elsewhere)\n var DEFAULT_THRESHOLD_PX = 2;\n var startThreshold = onStartReachedThreshold != null ? onStartReachedThreshold * visibleLength : DEFAULT_THRESHOLD_PX;\n var endThreshold = onEndReachedThreshold != null ? onEndReachedThreshold * visibleLength : DEFAULT_THRESHOLD_PX;\n var isWithinStartThreshold = distanceFromStart <= startThreshold;\n var isWithinEndThreshold = distanceFromEnd <= endThreshold;\n\n // First check if the user just scrolled within the end threshold\n // and call onEndReached only once for a given content length,\n // and only if onStartReached is not being executed\n if (onEndReached && this.state.cellsAroundViewport.last === getItemCount(data) - 1 && isWithinEndThreshold && this._scrollMetrics.contentLength !== this._sentEndForContentLength) {\n this._sentEndForContentLength = this._scrollMetrics.contentLength;\n onEndReached({\n distanceFromEnd\n });\n }\n\n // Next check if the user just scrolled within the start threshold\n // and call onStartReached only once for a given content length,\n // and only if onEndReached is not being executed\n else if (onStartReached != null && this.state.cellsAroundViewport.first === 0 && isWithinStartThreshold && this._scrollMetrics.contentLength !== this._sentStartForContentLength) {\n // On initial mount when using initialScrollIndex the offset will be 0 initially\n // and will trigger an unexpected onStartReached. To avoid this we can use\n // timestamp to differentiate between the initial scroll metrics and when we actually\n // received the first scroll event.\n if (!initialScrollIndex || this._scrollMetrics.timestamp !== 0) {\n this._sentStartForContentLength = this._scrollMetrics.contentLength;\n onStartReached({\n distanceFromStart\n });\n }\n }\n\n // If the user scrolls away from the start or end and back again,\n // cause onStartReached or onEndReached to be triggered again\n else {\n this._sentStartForContentLength = isWithinStartThreshold ? this._sentStartForContentLength : 0;\n this._sentEndForContentLength = isWithinEndThreshold ? this._sentEndForContentLength : 0;\n }\n }\n\n /* Translates metrics from a scroll event in a parent VirtualizedList into\n * coordinates relative to the child list.\n */\n\n _scheduleCellsToRenderUpdate() {\n var _this$state$cellsArou = this.state.cellsAroundViewport,\n first = _this$state$cellsArou.first,\n last = _this$state$cellsArou.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 onStartReachedThreshold = onStartReachedThresholdOrDefault(this.props.onStartReachedThreshold);\n var onEndReachedThreshold = onEndReachedThresholdOrDefault(this.props.onEndReachedThreshold);\n // 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 if (first > 0) {\n var distTop = offset - this.__getFrameMetricsApprox(first, this.props).offset;\n hiPri = distTop < 0 || velocity < -2 && distTop < getScrollingThreshold(onStartReachedThreshold, visibleLength);\n }\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 if (!hiPri && last >= 0 && last < itemCount - 1) {\n var distBottom = this.__getFrameMetricsApprox(last, this.props).offset - (offset + visibleLength);\n hiPri = distBottom < 0 || velocity > 2 && distBottom < getScrollingThreshold(onEndReachedThreshold, visibleLength);\n }\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 if (hiPri && (this._averageCellLength || this.props.getItemLayout) && !this._hiPriInProgress) {\n this._hiPriInProgress = true;\n // Don't worry about interactions when scrolling quickly; focus on filling content as fast\n // as possible.\n this._updateCellsToRenderBatcher.dispose({\n abort: true\n });\n this._updateCellsToRender();\n return;\n } else {\n this._updateCellsToRenderBatcher.schedule();\n }\n }\n\n /**\n * Gets an approximate offset to an item at a given index. Supports\n * fractional indices.\n */\n\n _updateViewableItems(props, cellsAroundViewport) {\n this._viewabilityTuples.forEach(tuple => {\n tuple.viewabilityHelper.onUpdate(props, this._scrollMetrics.offset, this._scrollMetrics.visibleLength, this._getFrameMetrics, this._createViewToken, tuple.onViewableItemsChanged, cellsAroundViewport);\n });\n }\n}\nVirtualizedList.contextType = VirtualizedListContext;\nvar styles = StyleSheet.create({\n verticallyInverted: {\n transform: 'scaleY(-1)'\n },\n horizontallyInverted: {\n transform: 'scaleX(-1)'\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) 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 * EventEmitter manages listeners and publishes events to them.\n *\n * EventEmitter accepts a single type parameter that defines the valid events\n * and associated listener argument(s).\n *\n * @example\n *\n * const emitter = new EventEmitter<{\n * success: [number, string],\n * error: [Error],\n * }>();\n *\n * emitter.on('success', (statusCode, responseText) => {...});\n * emitter.emit('success', 200, '...');\n *\n * emitter.on('error', error => {...});\n * emitter.emit('error', new Error('Resource not found'));\n *\n */\nexport default class EventEmitter {\n constructor() {\n this._registry = {};\n }\n /**\n * Registers a listener that is called when the supplied event is emitted.\n * Returns a subscription that has a `remove` method to undo registration.\n */\n addListener(eventType, listener, context) {\n var registrations = allocate(this._registry, eventType);\n var registration = {\n context,\n listener,\n remove() {\n registrations.delete(registration);\n }\n };\n registrations.add(registration);\n return registration;\n }\n\n /**\n * Emits the supplied event. Additional arguments supplied to `emit` will be\n * passed through to each of the registered listeners.\n *\n * If a listener modifies the listeners registered for the same event, those\n * changes will not be reflected in the current invocation of `emit`.\n */\n emit(eventType) {\n var registrations = this._registry[eventType];\n if (registrations != null) {\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 for (var _i = 0, _arr = [...registrations]; _i < _arr.length; _i++) {\n var registration = _arr[_i];\n registration.listener.apply(registration.context, args);\n }\n }\n }\n\n /**\n * Removes all registered listeners.\n */\n removeAllListeners(eventType) {\n if (eventType == null) {\n this._registry = {};\n } else {\n delete this._registry[eventType];\n }\n }\n\n /**\n * Returns the number of registered listeners for the supplied event.\n */\n listenerCount(eventType) {\n var registrations = this._registry[eventType];\n return registrations == null ? 0 : registrations.size;\n }\n}\nfunction allocate(registry, eventType) {\n var registrations = registry[eventType];\n if (registrations == null) {\n registrations = new Set();\n registry[eventType] = registrations;\n }\n return registrations;\n}","const errors = {\n\t0: \"Illegal state\",\n\t1: \"Immer drafts cannot have computed properties\",\n\t2: \"This object has been frozen and should not be mutated\",\n\t3(data: any) {\n\t\treturn (\n\t\t\t\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" +\n\t\t\tdata\n\t\t)\n\t},\n\t4: \"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n\t5: \"Immer forbids circular references\",\n\t6: \"The first or second argument to `produce` must be a function\",\n\t7: \"The third argument to `produce` must be a function or undefined\",\n\t8: \"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n\t9: \"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n\t10: \"The given draft is already finalized\",\n\t11: \"Object.defineProperty() cannot be used on an Immer draft\",\n\t12: \"Object.setPrototypeOf() cannot be used on an Immer draft\",\n\t13: \"Immer only supports deleting array indices\",\n\t14: \"Immer only supports setting array indices and the 'length' property\",\n\t15(path: string) {\n\t\treturn \"Cannot apply patch, path doesn't resolve: \" + path\n\t},\n\t16: 'Sets cannot have \"replace\" patches.',\n\t17(op: string) {\n\t\treturn \"Unsupported patch operation: \" + op\n\t},\n\t18(plugin: string) {\n\t\treturn `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`\n\t},\n\t20: \"Cannot use proxies if Proxy, Proxy.revocable or Reflect are not available\",\n\t21(thing: string) {\n\t\treturn `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`\n\t},\n\t22(thing: string) {\n\t\treturn `'current' expects a draft, got: ${thing}`\n\t},\n\t23(thing: string) {\n\t\treturn `'original' expects a draft, got: ${thing}`\n\t},\n\t24: \"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"\n} as const\n\nexport function die(error: keyof typeof errors, ...args: any[]): never {\n\tif (__DEV__) {\n\t\tconst e = errors[error]\n\t\tconst msg = !e\n\t\t\t? \"unknown error nr: \" + error\n\t\t\t: typeof e === \"function\"\n\t\t\t? e.apply(null, args as any)\n\t\t\t: e\n\t\tthrow new Error(`[Immer] ${msg}`)\n\t}\n\tthrow new Error(\n\t\t`[Immer] minified error nr: ${error}${\n\t\t\targs.length ? \" \" + args.map(s => `'${s}'`).join(\",\") : \"\"\n\t\t}. Find the full error at: https://bit.ly/3cXEKWf`\n\t)\n}\n","import {\n\tDRAFT_STATE,\n\tDRAFTABLE,\n\thasSet,\n\tObjectish,\n\tDrafted,\n\tAnyObject,\n\tAnyMap,\n\tAnySet,\n\tImmerState,\n\thasMap,\n\tArchtype,\n\tdie\n} from \"../internal\"\n\n/** Returns true if the given value is an Immer draft */\n/*#__PURE__*/\nexport function isDraft(value: any): boolean {\n\treturn !!value && !!value[DRAFT_STATE]\n}\n\n/** Returns true if the given value can be drafted by Immer */\n/*#__PURE__*/\nexport function isDraftable(value: any): boolean {\n\tif (!value) return false\n\treturn (\n\t\tisPlainObject(value) ||\n\t\tArray.isArray(value) ||\n\t\t!!value[DRAFTABLE] ||\n\t\t!!value.constructor?.[DRAFTABLE] ||\n\t\tisMap(value) ||\n\t\tisSet(value)\n\t)\n}\n\nconst objectCtorString = Object.prototype.constructor.toString()\n/*#__PURE__*/\nexport function isPlainObject(value: any): boolean {\n\tif (!value || typeof value !== \"object\") return false\n\tconst proto = Object.getPrototypeOf(value)\n\tif (proto === null) {\n\t\treturn true\n\t}\n\tconst Ctor =\n\t\tObject.hasOwnProperty.call(proto, \"constructor\") && proto.constructor\n\n\tif (Ctor === Object) return true\n\n\treturn (\n\t\ttypeof Ctor == \"function\" &&\n\t\tFunction.toString.call(Ctor) === objectCtorString\n\t)\n}\n\n/** Get the underlying object that is represented by the given draft */\n/*#__PURE__*/\nexport function original(value: T): T | undefined\nexport function original(value: Drafted): any {\n\tif (!isDraft(value)) die(23, value)\n\treturn value[DRAFT_STATE].base_\n}\n\n/*#__PURE__*/\nexport const ownKeys: (target: AnyObject) => PropertyKey[] =\n\ttypeof Reflect !== \"undefined\" && Reflect.ownKeys\n\t\t? Reflect.ownKeys\n\t\t: typeof Object.getOwnPropertySymbols !== \"undefined\"\n\t\t? obj =>\n\t\t\t\tObject.getOwnPropertyNames(obj).concat(\n\t\t\t\t\tObject.getOwnPropertySymbols(obj) as any\n\t\t\t\t)\n\t\t: /* istanbul ignore next */ Object.getOwnPropertyNames\n\nexport const getOwnPropertyDescriptors =\n\tObject.getOwnPropertyDescriptors ||\n\tfunction getOwnPropertyDescriptors(target: any) {\n\t\t// Polyfill needed for Hermes and IE, see https://github.com/facebook/hermes/issues/274\n\t\tconst res: any = {}\n\t\townKeys(target).forEach(key => {\n\t\t\tres[key] = Object.getOwnPropertyDescriptor(target, key)\n\t\t})\n\t\treturn res\n\t}\n\nexport function each(\n\tobj: T,\n\titer: (key: string | number, value: any, source: T) => void,\n\tenumerableOnly?: boolean\n): void\nexport function each(obj: any, iter: any, enumerableOnly = false) {\n\tif (getArchtype(obj) === Archtype.Object) {\n\t\t;(enumerableOnly ? Object.keys : ownKeys)(obj).forEach(key => {\n\t\t\tif (!enumerableOnly || typeof key !== \"symbol\") iter(key, obj[key], obj)\n\t\t})\n\t} else {\n\t\tobj.forEach((entry: any, index: any) => iter(index, entry, obj))\n\t}\n}\n\n/*#__PURE__*/\nexport function getArchtype(thing: any): Archtype {\n\t/* istanbul ignore next */\n\tconst state: undefined | ImmerState = thing[DRAFT_STATE]\n\treturn state\n\t\t? state.type_ > 3\n\t\t\t? state.type_ - 4 // cause Object and Array map back from 4 and 5\n\t\t\t: (state.type_ as any) // others are the same\n\t\t: Array.isArray(thing)\n\t\t? Archtype.Array\n\t\t: isMap(thing)\n\t\t? Archtype.Map\n\t\t: isSet(thing)\n\t\t? Archtype.Set\n\t\t: Archtype.Object\n}\n\n/*#__PURE__*/\nexport function has(thing: any, prop: PropertyKey): boolean {\n\treturn getArchtype(thing) === Archtype.Map\n\t\t? thing.has(prop)\n\t\t: Object.prototype.hasOwnProperty.call(thing, prop)\n}\n\n/*#__PURE__*/\nexport function get(thing: AnyMap | AnyObject, prop: PropertyKey): any {\n\t// @ts-ignore\n\treturn getArchtype(thing) === Archtype.Map ? thing.get(prop) : thing[prop]\n}\n\n/*#__PURE__*/\nexport function set(thing: any, propOrOldValue: PropertyKey, value: any) {\n\tconst t = getArchtype(thing)\n\tif (t === Archtype.Map) thing.set(propOrOldValue, value)\n\telse if (t === Archtype.Set) {\n\t\tthing.add(value)\n\t} else thing[propOrOldValue] = value\n}\n\n/*#__PURE__*/\nexport function is(x: any, y: any): boolean {\n\t// From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n\tif (x === y) {\n\t\treturn x !== 0 || 1 / x === 1 / y\n\t} else {\n\t\treturn x !== x && y !== y\n\t}\n}\n\n/*#__PURE__*/\nexport function isMap(target: any): target is AnyMap {\n\treturn hasMap && target instanceof Map\n}\n\n/*#__PURE__*/\nexport function isSet(target: any): target is AnySet {\n\treturn hasSet && target instanceof Set\n}\n/*#__PURE__*/\nexport function latest(state: ImmerState): any {\n\treturn state.copy_ || state.base_\n}\n\n/*#__PURE__*/\nexport function shallowCopy(base: any) {\n\tif (Array.isArray(base)) return Array.prototype.slice.call(base)\n\tconst descriptors = getOwnPropertyDescriptors(base)\n\tdelete descriptors[DRAFT_STATE as any]\n\tlet keys = ownKeys(descriptors)\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tconst key: any = keys[i]\n\t\tconst desc = descriptors[key]\n\t\tif (desc.writable === false) {\n\t\t\tdesc.writable = true\n\t\t\tdesc.configurable = true\n\t\t}\n\t\t// like object.assign, we will read any _own_, get/set accessors. This helps in dealing\n\t\t// with libraries that trap values, like mobx or vue\n\t\t// unlike object.assign, non-enumerables will be copied as well\n\t\tif (desc.get || desc.set)\n\t\t\tdescriptors[key] = {\n\t\t\t\tconfigurable: true,\n\t\t\t\twritable: true, // could live with !!desc.set as well here...\n\t\t\t\tenumerable: desc.enumerable,\n\t\t\t\tvalue: base[key]\n\t\t\t}\n\t}\n\treturn Object.create(Object.getPrototypeOf(base), descriptors)\n}\n\n/**\n * Freezes draftable objects. Returns the original object.\n * By default freezes shallowly, but if the second argument is `true` it will freeze recursively.\n *\n * @param obj\n * @param deep\n */\nexport function freeze(obj: T, deep?: boolean): T\nexport function freeze(obj: any, deep: boolean = false): T {\n\tif (isFrozen(obj) || isDraft(obj) || !isDraftable(obj)) return obj\n\tif (getArchtype(obj) > 1 /* Map or Set */) {\n\t\tobj.set = obj.add = obj.clear = obj.delete = dontMutateFrozenCollections as any\n\t}\n\tObject.freeze(obj)\n\tif (deep) each(obj, (key, value) => freeze(value, true), true)\n\treturn obj\n}\n\nfunction dontMutateFrozenCollections() {\n\tdie(2)\n}\n\nexport function isFrozen(obj: any): boolean {\n\tif (obj == null || typeof obj !== \"object\") return true\n\t// See #600, IE dies on non-objects in Object.isFrozen\n\treturn Object.isFrozen(obj)\n}\n","import {\n\tImmerState,\n\tPatch,\n\tImmerScope,\n\tDrafted,\n\tAnyObject,\n\tImmerBaseState,\n\tAnyMap,\n\tAnySet,\n\tProxyType,\n\tdie\n} from \"../internal\"\n\n/** Plugin utilities */\nconst plugins: {\n\tPatches?: {\n\t\tgeneratePatches_(\n\t\t\tstate: ImmerState,\n\t\t\tbasePath: PatchPath,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tgenerateReplacementPatches_(\n\t\t\tbase: any,\n\t\t\treplacement: any,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tapplyPatches_(draft: T, patches: Patch[]): T\n\t}\n\tES5?: {\n\t\twillFinalizeES5_(scope: ImmerScope, result: any, isReplaced: boolean): void\n\t\tcreateES5Proxy_(\n\t\t\tbase: T,\n\t\t\tparent?: ImmerState\n\t\t): Drafted\n\t\thasChanges_(state: ES5ArrayState | ES5ObjectState): boolean\n\t}\n\tMapSet?: {\n\t\tproxyMap_(target: T, parent?: ImmerState): T\n\t\tproxySet_(target: T, parent?: ImmerState): T\n\t}\n} = {}\n\ntype Plugins = typeof plugins\n\nexport function getPlugin(\n\tpluginKey: K\n): Exclude {\n\tconst plugin = plugins[pluginKey]\n\tif (!plugin) {\n\t\tdie(18, pluginKey)\n\t}\n\t// @ts-ignore\n\treturn plugin\n}\n\nexport function loadPlugin(\n\tpluginKey: K,\n\timplementation: Plugins[K]\n): void {\n\tif (!plugins[pluginKey]) plugins[pluginKey] = implementation\n}\n\n/** ES5 Plugin */\n\ninterface ES5BaseState extends ImmerBaseState {\n\tassigned_: {[key: string]: any}\n\tparent_?: ImmerState\n\trevoked_: boolean\n}\n\nexport interface ES5ObjectState extends ES5BaseState {\n\ttype_: ProxyType.ES5Object\n\tdraft_: Drafted\n\tbase_: AnyObject\n\tcopy_: AnyObject | null\n}\n\nexport interface ES5ArrayState extends ES5BaseState {\n\ttype_: ProxyType.ES5Array\n\tdraft_: Drafted\n\tbase_: any\n\tcopy_: any\n}\n\n/** Map / Set plugin */\n\nexport interface MapState extends ImmerBaseState {\n\ttype_: ProxyType.Map\n\tcopy_: AnyMap | undefined\n\tassigned_: Map | undefined\n\tbase_: AnyMap\n\trevoked_: boolean\n\tdraft_: Drafted\n}\n\nexport interface SetState extends ImmerBaseState {\n\ttype_: ProxyType.Set\n\tcopy_: AnySet | undefined\n\tbase_: AnySet\n\tdrafts_: Map // maps the original value to the draft value in the new set\n\trevoked_: boolean\n\tdraft_: Drafted\n}\n\n/** Patches plugin */\n\nexport type PatchPath = (string | number)[]\n","import {\n\tPatch,\n\tPatchListener,\n\tDrafted,\n\tImmer,\n\tDRAFT_STATE,\n\tImmerState,\n\tProxyType,\n\tgetPlugin\n} from \"../internal\"\nimport {die} from \"../utils/errors\"\n\n/** Each scope represents a `produce` call. */\n\nexport interface ImmerScope {\n\tpatches_?: Patch[]\n\tinversePatches_?: Patch[]\n\tcanAutoFreeze_: boolean\n\tdrafts_: any[]\n\tparent_?: ImmerScope\n\tpatchListener_?: PatchListener\n\timmer_: Immer\n\tunfinalizedDrafts_: number\n}\n\nlet currentScope: ImmerScope | undefined\n\nexport function getCurrentScope() {\n\tif (__DEV__ && !currentScope) die(0)\n\treturn currentScope!\n}\n\nfunction createScope(\n\tparent_: ImmerScope | undefined,\n\timmer_: Immer\n): ImmerScope {\n\treturn {\n\t\tdrafts_: [],\n\t\tparent_,\n\t\timmer_,\n\t\t// Whenever the modified draft contains a draft from another scope, we\n\t\t// need to prevent auto-freezing so the unowned draft can be finalized.\n\t\tcanAutoFreeze_: true,\n\t\tunfinalizedDrafts_: 0\n\t}\n}\n\nexport function usePatchesInScope(\n\tscope: ImmerScope,\n\tpatchListener?: PatchListener\n) {\n\tif (patchListener) {\n\t\tgetPlugin(\"Patches\") // assert we have the plugin\n\t\tscope.patches_ = []\n\t\tscope.inversePatches_ = []\n\t\tscope.patchListener_ = patchListener\n\t}\n}\n\nexport function revokeScope(scope: ImmerScope) {\n\tleaveScope(scope)\n\tscope.drafts_.forEach(revokeDraft)\n\t// @ts-ignore\n\tscope.drafts_ = null\n}\n\nexport function leaveScope(scope: ImmerScope) {\n\tif (scope === currentScope) {\n\t\tcurrentScope = scope.parent_\n\t}\n}\n\nexport function enterScope(immer: Immer) {\n\treturn (currentScope = createScope(currentScope, immer))\n}\n\nfunction revokeDraft(draft: Drafted) {\n\tconst state: ImmerState = draft[DRAFT_STATE]\n\tif (\n\t\tstate.type_ === ProxyType.ProxyObject ||\n\t\tstate.type_ === ProxyType.ProxyArray\n\t)\n\t\tstate.revoke_()\n\telse state.revoked_ = true\n}\n","import {\n\tImmerScope,\n\tDRAFT_STATE,\n\tisDraftable,\n\tNOTHING,\n\tPatchPath,\n\teach,\n\thas,\n\tfreeze,\n\tImmerState,\n\tisDraft,\n\tSetState,\n\tset,\n\tProxyType,\n\tgetPlugin,\n\tdie,\n\trevokeScope,\n\tisFrozen,\n\tshallowCopy\n} from \"../internal\"\n\nexport function processResult(result: any, scope: ImmerScope) {\n\tscope.unfinalizedDrafts_ = scope.drafts_.length\n\tconst baseDraft = scope.drafts_![0]\n\tconst isReplaced = result !== undefined && result !== baseDraft\n\tif (!scope.immer_.useProxies_)\n\t\tgetPlugin(\"ES5\").willFinalizeES5_(scope, result, isReplaced)\n\tif (isReplaced) {\n\t\tif (baseDraft[DRAFT_STATE].modified_) {\n\t\t\trevokeScope(scope)\n\t\t\tdie(4)\n\t\t}\n\t\tif (isDraftable(result)) {\n\t\t\t// Finalize the result in case it contains (or is) a subset of the draft.\n\t\t\tresult = finalize(scope, result)\n\t\t\tif (!scope.parent_) maybeFreeze(scope, result)\n\t\t}\n\t\tif (scope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(\n\t\t\t\tbaseDraft[DRAFT_STATE].base_,\n\t\t\t\tresult,\n\t\t\t\tscope.patches_,\n\t\t\t\tscope.inversePatches_!\n\t\t\t)\n\t\t}\n\t} else {\n\t\t// Finalize the base draft.\n\t\tresult = finalize(scope, baseDraft, [])\n\t}\n\trevokeScope(scope)\n\tif (scope.patches_) {\n\t\tscope.patchListener_!(scope.patches_, scope.inversePatches_!)\n\t}\n\treturn result !== NOTHING ? result : undefined\n}\n\nfunction finalize(rootScope: ImmerScope, value: any, path?: PatchPath) {\n\t// Don't recurse in tho recursive data structures\n\tif (isFrozen(value)) return value\n\n\tconst state: ImmerState = value[DRAFT_STATE]\n\t// A plain object, might need freezing, might contain drafts\n\tif (!state) {\n\t\teach(\n\t\t\tvalue,\n\t\t\t(key, childValue) =>\n\t\t\t\tfinalizeProperty(rootScope, state, value, key, childValue, path),\n\t\t\ttrue // See #590, don't recurse into non-enumerable of non drafted objects\n\t\t)\n\t\treturn value\n\t}\n\t// Never finalize drafts owned by another scope.\n\tif (state.scope_ !== rootScope) return value\n\t// Unmodified draft, return the (frozen) original\n\tif (!state.modified_) {\n\t\tmaybeFreeze(rootScope, state.base_, true)\n\t\treturn state.base_\n\t}\n\t// Not finalized yet, let's do that now\n\tif (!state.finalized_) {\n\t\tstate.finalized_ = true\n\t\tstate.scope_.unfinalizedDrafts_--\n\t\tconst result =\n\t\t\t// For ES5, create a good copy from the draft first, with added keys and without deleted keys.\n\t\t\tstate.type_ === ProxyType.ES5Object || state.type_ === ProxyType.ES5Array\n\t\t\t\t? (state.copy_ = shallowCopy(state.draft_))\n\t\t\t\t: state.copy_\n\t\t// Finalize all children of the copy\n\t\t// For sets we clone before iterating, otherwise we can get in endless loop due to modifying during iteration, see #628\n\t\t// To preserve insertion order in all cases we then clear the set\n\t\t// And we let finalizeProperty know it needs to re-add non-draft children back to the target\n\t\tlet resultEach = result\n\t\tlet isSet = false\n\t\tif (state.type_ === ProxyType.Set) {\n\t\t\tresultEach = new Set(result)\n\t\t\tresult.clear()\n\t\t\tisSet = true\n\t\t}\n\t\teach(resultEach, (key, childValue) =>\n\t\t\tfinalizeProperty(rootScope, state, result, key, childValue, path, isSet)\n\t\t)\n\t\t// everything inside is frozen, we can freeze here\n\t\tmaybeFreeze(rootScope, result, false)\n\t\t// first time finalizing, let's create those patches\n\t\tif (path && rootScope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generatePatches_(\n\t\t\t\tstate,\n\t\t\t\tpath,\n\t\t\t\trootScope.patches_,\n\t\t\t\trootScope.inversePatches_!\n\t\t\t)\n\t\t}\n\t}\n\treturn state.copy_\n}\n\nfunction finalizeProperty(\n\trootScope: ImmerScope,\n\tparentState: undefined | ImmerState,\n\ttargetObject: any,\n\tprop: string | number,\n\tchildValue: any,\n\trootPath?: PatchPath,\n\ttargetIsSet?: boolean\n) {\n\tif (__DEV__ && childValue === targetObject) die(5)\n\tif (isDraft(childValue)) {\n\t\tconst path =\n\t\t\trootPath &&\n\t\t\tparentState &&\n\t\t\tparentState!.type_ !== ProxyType.Set && // Set objects are atomic since they have no keys.\n\t\t\t!has((parentState as Exclude).assigned_!, prop) // Skip deep patches for assigned keys.\n\t\t\t\t? rootPath!.concat(prop)\n\t\t\t\t: undefined\n\t\t// Drafts owned by `scope` are finalized here.\n\t\tconst res = finalize(rootScope, childValue, path)\n\t\tset(targetObject, prop, res)\n\t\t// Drafts from another scope must prevented to be frozen\n\t\t// if we got a draft back from finalize, we're in a nested produce and shouldn't freeze\n\t\tif (isDraft(res)) {\n\t\t\trootScope.canAutoFreeze_ = false\n\t\t} else return\n\t} else if (targetIsSet) {\n\t\ttargetObject.add(childValue)\n\t}\n\t// Search new objects for unfinalized drafts. Frozen objects should never contain drafts.\n\tif (isDraftable(childValue) && !isFrozen(childValue)) {\n\t\tif (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n\t\t\t// optimization: if an object is not a draft, and we don't have to\n\t\t\t// deepfreeze everything, and we are sure that no drafts are left in the remaining object\n\t\t\t// cause we saw and finalized all drafts already; we can stop visiting the rest of the tree.\n\t\t\t// This benefits especially adding large data tree's without further processing.\n\t\t\t// See add-data.js perf test\n\t\t\treturn\n\t\t}\n\t\tfinalize(rootScope, childValue)\n\t\t// immer deep freezes plain objects, so if there is no parent state, we freeze as well\n\t\tif (!parentState || !parentState.scope_.parent_)\n\t\t\tmaybeFreeze(rootScope, childValue)\n\t}\n}\n\nfunction maybeFreeze(scope: ImmerScope, value: any, deep = false) {\n\t// we never freeze for a non-root scope; as it would prevent pruning for drafts inside wrapping objects\n\tif (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n\t\tfreeze(value, deep)\n\t}\n}\n","import {\n\teach,\n\thas,\n\tis,\n\tisDraftable,\n\tshallowCopy,\n\tlatest,\n\tImmerBaseState,\n\tImmerState,\n\tDrafted,\n\tAnyObject,\n\tAnyArray,\n\tObjectish,\n\tgetCurrentScope,\n\tDRAFT_STATE,\n\tdie,\n\tcreateProxy,\n\tProxyType\n} from \"../internal\"\n\ninterface ProxyBaseState extends ImmerBaseState {\n\tassigned_: {\n\t\t[property: string]: boolean\n\t}\n\tparent_?: ImmerState\n\trevoke_(): void\n}\n\nexport interface ProxyObjectState extends ProxyBaseState {\n\ttype_: ProxyType.ProxyObject\n\tbase_: any\n\tcopy_: any\n\tdraft_: Drafted\n}\n\nexport interface ProxyArrayState extends ProxyBaseState {\n\ttype_: ProxyType.ProxyArray\n\tbase_: AnyArray\n\tcopy_: AnyArray | null\n\tdraft_: Drafted\n}\n\ntype ProxyState = ProxyObjectState | ProxyArrayState\n\n/**\n * Returns a new draft of the `base` object.\n *\n * The second argument is the parent draft-state (used internally).\n */\nexport function createProxyProxy(\n\tbase: T,\n\tparent?: ImmerState\n): Drafted {\n\tconst isArray = Array.isArray(base)\n\tconst state: ProxyState = {\n\t\ttype_: isArray ? ProxyType.ProxyArray : (ProxyType.ProxyObject as any),\n\t\t// Track which produce call this is associated with.\n\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t// True for both shallow and deep changes.\n\t\tmodified_: false,\n\t\t// Used during finalization.\n\t\tfinalized_: false,\n\t\t// Track which properties have been assigned (true) or deleted (false).\n\t\tassigned_: {},\n\t\t// The parent draft state.\n\t\tparent_: parent,\n\t\t// The base state.\n\t\tbase_: base,\n\t\t// The base proxy.\n\t\tdraft_: null as any, // set below\n\t\t// The base copy with any updated values.\n\t\tcopy_: null,\n\t\t// Called by the `produce` function.\n\t\trevoke_: null as any,\n\t\tisManual_: false\n\t}\n\n\t// the traps must target something, a bit like the 'real' base.\n\t// but also, we need to be able to determine from the target what the relevant state is\n\t// (to avoid creating traps per instance to capture the state in closure,\n\t// and to avoid creating weird hidden properties as well)\n\t// So the trick is to use 'state' as the actual 'target'! (and make sure we intercept everything)\n\t// Note that in the case of an array, we put the state in an array to have better Reflect defaults ootb\n\tlet target: T = state as any\n\tlet traps: ProxyHandler> = objectTraps\n\tif (isArray) {\n\t\ttarget = [state] as any\n\t\ttraps = arrayTraps\n\t}\n\n\tconst {revoke, proxy} = Proxy.revocable(target, traps)\n\tstate.draft_ = proxy as any\n\tstate.revoke_ = revoke\n\treturn proxy as any\n}\n\n/**\n * Object drafts\n */\nexport const objectTraps: ProxyHandler = {\n\tget(state, prop) {\n\t\tif (prop === DRAFT_STATE) return state\n\n\t\tconst source = latest(state)\n\t\tif (!has(source, prop)) {\n\t\t\t// non-existing or non-own property...\n\t\t\treturn readPropFromProto(state, source, prop)\n\t\t}\n\t\tconst value = source[prop]\n\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\treturn value\n\t\t}\n\t\t// Check for existing draft in modified state.\n\t\t// Assigned values are never drafted. This catches any drafts we created, too.\n\t\tif (value === peek(state.base_, prop)) {\n\t\t\tprepareCopy(state)\n\t\t\treturn (state.copy_![prop as any] = createProxy(\n\t\t\t\tstate.scope_.immer_,\n\t\t\t\tvalue,\n\t\t\t\tstate\n\t\t\t))\n\t\t}\n\t\treturn value\n\t},\n\thas(state, prop) {\n\t\treturn prop in latest(state)\n\t},\n\townKeys(state) {\n\t\treturn Reflect.ownKeys(latest(state))\n\t},\n\tset(\n\t\tstate: ProxyObjectState,\n\t\tprop: string /* strictly not, but helps TS */,\n\t\tvalue\n\t) {\n\t\tconst desc = getDescriptorFromProto(latest(state), prop)\n\t\tif (desc?.set) {\n\t\t\t// special case: if this write is captured by a setter, we have\n\t\t\t// to trigger it with the correct context\n\t\t\tdesc.set.call(state.draft_, value)\n\t\t\treturn true\n\t\t}\n\t\tif (!state.modified_) {\n\t\t\t// the last check is because we need to be able to distinguish setting a non-existing to undefined (which is a change)\n\t\t\t// from setting an existing property with value undefined to undefined (which is not a change)\n\t\t\tconst current = peek(latest(state), prop)\n\t\t\t// special case, if we assigning the original value to a draft, we can ignore the assignment\n\t\t\tconst currentState: ProxyObjectState = current?.[DRAFT_STATE]\n\t\t\tif (currentState && currentState.base_ === value) {\n\t\t\t\tstate.copy_![prop] = value\n\t\t\t\tstate.assigned_[prop] = false\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif (is(value, current) && (value !== undefined || has(state.base_, prop)))\n\t\t\t\treturn true\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t}\n\n\t\tif (\n\t\t\t(state.copy_![prop] === value &&\n\t\t\t\t// special case: handle new props with value 'undefined'\n\t\t\t\t(value !== undefined || prop in state.copy_)) ||\n\t\t\t// special case: NaN\n\t\t\t(Number.isNaN(value) && Number.isNaN(state.copy_![prop]))\n\t\t)\n\t\t\treturn true\n\n\t\t// @ts-ignore\n\t\tstate.copy_![prop] = value\n\t\tstate.assigned_[prop] = true\n\t\treturn true\n\t},\n\tdeleteProperty(state, prop: string) {\n\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\tif (peek(state.base_, prop) !== undefined || prop in state.base_) {\n\t\t\tstate.assigned_[prop] = false\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t} else {\n\t\t\t// if an originally not assigned property was deleted\n\t\t\tdelete state.assigned_[prop]\n\t\t}\n\t\t// @ts-ignore\n\t\tif (state.copy_) delete state.copy_[prop]\n\t\treturn true\n\t},\n\t// Note: We never coerce `desc.value` into an Immer draft, because we can't make\n\t// the same guarantee in ES5 mode.\n\tgetOwnPropertyDescriptor(state, prop) {\n\t\tconst owner = latest(state)\n\t\tconst desc = Reflect.getOwnPropertyDescriptor(owner, prop)\n\t\tif (!desc) return desc\n\t\treturn {\n\t\t\twritable: true,\n\t\t\tconfigurable: state.type_ !== ProxyType.ProxyArray || prop !== \"length\",\n\t\t\tenumerable: desc.enumerable,\n\t\t\tvalue: owner[prop]\n\t\t}\n\t},\n\tdefineProperty() {\n\t\tdie(11)\n\t},\n\tgetPrototypeOf(state) {\n\t\treturn Object.getPrototypeOf(state.base_)\n\t},\n\tsetPrototypeOf() {\n\t\tdie(12)\n\t}\n}\n\n/**\n * Array drafts\n */\n\nconst arrayTraps: ProxyHandler<[ProxyArrayState]> = {}\neach(objectTraps, (key, fn) => {\n\t// @ts-ignore\n\tarrayTraps[key] = function() {\n\t\targuments[0] = arguments[0][0]\n\t\treturn fn.apply(this, arguments)\n\t}\n})\narrayTraps.deleteProperty = function(state, prop) {\n\tif (__DEV__ && isNaN(parseInt(prop as any))) die(13)\n\t// @ts-ignore\n\treturn arrayTraps.set!.call(this, state, prop, undefined)\n}\narrayTraps.set = function(state, prop, value) {\n\tif (__DEV__ && prop !== \"length\" && isNaN(parseInt(prop as any))) die(14)\n\treturn objectTraps.set!.call(this, state[0], prop, value, state[0])\n}\n\n// Access a property without creating an Immer draft.\nfunction peek(draft: Drafted, prop: PropertyKey) {\n\tconst state = draft[DRAFT_STATE]\n\tconst source = state ? latest(state) : draft\n\treturn source[prop]\n}\n\nfunction readPropFromProto(state: ImmerState, source: any, prop: PropertyKey) {\n\tconst desc = getDescriptorFromProto(source, prop)\n\treturn desc\n\t\t? `value` in desc\n\t\t\t? desc.value\n\t\t\t: // This is a very special case, if the prop is a getter defined by the\n\t\t\t // prototype, we should invoke it with the draft as context!\n\t\t\t desc.get?.call(state.draft_)\n\t\t: undefined\n}\n\nfunction getDescriptorFromProto(\n\tsource: any,\n\tprop: PropertyKey\n): PropertyDescriptor | undefined {\n\t// 'in' checks proto!\n\tif (!(prop in source)) return undefined\n\tlet proto = Object.getPrototypeOf(source)\n\twhile (proto) {\n\t\tconst desc = Object.getOwnPropertyDescriptor(proto, prop)\n\t\tif (desc) return desc\n\t\tproto = Object.getPrototypeOf(proto)\n\t}\n\treturn undefined\n}\n\nexport function markChanged(state: ImmerState) {\n\tif (!state.modified_) {\n\t\tstate.modified_ = true\n\t\tif (state.parent_) {\n\t\t\tmarkChanged(state.parent_)\n\t\t}\n\t}\n}\n\nexport function prepareCopy(state: {base_: any; copy_: any}) {\n\tif (!state.copy_) {\n\t\tstate.copy_ = shallowCopy(state.base_)\n\t}\n}\n","import {\n\tIProduceWithPatches,\n\tIProduce,\n\tImmerState,\n\tDrafted,\n\tisDraftable,\n\tprocessResult,\n\tPatch,\n\tObjectish,\n\tDRAFT_STATE,\n\tDraft,\n\tPatchListener,\n\tisDraft,\n\tisMap,\n\tisSet,\n\tcreateProxyProxy,\n\tgetPlugin,\n\tdie,\n\thasProxies,\n\tenterScope,\n\trevokeScope,\n\tleaveScope,\n\tusePatchesInScope,\n\tgetCurrentScope,\n\tNOTHING,\n\tfreeze,\n\tcurrent\n} from \"../internal\"\n\ninterface ProducersFns {\n\tproduce: IProduce\n\tproduceWithPatches: IProduceWithPatches\n}\n\nexport class Immer implements ProducersFns {\n\tuseProxies_: boolean = hasProxies\n\n\tautoFreeze_: boolean = true\n\n\tconstructor(config?: {useProxies?: boolean; autoFreeze?: boolean}) {\n\t\tif (typeof config?.useProxies === \"boolean\")\n\t\t\tthis.setUseProxies(config!.useProxies)\n\t\tif (typeof config?.autoFreeze === \"boolean\")\n\t\t\tthis.setAutoFreeze(config!.autoFreeze)\n\t}\n\n\t/**\n\t * The `produce` function takes a value and a \"recipe function\" (whose\n\t * return value often depends on the base state). The recipe function is\n\t * free to mutate its first argument however it wants. All mutations are\n\t * only ever applied to a __copy__ of the base state.\n\t *\n\t * Pass only a function to create a \"curried producer\" which relieves you\n\t * from passing the recipe function every time.\n\t *\n\t * Only plain objects and arrays are made mutable. All other objects are\n\t * considered uncopyable.\n\t *\n\t * Note: This function is __bound__ to its `Immer` instance.\n\t *\n\t * @param {any} base - the initial state\n\t * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified\n\t * @param {Function} patchListener - optional function that will be called with all the patches produced here\n\t * @returns {any} a new state, or the initial state if nothing was modified\n\t */\n\tproduce: IProduce = (base: any, recipe?: any, patchListener?: any) => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\" && typeof recipe !== \"function\") {\n\t\t\tconst defaultBase = recipe\n\t\t\trecipe = base\n\n\t\t\tconst self = this\n\t\t\treturn function curriedProduce(\n\t\t\t\tthis: any,\n\t\t\t\tbase = defaultBase,\n\t\t\t\t...args: any[]\n\t\t\t) {\n\t\t\t\treturn self.produce(base, (draft: Drafted) => recipe.call(this, draft, ...args)) // prettier-ignore\n\t\t\t}\n\t\t}\n\n\t\tif (typeof recipe !== \"function\") die(6)\n\t\tif (patchListener !== undefined && typeof patchListener !== \"function\")\n\t\t\tdie(7)\n\n\t\tlet result\n\n\t\t// Only plain objects, arrays, and \"immerable classes\" are drafted.\n\t\tif (isDraftable(base)) {\n\t\t\tconst scope = enterScope(this)\n\t\t\tconst proxy = createProxy(this, base, undefined)\n\t\t\tlet hasError = true\n\t\t\ttry {\n\t\t\t\tresult = recipe(proxy)\n\t\t\t\thasError = false\n\t\t\t} finally {\n\t\t\t\t// finally instead of catch + rethrow better preserves original stack\n\t\t\t\tif (hasError) revokeScope(scope)\n\t\t\t\telse leaveScope(scope)\n\t\t\t}\n\t\t\tif (typeof Promise !== \"undefined\" && result instanceof Promise) {\n\t\t\t\treturn result.then(\n\t\t\t\t\tresult => {\n\t\t\t\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\t\t\t\treturn processResult(result, scope)\n\t\t\t\t\t},\n\t\t\t\t\terror => {\n\t\t\t\t\t\trevokeScope(scope)\n\t\t\t\t\t\tthrow error\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t}\n\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\treturn processResult(result, scope)\n\t\t} else if (!base || typeof base !== \"object\") {\n\t\t\tresult = recipe(base)\n\t\t\tif (result === undefined) result = base\n\t\t\tif (result === NOTHING) result = undefined\n\t\t\tif (this.autoFreeze_) freeze(result, true)\n\t\t\tif (patchListener) {\n\t\t\t\tconst p: Patch[] = []\n\t\t\t\tconst ip: Patch[] = []\n\t\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(base, result, p, ip)\n\t\t\t\tpatchListener(p, ip)\n\t\t\t}\n\t\t\treturn result\n\t\t} else die(21, base)\n\t}\n\n\tproduceWithPatches: IProduceWithPatches = (base: any, recipe?: any): any => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\") {\n\t\t\treturn (state: any, ...args: any[]) =>\n\t\t\t\tthis.produceWithPatches(state, (draft: any) => base(draft, ...args))\n\t\t}\n\n\t\tlet patches: Patch[], inversePatches: Patch[]\n\t\tconst result = this.produce(base, recipe, (p: Patch[], ip: Patch[]) => {\n\t\t\tpatches = p\n\t\t\tinversePatches = ip\n\t\t})\n\n\t\tif (typeof Promise !== \"undefined\" && result instanceof Promise) {\n\t\t\treturn result.then(nextState => [nextState, patches!, inversePatches!])\n\t\t}\n\t\treturn [result, patches!, inversePatches!]\n\t}\n\n\tcreateDraft(base: T): Draft {\n\t\tif (!isDraftable(base)) die(8)\n\t\tif (isDraft(base)) base = current(base)\n\t\tconst scope = enterScope(this)\n\t\tconst proxy = createProxy(this, base, undefined)\n\t\tproxy[DRAFT_STATE].isManual_ = true\n\t\tleaveScope(scope)\n\t\treturn proxy as any\n\t}\n\n\tfinishDraft>(\n\t\tdraft: D,\n\t\tpatchListener?: PatchListener\n\t): D extends Draft ? T : never {\n\t\tconst state: ImmerState = draft && (draft as any)[DRAFT_STATE]\n\t\tif (__DEV__) {\n\t\t\tif (!state || !state.isManual_) die(9)\n\t\t\tif (state.finalized_) die(10)\n\t\t}\n\t\tconst {scope_: scope} = state\n\t\tusePatchesInScope(scope, patchListener)\n\t\treturn processResult(undefined, scope)\n\t}\n\n\t/**\n\t * Pass true to automatically freeze all copies created by Immer.\n\t *\n\t * By default, auto-freezing is enabled.\n\t */\n\tsetAutoFreeze(value: boolean) {\n\t\tthis.autoFreeze_ = value\n\t}\n\n\t/**\n\t * Pass true to use the ES2015 `Proxy` class when creating drafts, which is\n\t * always faster than using ES5 proxies.\n\t *\n\t * By default, feature detection is used, so calling this is rarely necessary.\n\t */\n\tsetUseProxies(value: boolean) {\n\t\tif (value && !hasProxies) {\n\t\t\tdie(20)\n\t\t}\n\t\tthis.useProxies_ = value\n\t}\n\n\tapplyPatches(base: T, patches: Patch[]): T {\n\t\t// If a patch replaces the entire state, take that replacement as base\n\t\t// before applying patches\n\t\tlet i: number\n\t\tfor (i = patches.length - 1; i >= 0; i--) {\n\t\t\tconst patch = patches[i]\n\t\t\tif (patch.path.length === 0 && patch.op === \"replace\") {\n\t\t\t\tbase = patch.value\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// If there was a patch that replaced the entire state, start from the\n\t\t// patch after that.\n\t\tif (i > -1) {\n\t\t\tpatches = patches.slice(i + 1)\n\t\t}\n\n\t\tconst applyPatchesImpl = getPlugin(\"Patches\").applyPatches_\n\t\tif (isDraft(base)) {\n\t\t\t// N.B: never hits if some patch a replacement, patches are never drafts\n\t\t\treturn applyPatchesImpl(base, patches)\n\t\t}\n\t\t// Otherwise, produce a copy of the base state.\n\t\treturn this.produce(base, (draft: Drafted) =>\n\t\t\tapplyPatchesImpl(draft, patches)\n\t\t)\n\t}\n}\n\nexport function createProxy(\n\timmer: Immer,\n\tvalue: T,\n\tparent?: ImmerState\n): Drafted {\n\t// precondition: createProxy should be guarded by isDraftable, so we know we can safely draft\n\tconst draft: Drafted = isMap(value)\n\t\t? getPlugin(\"MapSet\").proxyMap_(value, parent)\n\t\t: isSet(value)\n\t\t? getPlugin(\"MapSet\").proxySet_(value, parent)\n\t\t: immer.useProxies_\n\t\t? createProxyProxy(value, parent)\n\t\t: getPlugin(\"ES5\").createES5Proxy_(value, parent)\n\n\tconst scope = parent ? parent.scope_ : getCurrentScope()\n\tscope.drafts_.push(draft)\n\treturn draft\n}\n","import {\n\tdie,\n\tisDraft,\n\tshallowCopy,\n\teach,\n\tDRAFT_STATE,\n\tget,\n\tset,\n\tImmerState,\n\tisDraftable,\n\tArchtype,\n\tgetArchtype,\n\tgetPlugin\n} from \"../internal\"\n\n/** Takes a snapshot of the current state of a draft and finalizes it (but without freezing). This is a great utility to print the current state during debugging (no Proxies in the way). The output of current can also be safely leaked outside the producer. */\nexport function current(value: T): T\nexport function current(value: any): any {\n\tif (!isDraft(value)) die(22, value)\n\treturn currentImpl(value)\n}\n\nfunction currentImpl(value: any): any {\n\tif (!isDraftable(value)) return value\n\tconst state: ImmerState | undefined = value[DRAFT_STATE]\n\tlet copy: any\n\tconst archType = getArchtype(value)\n\tif (state) {\n\t\tif (\n\t\t\t!state.modified_ &&\n\t\t\t(state.type_ < 4 || !getPlugin(\"ES5\").hasChanges_(state as any))\n\t\t)\n\t\t\treturn state.base_\n\t\t// Optimization: avoid generating new drafts during copying\n\t\tstate.finalized_ = true\n\t\tcopy = copyHelper(value, archType)\n\t\tstate.finalized_ = false\n\t} else {\n\t\tcopy = copyHelper(value, archType)\n\t}\n\n\teach(copy, (key, childValue) => {\n\t\tif (state && get(state.base_, key) === childValue) return // no need to copy or search in something that didn't change\n\t\tset(copy, key, currentImpl(childValue))\n\t})\n\t// In the future, we might consider freezing here, based on the current settings\n\treturn archType === Archtype.Set ? new Set(copy) : copy\n}\n\nfunction copyHelper(value: any, archType: number): any {\n\t// creates a shallow copy, even if it is a map or set\n\tswitch (archType) {\n\t\tcase Archtype.Map:\n\t\t\treturn new Map(value)\n\t\tcase Archtype.Set:\n\t\t\t// Set will be cloned as array temporarily, so that we can replace individual items\n\t\t\treturn Array.from(value)\n\t}\n\treturn shallowCopy(value)\n}\n","import {\n\tImmerState,\n\tDrafted,\n\tES5ArrayState,\n\tES5ObjectState,\n\teach,\n\thas,\n\tisDraft,\n\tlatest,\n\tDRAFT_STATE,\n\tis,\n\tloadPlugin,\n\tImmerScope,\n\tProxyType,\n\tgetCurrentScope,\n\tdie,\n\tmarkChanged,\n\tobjectTraps,\n\townKeys,\n\tgetOwnPropertyDescriptors\n} from \"../internal\"\n\ntype ES5State = ES5ArrayState | ES5ObjectState\n\nexport function enableES5() {\n\tfunction willFinalizeES5_(\n\t\tscope: ImmerScope,\n\t\tresult: any,\n\t\tisReplaced: boolean\n\t) {\n\t\tif (!isReplaced) {\n\t\t\tif (scope.patches_) {\n\t\t\t\tmarkChangesRecursively(scope.drafts_![0])\n\t\t\t}\n\t\t\t// This is faster when we don't care about which attributes changed.\n\t\t\tmarkChangesSweep(scope.drafts_)\n\t\t}\n\t\t// When a child draft is returned, look for changes.\n\t\telse if (\n\t\t\tisDraft(result) &&\n\t\t\t(result[DRAFT_STATE] as ES5State).scope_ === scope\n\t\t) {\n\t\t\tmarkChangesSweep(scope.drafts_)\n\t\t}\n\t}\n\n\tfunction createES5Draft(isArray: boolean, base: any) {\n\t\tif (isArray) {\n\t\t\tconst draft = new Array(base.length)\n\t\t\tfor (let i = 0; i < base.length; i++)\n\t\t\t\tObject.defineProperty(draft, \"\" + i, proxyProperty(i, true))\n\t\t\treturn draft\n\t\t} else {\n\t\t\tconst descriptors = getOwnPropertyDescriptors(base)\n\t\t\tdelete descriptors[DRAFT_STATE as any]\n\t\t\tconst keys = ownKeys(descriptors)\n\t\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\t\tconst key: any = keys[i]\n\t\t\t\tdescriptors[key] = proxyProperty(\n\t\t\t\t\tkey,\n\t\t\t\t\tisArray || !!descriptors[key].enumerable\n\t\t\t\t)\n\t\t\t}\n\t\t\treturn Object.create(Object.getPrototypeOf(base), descriptors)\n\t\t}\n\t}\n\n\tfunction createES5Proxy_(\n\t\tbase: T,\n\t\tparent?: ImmerState\n\t): Drafted {\n\t\tconst isArray = Array.isArray(base)\n\t\tconst draft = createES5Draft(isArray, base)\n\n\t\tconst state: ES5ObjectState | ES5ArrayState = {\n\t\t\ttype_: isArray ? ProxyType.ES5Array : (ProxyType.ES5Object as any),\n\t\t\tscope_: parent ? parent.scope_ : getCurrentScope(),\n\t\t\tmodified_: false,\n\t\t\tfinalized_: false,\n\t\t\tassigned_: {},\n\t\t\tparent_: parent,\n\t\t\t// base is the object we are drafting\n\t\t\tbase_: base,\n\t\t\t// draft is the draft object itself, that traps all reads and reads from either the base (if unmodified) or copy (if modified)\n\t\t\tdraft_: draft,\n\t\t\tcopy_: null,\n\t\t\trevoked_: false,\n\t\t\tisManual_: false\n\t\t}\n\n\t\tObject.defineProperty(draft, DRAFT_STATE, {\n\t\t\tvalue: state,\n\t\t\t// enumerable: false <- the default\n\t\t\twritable: true\n\t\t})\n\t\treturn draft\n\t}\n\n\t// property descriptors are recycled to make sure we don't create a get and set closure per property,\n\t// but share them all instead\n\tconst descriptors: {[prop: string]: PropertyDescriptor} = {}\n\n\tfunction proxyProperty(\n\t\tprop: string | number,\n\t\tenumerable: boolean\n\t): PropertyDescriptor {\n\t\tlet desc = descriptors[prop]\n\t\tif (desc) {\n\t\t\tdesc.enumerable = enumerable\n\t\t} else {\n\t\t\tdescriptors[prop] = desc = {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable,\n\t\t\t\tget(this: any) {\n\t\t\t\t\tconst state = this[DRAFT_STATE]\n\t\t\t\t\tif (__DEV__) assertUnrevoked(state)\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn objectTraps.get(state, prop)\n\t\t\t\t},\n\t\t\t\tset(this: any, value) {\n\t\t\t\t\tconst state = this[DRAFT_STATE]\n\t\t\t\t\tif (__DEV__) assertUnrevoked(state)\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tobjectTraps.set(state, prop, value)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn desc\n\t}\n\n\t// This looks expensive, but only proxies are visited, and only objects without known changes are scanned.\n\tfunction markChangesSweep(drafts: Drafted[]) {\n\t\t// The natural order of drafts in the `scope` array is based on when they\n\t\t// were accessed. By processing drafts in reverse natural order, we have a\n\t\t// better chance of processing leaf nodes first. When a leaf node is known to\n\t\t// have changed, we can avoid any traversal of its ancestor nodes.\n\t\tfor (let i = drafts.length - 1; i >= 0; i--) {\n\t\t\tconst state: ES5State = drafts[i][DRAFT_STATE]\n\t\t\tif (!state.modified_) {\n\t\t\t\tswitch (state.type_) {\n\t\t\t\t\tcase ProxyType.ES5Array:\n\t\t\t\t\t\tif (hasArrayChanges(state)) markChanged(state)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase ProxyType.ES5Object:\n\t\t\t\t\t\tif (hasObjectChanges(state)) markChanged(state)\n\t\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction markChangesRecursively(object: any) {\n\t\tif (!object || typeof object !== \"object\") return\n\t\tconst state: ES5State | undefined = object[DRAFT_STATE]\n\t\tif (!state) return\n\t\tconst {base_, draft_, assigned_, type_} = state\n\t\tif (type_ === ProxyType.ES5Object) {\n\t\t\t// Look for added keys.\n\t\t\t// probably there is a faster way to detect changes, as sweep + recurse seems to do some\n\t\t\t// unnecessary work.\n\t\t\t// also: probably we can store the information we detect here, to speed up tree finalization!\n\t\t\teach(draft_, key => {\n\t\t\t\tif ((key as any) === DRAFT_STATE) return\n\t\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\t\tif ((base_ as any)[key] === undefined && !has(base_, key)) {\n\t\t\t\t\tassigned_[key] = true\n\t\t\t\t\tmarkChanged(state)\n\t\t\t\t} else if (!assigned_[key]) {\n\t\t\t\t\t// Only untouched properties trigger recursion.\n\t\t\t\t\tmarkChangesRecursively(draft_[key])\n\t\t\t\t}\n\t\t\t})\n\t\t\t// Look for removed keys.\n\t\t\teach(base_, key => {\n\t\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\t\tif (draft_[key] === undefined && !has(draft_, key)) {\n\t\t\t\t\tassigned_[key] = false\n\t\t\t\t\tmarkChanged(state)\n\t\t\t\t}\n\t\t\t})\n\t\t} else if (type_ === ProxyType.ES5Array) {\n\t\t\tif (hasArrayChanges(state as ES5ArrayState)) {\n\t\t\t\tmarkChanged(state)\n\t\t\t\tassigned_.length = true\n\t\t\t}\n\n\t\t\tif (draft_.length < base_.length) {\n\t\t\t\tfor (let i = draft_.length; i < base_.length; i++) assigned_[i] = false\n\t\t\t} else {\n\t\t\t\tfor (let i = base_.length; i < draft_.length; i++) assigned_[i] = true\n\t\t\t}\n\n\t\t\t// Minimum count is enough, the other parts has been processed.\n\t\t\tconst min = Math.min(draft_.length, base_.length)\n\n\t\t\tfor (let i = 0; i < min; i++) {\n\t\t\t\t// Only untouched indices trigger recursion.\n\t\t\t\tif (!draft_.hasOwnProperty(i)) {\n\t\t\t\t\tassigned_[i] = true\n\t\t\t\t}\n\t\t\t\tif (assigned_[i] === undefined) markChangesRecursively(draft_[i])\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction hasObjectChanges(state: ES5ObjectState) {\n\t\tconst {base_, draft_} = state\n\n\t\t// Search for added keys and changed keys. Start at the back, because\n\t\t// non-numeric keys are ordered by time of definition on the object.\n\t\tconst keys = ownKeys(draft_)\n\t\tfor (let i = keys.length - 1; i >= 0; i--) {\n\t\t\tconst key: any = keys[i]\n\t\t\tif (key === DRAFT_STATE) continue\n\t\t\tconst baseValue = base_[key]\n\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\tif (baseValue === undefined && !has(base_, key)) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\t// Once a base key is deleted, future changes go undetected, because its\n\t\t\t// descriptor is erased. This branch detects any missed changes.\n\t\t\telse {\n\t\t\t\tconst value = draft_[key]\n\t\t\t\tconst state: ImmerState = value && value[DRAFT_STATE]\n\t\t\t\tif (state ? state.base_ !== baseValue : !is(value, baseValue)) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// At this point, no keys were added or changed.\n\t\t// Compare key count to determine if keys were deleted.\n\t\tconst baseIsDraft = !!base_[DRAFT_STATE as any]\n\t\treturn keys.length !== ownKeys(base_).length + (baseIsDraft ? 0 : 1) // + 1 to correct for DRAFT_STATE\n\t}\n\n\tfunction hasArrayChanges(state: ES5ArrayState) {\n\t\tconst {draft_} = state\n\t\tif (draft_.length !== state.base_.length) return true\n\t\t// See #116\n\t\t// If we first shorten the length, our array interceptors will be removed.\n\t\t// If after that new items are added, result in the same original length,\n\t\t// those last items will have no intercepting property.\n\t\t// So if there is no own descriptor on the last position, we know that items were removed and added\n\t\t// N.B.: splice, unshift, etc only shift values around, but not prop descriptors, so we only have to check\n\t\t// the last one\n\t\t// last descriptor can be not a trap, if the array was extended\n\t\tconst descriptor = Object.getOwnPropertyDescriptor(\n\t\t\tdraft_,\n\t\t\tdraft_.length - 1\n\t\t)\n\t\t// descriptor can be null, but only for newly created sparse arrays, eg. new Array(10)\n\t\tif (descriptor && !descriptor.get) return true\n\t\t// if we miss a property, it has been deleted, so array probobaly changed\n\t\tfor (let i = 0; i < draft_.length; i++) {\n\t\t\tif (!draft_.hasOwnProperty(i)) return true\n\t\t}\n\t\t// For all other cases, we don't have to compare, as they would have been picked up by the index setters\n\t\treturn false\n\t}\n\n\tfunction hasChanges_(state: ES5State) {\n\t\treturn state.type_ === ProxyType.ES5Object\n\t\t\t? hasObjectChanges(state)\n\t\t\t: hasArrayChanges(state)\n\t}\n\n\tfunction assertUnrevoked(state: any /*ES5State | MapState | SetState*/) {\n\t\tif (state.revoked_) die(3, JSON.stringify(latest(state)))\n\t}\n\n\tloadPlugin(\"ES5\", {\n\t\tcreateES5Proxy_,\n\t\twillFinalizeES5_,\n\t\thasChanges_\n\t})\n}\n","import {\n\tIProduce,\n\tIProduceWithPatches,\n\tImmer,\n\tDraft,\n\tImmutable\n} from \"./internal\"\n\nexport {\n\tDraft,\n\tImmutable,\n\tPatch,\n\tPatchListener,\n\toriginal,\n\tcurrent,\n\tisDraft,\n\tisDraftable,\n\tNOTHING as nothing,\n\tDRAFTABLE as immerable,\n\tfreeze\n} from \"./internal\"\n\nconst immer = new Immer()\n\n/**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\nexport const produce: IProduce = immer.produce\nexport default produce\n\n/**\n * Like `produce`, but `produceWithPatches` always returns a tuple\n * [nextState, patches, inversePatches] (instead of just the next state)\n */\nexport const produceWithPatches: IProduceWithPatches = immer.produceWithPatches.bind(\n\timmer\n)\n\n/**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * Always freeze by default, even in production mode\n */\nexport const setAutoFreeze = immer.setAutoFreeze.bind(immer)\n\n/**\n * Pass true to use the ES2015 `Proxy` class when creating drafts, which is\n * always faster than using ES5 proxies.\n *\n * By default, feature detection is used, so calling this is rarely necessary.\n */\nexport const setUseProxies = immer.setUseProxies.bind(immer)\n\n/**\n * Apply an array of Immer patches to the first argument.\n *\n * This function is a producer, which means copy-on-write is in effect.\n */\nexport const applyPatches = immer.applyPatches.bind(immer)\n\n/**\n * Create an Immer draft from the given base state, which may be a draft itself.\n * The draft can be modified until you finalize it with the `finishDraft` function.\n */\nexport const createDraft = immer.createDraft.bind(immer)\n\n/**\n * Finalize an Immer draft from a `createDraft` call, returning the base state\n * (if no changes were made) or a modified copy. The draft must *not* be\n * mutated afterwards.\n *\n * Pass a function as the 2nd argument to generate Immer patches based on the\n * changes that were made.\n */\nexport const finishDraft = immer.finishDraft.bind(immer)\n\n/**\n * This function is actually a no-op, but can be used to cast an immutable type\n * to an draft type and make TypeScript happy\n *\n * @param value\n */\nexport function castDraft(value: T): Draft {\n\treturn value as any\n}\n\n/**\n * This function is actually a no-op, but can be used to cast a mutable type\n * to an immutable type and make TypeScript happy\n * @param value\n */\nexport function castImmutable(value: T): Immutable {\n\treturn value as any\n}\n\nexport {Immer}\n\nexport {enableES5} from \"./plugins/es5\"\nexport {enablePatches} from \"./plugins/patches\"\nexport {enableMapSet} from \"./plugins/mapset\"\nexport {enableAllPlugins} from \"./plugins/all\"\n","// Should be no imports here!\n\n// Some things that should be evaluated before all else...\n\n// We only want to know if non-polyfilled symbols are available\nconst hasSymbol =\n\ttypeof Symbol !== \"undefined\" && typeof Symbol(\"x\") === \"symbol\"\nexport const hasMap = typeof Map !== \"undefined\"\nexport const hasSet = typeof Set !== \"undefined\"\nexport const hasProxies =\n\ttypeof Proxy !== \"undefined\" &&\n\ttypeof Proxy.revocable !== \"undefined\" &&\n\ttypeof Reflect !== \"undefined\"\n\n/**\n * The sentinel value returned by producers to replace the draft with undefined.\n */\nexport const NOTHING: Nothing = hasSymbol\n\t? Symbol.for(\"immer-nothing\")\n\t: ({[\"immer-nothing\"]: true} as any)\n\n/**\n * To let Immer treat your class instances as plain immutable objects\n * (albeit with a custom prototype), you must define either an instance property\n * or a static property on each of your custom classes.\n *\n * Otherwise, your class instance will never be drafted, which means it won't be\n * safe to mutate in a produce callback.\n */\nexport const DRAFTABLE: unique symbol = hasSymbol\n\t? Symbol.for(\"immer-draftable\")\n\t: (\"__$immer_draftable\" as any)\n\nexport const DRAFT_STATE: unique symbol = hasSymbol\n\t? Symbol.for(\"immer-state\")\n\t: (\"__$immer_state\" as any)\n\n// Even a polyfilled Symbol might provide Symbol.iterator\nexport const iteratorSymbol: typeof Symbol.iterator =\n\t(typeof Symbol != \"undefined\" && Symbol.iterator) || (\"@@iterator\" as any)\n\n/** Use a class type for `nothing` so its type is unique */\nexport class Nothing {\n\t// This lets us do `Exclude`\n\t// @ts-ignore\n\tprivate _!: unique symbol\n}\n","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (process.env.NODE_ENV !== 'production') {\n typeOfVal = miniKindOf(val);\n }\n\n return typeOfVal;\n}\n\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nvar legacy_createStore = createStore;\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore, legacy_createStore };\n","// Cache implementation based on Erik Rasmussen's `lru-memoize`:\n// https://github.com/erikras/lru-memoize\nvar NOT_FOUND = 'NOT_FOUND';\n\nfunction createSingletonCache(equals) {\n var entry;\n return {\n get: function get(key) {\n if (entry && equals(entry.key, key)) {\n return entry.value;\n }\n\n return NOT_FOUND;\n },\n put: function put(key, value) {\n entry = {\n key: key,\n value: value\n };\n },\n getEntries: function getEntries() {\n return entry ? [entry] : [];\n },\n clear: function clear() {\n entry = undefined;\n }\n };\n}\n\nfunction createLruCache(maxSize, equals) {\n var entries = [];\n\n function get(key) {\n var cacheIndex = entries.findIndex(function (entry) {\n return equals(key, entry.key);\n }); // We found a cached entry\n\n if (cacheIndex > -1) {\n var entry = entries[cacheIndex]; // Cached entry not at top of cache, move it to the top\n\n if (cacheIndex > 0) {\n entries.splice(cacheIndex, 1);\n entries.unshift(entry);\n }\n\n return entry.value;\n } // No entry found in cache, return sentinel\n\n\n return NOT_FOUND;\n }\n\n function put(key, value) {\n if (get(key) === NOT_FOUND) {\n // TODO Is unshift slow?\n entries.unshift({\n key: key,\n value: value\n });\n\n if (entries.length > maxSize) {\n entries.pop();\n }\n }\n }\n\n function getEntries() {\n return entries;\n }\n\n function clear() {\n entries = [];\n }\n\n return {\n get: get,\n put: put,\n getEntries: getEntries,\n clear: clear\n };\n}\n\nexport var defaultEqualityCheck = function defaultEqualityCheck(a, b) {\n return a === b;\n};\nexport function createCacheKeyComparator(equalityCheck) {\n return function areArgumentsShallowlyEqual(prev, next) {\n if (prev === null || next === null || prev.length !== next.length) {\n return false;\n } // Do this in a for loop (and not a `forEach` or an `every`) so we can determine equality as fast as possible.\n\n\n var length = prev.length;\n\n for (var i = 0; i < length; i++) {\n if (!equalityCheck(prev[i], next[i])) {\n return false;\n }\n }\n\n return true;\n };\n}\n// defaultMemoize now supports a configurable cache size with LRU behavior,\n// and optional comparison of the result value with existing values\nexport function defaultMemoize(func, equalityCheckOrOptions) {\n var providedOptions = typeof equalityCheckOrOptions === 'object' ? equalityCheckOrOptions : {\n equalityCheck: equalityCheckOrOptions\n };\n var _providedOptions$equa = providedOptions.equalityCheck,\n equalityCheck = _providedOptions$equa === void 0 ? defaultEqualityCheck : _providedOptions$equa,\n _providedOptions$maxS = providedOptions.maxSize,\n maxSize = _providedOptions$maxS === void 0 ? 1 : _providedOptions$maxS,\n resultEqualityCheck = providedOptions.resultEqualityCheck;\n var comparator = createCacheKeyComparator(equalityCheck);\n var cache = maxSize === 1 ? createSingletonCache(comparator) : createLruCache(maxSize, comparator); // we reference arguments instead of spreading them for performance reasons\n\n function memoized() {\n var value = cache.get(arguments);\n\n if (value === NOT_FOUND) {\n // @ts-ignore\n value = func.apply(null, arguments);\n\n if (resultEqualityCheck) {\n var entries = cache.getEntries();\n var matchingEntry = entries.find(function (entry) {\n return resultEqualityCheck(entry.value, value);\n });\n\n if (matchingEntry) {\n value = matchingEntry.value;\n }\n }\n\n cache.put(arguments, value);\n }\n\n return value;\n }\n\n memoized.clearCache = function () {\n return cache.clear();\n };\n\n return memoized;\n}","import { defaultMemoize, defaultEqualityCheck } from './defaultMemoize';\nexport { defaultMemoize, defaultEqualityCheck };\n\nfunction getDependencies(funcs) {\n var dependencies = Array.isArray(funcs[0]) ? funcs[0] : funcs;\n\n if (!dependencies.every(function (dep) {\n return typeof dep === 'function';\n })) {\n var dependencyTypes = dependencies.map(function (dep) {\n return typeof dep === 'function' ? \"function \" + (dep.name || 'unnamed') + \"()\" : typeof dep;\n }).join(', ');\n throw new Error(\"createSelector expects all input-selectors to be functions, but received the following types: [\" + dependencyTypes + \"]\");\n }\n\n return dependencies;\n}\n\nexport function createSelectorCreator(memoize) {\n for (var _len = arguments.length, memoizeOptionsFromArgs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n memoizeOptionsFromArgs[_key - 1] = arguments[_key];\n }\n\n var createSelector = function createSelector() {\n for (var _len2 = arguments.length, funcs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n funcs[_key2] = arguments[_key2];\n }\n\n var _recomputations = 0;\n\n var _lastResult; // Due to the intricacies of rest params, we can't do an optional arg after `...funcs`.\n // So, start by declaring the default value here.\n // (And yes, the words 'memoize' and 'options' appear too many times in this next sequence.)\n\n\n var directlyPassedOptions = {\n memoizeOptions: undefined\n }; // Normally, the result func or \"output selector\" is the last arg\n\n var resultFunc = funcs.pop(); // If the result func is actually an _object_, assume it's our options object\n\n if (typeof resultFunc === 'object') {\n directlyPassedOptions = resultFunc; // and pop the real result func off\n\n resultFunc = funcs.pop();\n }\n\n if (typeof resultFunc !== 'function') {\n throw new Error(\"createSelector expects an output function after the inputs, but received: [\" + typeof resultFunc + \"]\");\n } // Determine which set of options we're using. Prefer options passed directly,\n // but fall back to options given to createSelectorCreator.\n\n\n var _directlyPassedOption = directlyPassedOptions,\n _directlyPassedOption2 = _directlyPassedOption.memoizeOptions,\n memoizeOptions = _directlyPassedOption2 === void 0 ? memoizeOptionsFromArgs : _directlyPassedOption2; // Simplifying assumption: it's unlikely that the first options arg of the provided memoizer\n // is an array. In most libs I've looked at, it's an equality function or options object.\n // Based on that, if `memoizeOptions` _is_ an array, we assume it's a full\n // user-provided array of options. Otherwise, it must be just the _first_ arg, and so\n // we wrap it in an array so we can apply it.\n\n var finalMemoizeOptions = Array.isArray(memoizeOptions) ? memoizeOptions : [memoizeOptions];\n var dependencies = getDependencies(funcs);\n var memoizedResultFunc = memoize.apply(void 0, [function recomputationWrapper() {\n _recomputations++; // apply arguments instead of spreading for performance.\n\n return resultFunc.apply(null, arguments);\n }].concat(finalMemoizeOptions)); // If a selector is called with the exact same arguments we don't need to traverse our dependencies again.\n\n var selector = memoize(function dependenciesChecker() {\n var params = [];\n var length = dependencies.length;\n\n for (var i = 0; i < length; i++) {\n // apply arguments instead of spreading and mutate a local list of params for performance.\n // @ts-ignore\n params.push(dependencies[i].apply(null, arguments));\n } // apply arguments instead of spreading for performance.\n\n\n _lastResult = memoizedResultFunc.apply(null, params);\n return _lastResult;\n });\n Object.assign(selector, {\n resultFunc: resultFunc,\n memoizedResultFunc: memoizedResultFunc,\n dependencies: dependencies,\n lastResult: function lastResult() {\n return _lastResult;\n },\n recomputations: function recomputations() {\n return _recomputations;\n },\n resetRecomputations: function resetRecomputations() {\n return _recomputations = 0;\n }\n });\n return selector;\n }; // @ts-ignore\n\n\n return createSelector;\n}\nexport var createSelector = /* #__PURE__ */createSelectorCreator(defaultMemoize);\n// Manual definition of state and output arguments\nexport var createStructuredSelector = function createStructuredSelector(selectors, selectorCreator) {\n if (selectorCreator === void 0) {\n selectorCreator = createSelector;\n }\n\n if (typeof selectors !== 'object') {\n throw new Error('createStructuredSelector expects first argument to be an object ' + (\"where each property is a selector, instead received a \" + typeof selectors));\n }\n\n var objectKeys = Object.keys(selectors);\n var resultSelector = selectorCreator( // @ts-ignore\n objectKeys.map(function (key) {\n return selectors[key];\n }), function () {\n for (var _len3 = arguments.length, values = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n values[_key3] = arguments[_key3];\n }\n\n return values.reduce(function (composition, value, index) {\n composition[objectKeys[index]] = value;\n return composition;\n }, {});\n });\n return resultSelector;\n};","/** A function that accepts a potential \"extra argument\" value to be injected later,\r\n * and returns an instance of the thunk middleware that uses that value\r\n */\nfunction createThunkMiddleware(extraArgument) {\n // Standard Redux middleware definition pattern:\n // See: https://redux.js.org/tutorials/fundamentals/part-4-store#writing-custom-middleware\n var middleware = function middleware(_ref) {\n var dispatch = _ref.dispatch,\n getState = _ref.getState;\n return function (next) {\n return function (action) {\n // The thunk middleware looks for any functions that were passed to `store.dispatch`.\n // If this \"action\" is really a function, call it and return the result.\n if (typeof action === 'function') {\n // Inject the store's `dispatch` and `getState` methods, as well as any \"extra arg\"\n return action(dispatch, getState, extraArgument);\n } // Otherwise, pass the action down the middleware chain as usual\n\n\n return next(action);\n };\n };\n };\n\n return middleware;\n}\n\nvar thunk = createThunkMiddleware(); // Attach the factory function so users can create a customized version\n// with whatever \"extra arg\" they want to inject into their thunks\n\nthunk.withExtraArgument = createThunkMiddleware;\nexport default thunk;","import { current, isDraft } from 'immer'\r\nimport { createSelector } from 'reselect'\r\n\r\n/**\r\n * \"Draft-Safe\" version of `reselect`'s `createSelector`:\r\n * If an `immer`-drafted object is passed into the resulting selector's first argument,\r\n * the selector will act on the current draft value, instead of returning a cached value\r\n * that might be possibly outdated if the draft has been modified since.\r\n * @public\r\n */\r\nexport const createDraftSafeSelector: typeof createSelector = (\r\n ...args: unknown[]\r\n) => {\r\n const selector = (createSelector as any)(...args)\r\n const wrappedSelector = (value: unknown, ...rest: unknown[]) =>\r\n selector(isDraft(value) ? current(value) : value, ...rest)\r\n return wrappedSelector as any\r\n}\r\n","import type { Action, ActionCreator, StoreEnhancer } from 'redux'\r\nimport { compose } from 'redux'\r\n\r\n/**\r\n * @public\r\n */\r\nexport interface DevToolsEnhancerOptions {\r\n /**\r\n * the instance name to be showed on the monitor page. Default value is `document.title`.\r\n * If not specified and there's no document title, it will consist of `tabId` and `instanceId`.\r\n */\r\n name?: string\r\n /**\r\n * action creators functions to be available in the Dispatcher.\r\n */\r\n actionCreators?: ActionCreator[] | { [key: string]: ActionCreator }\r\n /**\r\n * if more than one action is dispatched in the indicated interval, all new actions will be collected and sent at once.\r\n * It is the joint between performance and speed. When set to `0`, all actions will be sent instantly.\r\n * Set it to a higher value when experiencing perf issues (also `maxAge` to a lower value).\r\n *\r\n * @default 500 ms.\r\n */\r\n latency?: number\r\n /**\r\n * (> 1) - maximum allowed actions to be stored in the history tree. The oldest actions are removed once maxAge is reached. It's critical for performance.\r\n *\r\n * @default 50\r\n */\r\n maxAge?: number\r\n /**\r\n * Customizes how actions and state are serialized and deserialized. Can be a boolean or object. If given a boolean, the behavior is the same as if you\r\n * were to pass an object and specify `options` as a boolean. Giving an object allows fine-grained customization using the `replacer` and `reviver`\r\n * functions.\r\n */\r\n serialize?:\r\n | boolean\r\n | {\r\n /**\r\n * - `undefined` - will use regular `JSON.stringify` to send data (it's the fast mode).\r\n * - `false` - will handle also circular references.\r\n * - `true` - will handle also date, regex, undefined, error objects, symbols, maps, sets and functions.\r\n * - object, which contains `date`, `regex`, `undefined`, `error`, `symbol`, `map`, `set` and `function` keys.\r\n * For each of them you can indicate if to include (by setting as `true`).\r\n * For `function` key you can also specify a custom function which handles serialization.\r\n * See [`jsan`](https://github.com/kolodny/jsan) for more details.\r\n */\r\n options?:\r\n | undefined\r\n | boolean\r\n | {\r\n date?: true\r\n regex?: true\r\n undefined?: true\r\n error?: true\r\n symbol?: true\r\n map?: true\r\n set?: true\r\n function?: true | ((fn: (...args: any[]) => any) => string)\r\n }\r\n /**\r\n * [JSON replacer function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#The_replacer_parameter) used for both actions and states stringify.\r\n * In addition, you can specify a data type by adding a [`__serializedType__`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/helpers/index.js#L4)\r\n * key. So you can deserialize it back while importing or persisting data.\r\n * Moreover, it will also [show a nice preview showing the provided custom type](https://cloud.githubusercontent.com/assets/7957859/21814330/a17d556a-d761-11e6-85ef-159dd12f36c5.png):\r\n */\r\n replacer?: (key: string, value: unknown) => any\r\n /**\r\n * [JSON `reviver` function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Using_the_reviver_parameter)\r\n * used for parsing the imported actions and states. See [`remotedev-serialize`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/immutable/serialize.js#L8-L41)\r\n * as an example on how to serialize special data types and get them back.\r\n */\r\n reviver?: (key: string, value: unknown) => any\r\n /**\r\n * Automatically serialize/deserialize immutablejs via [remotedev-serialize](https://github.com/zalmoxisus/remotedev-serialize).\r\n * Just pass the Immutable library. It will support all ImmutableJS structures. You can even export them into a file and get them back.\r\n * The only exception is `Record` class, for which you should pass this in addition the references to your classes in `refs`.\r\n */\r\n immutable?: any\r\n /**\r\n * ImmutableJS `Record` classes used to make possible restore its instances back when importing, persisting...\r\n */\r\n refs?: any\r\n }\r\n /**\r\n * function which takes `action` object and id number as arguments, and should return `action` object back.\r\n */\r\n actionSanitizer?: (action: A, id: number) => A\r\n /**\r\n * function which takes `state` object and index as arguments, and should return `state` object back.\r\n */\r\n stateSanitizer?: (state: S, index: number) => S\r\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsWhitelist` specified, `actionsBlacklist` is ignored.\r\n * @deprecated Use actionsDenylist instead.\r\n */\r\n actionsBlacklist?: string | string[]\r\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsWhitelist` specified, `actionsBlacklist` is ignored.\r\n * @deprecated Use actionsAllowlist instead.\r\n */\r\n actionsWhitelist?: string | string[]\r\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsAllowlist` specified, `actionsDenylist` is ignored.\r\n */\r\n actionsDenylist?: string | string[]\r\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsAllowlist` specified, `actionsDenylist` is ignored.\r\n */\r\n actionsAllowlist?: string | string[]\r\n /**\r\n * called for every action before sending, takes `state` and `action` object, and returns `true` in case it allows sending the current data to the monitor.\r\n * Use it as a more advanced version of `actionsDenylist`/`actionsAllowlist` parameters.\r\n */\r\n predicate?: (state: S, action: A) => boolean\r\n /**\r\n * if specified as `false`, it will not record the changes till clicking on `Start recording` button.\r\n * Available only for Redux enhancer, for others use `autoPause`.\r\n *\r\n * @default true\r\n */\r\n shouldRecordChanges?: boolean\r\n /**\r\n * if specified, whenever clicking on `Pause recording` button and there are actions in the history log, will add this action type.\r\n * If not specified, will commit when paused. Available only for Redux enhancer.\r\n *\r\n * @default \"@@PAUSED\"\"\r\n */\r\n pauseActionType?: string\r\n /**\r\n * auto pauses when the extension’s window is not opened, and so has zero impact on your app when not in use.\r\n * Not available for Redux enhancer (as it already does it but storing the data to be sent).\r\n *\r\n * @default false\r\n */\r\n autoPause?: boolean\r\n /**\r\n * if specified as `true`, it will not allow any non-monitor actions to be dispatched till clicking on `Unlock changes` button.\r\n * Available only for Redux enhancer.\r\n *\r\n * @default false\r\n */\r\n shouldStartLocked?: boolean\r\n /**\r\n * if set to `false`, will not recompute the states on hot reloading (or on replacing the reducers). Available only for Redux enhancer.\r\n *\r\n * @default true\r\n */\r\n shouldHotReload?: boolean\r\n /**\r\n * if specified as `true`, whenever there's an exception in reducers, the monitors will show the error message, and next actions will not be dispatched.\r\n *\r\n * @default false\r\n */\r\n shouldCatchErrors?: boolean\r\n /**\r\n * If you want to restrict the extension, specify the features you allow.\r\n * If not specified, all of the features are enabled. When set as an object, only those included as `true` will be allowed.\r\n * Note that except `true`/`false`, `import` and `export` can be set as `custom` (which is by default for Redux enhancer), meaning that the importing/exporting occurs on the client side.\r\n * Otherwise, you'll get/set the data right from the monitor part.\r\n */\r\n features?: {\r\n /**\r\n * start/pause recording of dispatched actions\r\n */\r\n pause?: boolean\r\n /**\r\n * lock/unlock dispatching actions and side effects\r\n */\r\n lock?: boolean\r\n /**\r\n * persist states on page reloading\r\n */\r\n persist?: boolean\r\n /**\r\n * export history of actions in a file\r\n */\r\n export?: boolean | 'custom'\r\n /**\r\n * import history of actions from a file\r\n */\r\n import?: boolean | 'custom'\r\n /**\r\n * jump back and forth (time travelling)\r\n */\r\n jump?: boolean\r\n /**\r\n * skip (cancel) actions\r\n */\r\n skip?: boolean\r\n /**\r\n * drag and drop actions in the history list\r\n */\r\n reorder?: boolean\r\n /**\r\n * dispatch custom actions or action creators\r\n */\r\n dispatch?: boolean\r\n /**\r\n * generate tests for the selected actions\r\n */\r\n test?: boolean\r\n }\r\n /**\r\n * Set to true or a stacktrace-returning function to record call stack traces for dispatched actions.\r\n * Defaults to false.\r\n */\r\n trace?: boolean | ((action: A) => string)\r\n /**\r\n * The maximum number of stack trace entries to record per action. Defaults to 10.\r\n */\r\n traceLimit?: number\r\n}\r\n\r\ntype Compose = typeof compose\r\n\r\ninterface ComposeWithDevTools {\r\n (options: DevToolsEnhancerOptions): Compose\r\n (...funcs: StoreEnhancer[]): StoreEnhancer\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport const composeWithDevTools: ComposeWithDevTools =\r\n typeof window !== 'undefined' &&\r\n (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__\r\n ? (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__\r\n : function () {\r\n if (arguments.length === 0) return undefined\r\n if (typeof arguments[0] === 'object') return compose\r\n return compose.apply(null, arguments as any as Function[])\r\n }\r\n\r\n/**\r\n * @public\r\n */\r\nexport const devToolsEnhancer: {\r\n (options: DevToolsEnhancerOptions): StoreEnhancer\r\n} =\r\n typeof window !== 'undefined' && (window as any).__REDUX_DEVTOOLS_EXTENSION__\r\n ? (window as any).__REDUX_DEVTOOLS_EXTENSION__\r\n : function () {\r\n return function (noop) {\r\n return noop\r\n }\r\n }\r\n","/**\r\n * Returns true if the passed value is \"plain\" object, i.e. an object whose\r\n * prototype is the root `Object.prototype`. This includes objects created\r\n * using object literals, but not for instance for class instances.\r\n *\r\n * @param {any} value The value to inspect.\r\n * @returns {boolean} True if the argument appears to be a plain object.\r\n *\r\n * @public\r\n */\r\nexport default function isPlainObject(value: unknown): value is object {\r\n if (typeof value !== 'object' || value === null) return false\r\n\r\n let proto = Object.getPrototypeOf(value)\r\n if (proto === null) return true\r\n\r\n let baseProto = proto\r\n while (Object.getPrototypeOf(baseProto) !== null) {\r\n baseProto = Object.getPrototypeOf(baseProto)\r\n }\r\n\r\n return proto === baseProto\r\n}\r\n","import type { Middleware, StoreEnhancer } from 'redux'\r\nimport type { EnhancerArray, MiddlewareArray } from './utils'\r\n\r\n/**\r\n * return True if T is `any`, otherwise return False\r\n * taken from https://github.com/joonhocho/tsdef\r\n *\r\n * @internal\r\n */\r\nexport type IsAny =\r\n // test if we are going the left AND right path in the condition\r\n true | false extends (T extends never ? true : false) ? True : False\r\n\r\n/**\r\n * return True if T is `unknown`, otherwise return False\r\n * taken from https://github.com/joonhocho/tsdef\r\n *\r\n * @internal\r\n */\r\nexport type IsUnknown = unknown extends T\r\n ? IsAny\r\n : False\r\n\r\nexport type FallbackIfUnknown = IsUnknown\r\n\r\n/**\r\n * @internal\r\n */\r\nexport type IfMaybeUndefined = [undefined] extends [P]\r\n ? True\r\n : False\r\n\r\n/**\r\n * @internal\r\n */\r\nexport type IfVoid = [void] extends [P] ? True : False\r\n\r\n/**\r\n * @internal\r\n */\r\nexport type IsEmptyObj = T extends any\r\n ? keyof T extends never\r\n ? IsUnknown>>\r\n : False\r\n : never\r\n\r\n/**\r\n * returns True if TS version is above 3.5, False if below.\r\n * uses feature detection to detect TS version >= 3.5\r\n * * versions below 3.5 will return `{}` for unresolvable interference\r\n * * versions above will return `unknown`\r\n *\r\n * @internal\r\n */\r\nexport type AtLeastTS35 = [True, False][IsUnknown<\r\n ReturnType<() => T>,\r\n 0,\r\n 1\r\n>]\r\n\r\n/**\r\n * @internal\r\n */\r\nexport type IsUnknownOrNonInferrable = AtLeastTS35<\r\n IsUnknown,\r\n IsEmptyObj>\r\n>\r\n\r\n/**\r\n * Convert a Union type `(A|B)` to an intersection type `(A&B)`\r\n */\r\nexport type UnionToIntersection = (\r\n U extends any ? (k: U) => void : never\r\n) extends (k: infer I) => void\r\n ? I\r\n : never\r\n\r\n// Appears to have a convenient side effect of ignoring `never` even if that's not what you specified\r\nexport type ExcludeFromTuple = T extends [\r\n infer Head,\r\n ...infer Tail\r\n]\r\n ? ExcludeFromTuple\r\n : Acc\r\n\r\ntype ExtractDispatchFromMiddlewareTuple<\r\n MiddlewareTuple extends any[],\r\n Acc extends {}\r\n> = MiddlewareTuple extends [infer Head, ...infer Tail]\r\n ? ExtractDispatchFromMiddlewareTuple<\r\n Tail,\r\n Acc & (Head extends Middleware ? IsAny : {})\r\n >\r\n : Acc\r\n\r\nexport type ExtractDispatchExtensions = M extends MiddlewareArray<\r\n infer MiddlewareTuple\r\n>\r\n ? ExtractDispatchFromMiddlewareTuple\r\n : M extends ReadonlyArray\r\n ? ExtractDispatchFromMiddlewareTuple<[...M], {}>\r\n : never\r\n\r\ntype ExtractStoreExtensionsFromEnhancerTuple<\r\n EnhancerTuple extends any[],\r\n Acc extends {}\r\n> = EnhancerTuple extends [infer Head, ...infer Tail]\r\n ? ExtractStoreExtensionsFromEnhancerTuple<\r\n Tail,\r\n Acc & (Head extends StoreEnhancer ? IsAny : {})\r\n >\r\n : Acc\r\n\r\nexport type ExtractStoreExtensions = E extends EnhancerArray<\r\n infer EnhancerTuple\r\n>\r\n ? ExtractStoreExtensionsFromEnhancerTuple\r\n : E extends ReadonlyArray\r\n ? UnionToIntersection<\r\n E[number] extends StoreEnhancer\r\n ? Ext extends {}\r\n ? IsAny\r\n : {}\r\n : {}\r\n >\r\n : never\r\n\r\ntype ExtractStateExtensionsFromEnhancerTuple<\r\n EnhancerTuple extends any[],\r\n Acc extends {}\r\n> = EnhancerTuple extends [infer Head, ...infer Tail]\r\n ? ExtractStateExtensionsFromEnhancerTuple<\r\n Tail,\r\n Acc &\r\n (Head extends StoreEnhancer\r\n ? IsAny\r\n : {})\r\n >\r\n : Acc\r\n\r\nexport type ExtractStateExtensions = E extends EnhancerArray<\r\n infer EnhancerTuple\r\n>\r\n ? ExtractStateExtensionsFromEnhancerTuple\r\n : E extends ReadonlyArray\r\n ? UnionToIntersection<\r\n E[number] extends StoreEnhancer\r\n ? StateExt extends {}\r\n ? IsAny\r\n : {}\r\n : {}\r\n >\r\n : never\r\n\r\n/**\r\n * Helper type. Passes T out again, but boxes it in a way that it cannot\r\n * \"widen\" the type by accident if it is a generic that should be inferred\r\n * from elsewhere.\r\n *\r\n * @internal\r\n */\r\nexport type NoInfer = [T][T extends any ? 0 : never]\r\n\r\nexport type Omit = Pick>\r\n\r\nexport interface TypeGuard {\r\n (value: any): value is T\r\n}\r\n\r\nexport interface HasMatchFunction {\r\n match: TypeGuard\r\n}\r\n\r\nexport const hasMatchFunction = (\r\n v: Matcher\r\n): v is HasMatchFunction => {\r\n return v && typeof (v as HasMatchFunction).match === 'function'\r\n}\r\n\r\n/** @public */\r\nexport type Matcher = HasMatchFunction | TypeGuard\r\n\r\n/** @public */\r\nexport type ActionFromMatcher> = M extends Matcher<\r\n infer T\r\n>\r\n ? T\r\n : never\r\n\r\nexport type Id = { [K in keyof T]: T[K] } & {}\r\n","import type { Action } from 'redux'\r\nimport type {\r\n IsUnknownOrNonInferrable,\r\n IfMaybeUndefined,\r\n IfVoid,\r\n IsAny,\r\n} from './tsHelpers'\r\nimport { hasMatchFunction } from './tsHelpers'\r\nimport isPlainObject from './isPlainObject'\r\n\r\n/**\r\n * An action with a string type and an associated payload. This is the\r\n * type of action returned by `createAction()` action creators.\r\n *\r\n * @template P The type of the action's payload.\r\n * @template T the type used for the action type.\r\n * @template M The type of the action's meta (optional)\r\n * @template E The type of the action's error (optional)\r\n *\r\n * @public\r\n */\r\nexport type PayloadAction<\r\n P = void,\r\n T extends string = string,\r\n M = never,\r\n E = never\r\n> = {\r\n payload: P\r\n type: T\r\n} & ([M] extends [never]\r\n ? {}\r\n : {\r\n meta: M\r\n }) &\r\n ([E] extends [never]\r\n ? {}\r\n : {\r\n error: E\r\n })\r\n\r\n/**\r\n * A \"prepare\" method to be used as the second parameter of `createAction`.\r\n * Takes any number of arguments and returns a Flux Standard Action without\r\n * type (will be added later) that *must* contain a payload (might be undefined).\r\n *\r\n * @public\r\n */\r\nexport type PrepareAction

=\r\n | ((...args: any[]) => { payload: P })\r\n | ((...args: any[]) => { payload: P; meta: any })\r\n | ((...args: any[]) => { payload: P; error: any })\r\n | ((...args: any[]) => { payload: P; meta: any; error: any })\r\n\r\n/**\r\n * Internal version of `ActionCreatorWithPreparedPayload`. Not to be used externally.\r\n *\r\n * @internal\r\n */\r\nexport type _ActionCreatorWithPreparedPayload<\r\n PA extends PrepareAction | void,\r\n T extends string = string\r\n> = PA extends PrepareAction\r\n ? ActionCreatorWithPreparedPayload<\r\n Parameters,\r\n P,\r\n T,\r\n ReturnType extends {\r\n error: infer E\r\n }\r\n ? E\r\n : never,\r\n ReturnType extends {\r\n meta: infer M\r\n }\r\n ? M\r\n : never\r\n >\r\n : void\r\n\r\n/**\r\n * Basic type for all action creators.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n */\r\nexport interface BaseActionCreator {\r\n type: T\r\n match: (action: Action) => action is PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator that takes multiple arguments that are passed\r\n * to a `PrepareAction` method to create the final Action.\r\n * @typeParam Args arguments for the action creator function\r\n * @typeParam P `payload` type\r\n * @typeParam T `type` name\r\n * @typeParam E optional `error` type\r\n * @typeParam M optional `meta` type\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithPreparedPayload<\r\n Args extends unknown[],\r\n P,\r\n T extends string = string,\r\n E = never,\r\n M = never\r\n> extends BaseActionCreator {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with `Args` will return\r\n * an Action with a payload of type `P` and (depending on the `PrepareAction`\r\n * method used) a `meta`- and `error` property of types `M` and `E` respectively.\r\n */\r\n (...args: Args): PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator of type `T` that takes an optional payload of type `P`.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithOptionalPayload\r\n extends BaseActionCreator {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with an argument will\r\n * return a {@link PayloadAction} of type `T` with a payload of `P`.\r\n * Calling it without an argument will return a PayloadAction with a payload of `undefined`.\r\n */\r\n (payload?: P): PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator of type `T` that takes no payload.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithoutPayload\r\n extends BaseActionCreator {\r\n /**\r\n * Calling this {@link redux#ActionCreator} will\r\n * return a {@link PayloadAction} of type `T` with a payload of `undefined`\r\n */\r\n (noArgument: void): PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator of type `T` that requires a payload of type P.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithPayload\r\n extends BaseActionCreator {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with an argument will\r\n * return a {@link PayloadAction} of type `T` with a payload of `P`\r\n */\r\n (payload: P): PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator of type `T` whose `payload` type could not be inferred. Accepts everything as `payload`.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithNonInferrablePayload<\r\n T extends string = string\r\n> extends BaseActionCreator {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with an argument will\r\n * return a {@link PayloadAction} of type `T` with a payload\r\n * of exactly the type of the argument.\r\n */\r\n (payload: PT): PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator that produces actions with a `payload` attribute.\r\n *\r\n * @typeParam P the `payload` type\r\n * @typeParam T the `type` of the resulting action\r\n * @typeParam PA if the resulting action is preprocessed by a `prepare` method, the signature of said method.\r\n *\r\n * @public\r\n */\r\nexport type PayloadActionCreator<\r\n P = void,\r\n T extends string = string,\r\n PA extends PrepareAction

| void = void\r\n> = IfPrepareActionMethodProvided<\r\n PA,\r\n _ActionCreatorWithPreparedPayload,\r\n // else\r\n IsAny<\r\n P,\r\n ActionCreatorWithPayload,\r\n IsUnknownOrNonInferrable<\r\n P,\r\n ActionCreatorWithNonInferrablePayload,\r\n // else\r\n IfVoid<\r\n P,\r\n ActionCreatorWithoutPayload,\r\n // else\r\n IfMaybeUndefined<\r\n P,\r\n ActionCreatorWithOptionalPayload,\r\n // else\r\n ActionCreatorWithPayload\r\n >\r\n >\r\n >\r\n >\r\n>\r\n\r\n/**\r\n * A utility function to create an action creator for the given action type\r\n * string. The action creator accepts a single argument, which will be included\r\n * in the action object as a field called payload. The action creator function\r\n * will also have its toString() overridden so that it returns the action type,\r\n * allowing it to be used in reducer logic that is looking for that action type.\r\n *\r\n * @param type The action type to use for created actions.\r\n * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.\r\n * If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.\r\n *\r\n * @public\r\n */\r\nexport function createAction

(\r\n type: T\r\n): PayloadActionCreator\r\n\r\n/**\r\n * A utility function to create an action creator for the given action type\r\n * string. The action creator accepts a single argument, which will be included\r\n * in the action object as a field called payload. The action creator function\r\n * will also have its toString() overridden so that it returns the action type,\r\n * allowing it to be used in reducer logic that is looking for that action type.\r\n *\r\n * @param type The action type to use for created actions.\r\n * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.\r\n * If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.\r\n *\r\n * @public\r\n */\r\nexport function createAction<\r\n PA extends PrepareAction,\r\n T extends string = string\r\n>(\r\n type: T,\r\n prepareAction: PA\r\n): PayloadActionCreator['payload'], T, PA>\r\n\r\nexport function createAction(type: string, prepareAction?: Function): any {\r\n function actionCreator(...args: any[]) {\r\n if (prepareAction) {\r\n let prepared = prepareAction(...args)\r\n if (!prepared) {\r\n throw new Error('prepareAction did not return an object')\r\n }\r\n\r\n return {\r\n type,\r\n payload: prepared.payload,\r\n ...('meta' in prepared && { meta: prepared.meta }),\r\n ...('error' in prepared && { error: prepared.error }),\r\n }\r\n }\r\n return { type, payload: args[0] }\r\n }\r\n\r\n actionCreator.toString = () => `${type}`\r\n\r\n actionCreator.type = type\r\n\r\n actionCreator.match = (action: Action): action is PayloadAction =>\r\n action.type === type\r\n\r\n return actionCreator\r\n}\r\n\r\n/**\r\n * Returns true if value is a plain object with a `type` property.\r\n */\r\nexport function isAction(action: unknown): action is Action {\r\n return isPlainObject(action) && 'type' in action\r\n}\r\n\r\n/**\r\n * Returns true if value is an RTK-like action creator, with a static type property and match method.\r\n */\r\nexport function isActionCreator(\r\n action: unknown\r\n): action is BaseActionCreator & Function {\r\n return (\r\n typeof action === 'function' &&\r\n 'type' in action &&\r\n // hasMatchFunction only wants Matchers but I don't see the point in rewriting it\r\n hasMatchFunction(action as any)\r\n )\r\n}\r\n\r\n/**\r\n * Returns true if value is an action with a string type and valid Flux Standard Action keys.\r\n */\r\nexport function isFSA(action: unknown): action is {\r\n type: string\r\n payload?: unknown\r\n error?: unknown\r\n meta?: unknown\r\n} {\r\n return (\r\n isAction(action) &&\r\n typeof action.type === 'string' &&\r\n Object.keys(action).every(isValidKey)\r\n )\r\n}\r\n\r\nfunction isValidKey(key: string) {\r\n return ['type', 'payload', 'error', 'meta'].indexOf(key) > -1\r\n}\r\n\r\n/**\r\n * Returns the action type of the actions created by the passed\r\n * `createAction()`-generated action creator (arbitrary action creators\r\n * are not supported).\r\n *\r\n * @param action The action creator whose action type to get.\r\n * @returns The action type used by the action creator.\r\n *\r\n * @public\r\n */\r\nexport function getType(\r\n actionCreator: PayloadActionCreator\r\n): T {\r\n return `${actionCreator}` as T\r\n}\r\n\r\n// helper types for more readable typings\r\n\r\ntype IfPrepareActionMethodProvided<\r\n PA extends PrepareAction | void,\r\n True,\r\n False\r\n> = PA extends (...args: any[]) => any ? True : False\r\n","import type { Middleware } from 'redux'\r\nimport { isActionCreator as isRTKAction } from './createAction'\r\n\r\nexport interface ActionCreatorInvariantMiddlewareOptions {\r\n /**\r\n * The function to identify whether a value is an action creator.\r\n * The default checks for a function with a static type property and match method.\r\n */\r\n isActionCreator?: (action: unknown) => action is Function & { type?: unknown }\r\n}\r\n\r\nexport function getMessage(type?: unknown) {\r\n const splitType = type ? `${type}`.split('/') : []\r\n const actionName = splitType[splitType.length - 1] || 'actionCreator'\r\n return `Detected an action creator with type \"${\r\n type || 'unknown'\r\n }\" being dispatched. \r\nMake sure you're calling the action creator before dispatching, i.e. \\`dispatch(${actionName}())\\` instead of \\`dispatch(${actionName})\\`. This is necessary even if the action has no payload.`\r\n}\r\n\r\nexport function createActionCreatorInvariantMiddleware(\r\n options: ActionCreatorInvariantMiddlewareOptions = {}\r\n): Middleware {\r\n if (process.env.NODE_ENV === 'production') {\r\n return () => (next) => (action) => next(action)\r\n }\r\n const { isActionCreator = isRTKAction } = options\r\n return () => (next) => (action) => {\r\n if (isActionCreator(action)) {\r\n console.warn(getMessage(action.type))\r\n }\r\n return next(action)\r\n }\r\n}\r\n","import createNextState, { isDraftable } from 'immer'\r\nimport type { Middleware, StoreEnhancer } from 'redux'\r\n\r\nexport function getTimeMeasureUtils(maxDelay: number, fnName: string) {\r\n let elapsed = 0\r\n return {\r\n measureTime(fn: () => T): T {\r\n const started = Date.now()\r\n try {\r\n return fn()\r\n } finally {\r\n const finished = Date.now()\r\n elapsed += finished - started\r\n }\r\n },\r\n warnIfExceeded() {\r\n if (elapsed > maxDelay) {\r\n console.warn(`${fnName} took ${elapsed}ms, which is more than the warning threshold of ${maxDelay}ms. \r\nIf your state or actions are very large, you may want to disable the middleware as it might cause too much of a slowdown in development mode. See https://redux-toolkit.js.org/api/getDefaultMiddleware for instructions.\r\nIt is disabled in production builds, so you don't need to worry about that.`)\r\n }\r\n },\r\n }\r\n}\r\n\r\nexport function delay(ms: number) {\r\n return new Promise((resolve) => setTimeout(resolve, ms))\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport class MiddlewareArray<\r\n Middlewares extends Middleware[]\r\n> extends Array {\r\n constructor(...items: Middlewares)\r\n constructor(...args: any[]) {\r\n super(...args)\r\n Object.setPrototypeOf(this, MiddlewareArray.prototype)\r\n }\r\n\r\n static get [Symbol.species]() {\r\n return MiddlewareArray as any\r\n }\r\n\r\n concat>>(\r\n items: AdditionalMiddlewares\r\n ): MiddlewareArray<[...Middlewares, ...AdditionalMiddlewares]>\r\n\r\n concat>>(\r\n ...items: AdditionalMiddlewares\r\n ): MiddlewareArray<[...Middlewares, ...AdditionalMiddlewares]>\r\n concat(...arr: any[]) {\r\n return super.concat.apply(this, arr)\r\n }\r\n\r\n prepend>>(\r\n items: AdditionalMiddlewares\r\n ): MiddlewareArray<[...AdditionalMiddlewares, ...Middlewares]>\r\n\r\n prepend>>(\r\n ...items: AdditionalMiddlewares\r\n ): MiddlewareArray<[...AdditionalMiddlewares, ...Middlewares]>\r\n\r\n prepend(...arr: any[]) {\r\n if (arr.length === 1 && Array.isArray(arr[0])) {\r\n return new MiddlewareArray(...arr[0].concat(this))\r\n }\r\n return new MiddlewareArray(...arr.concat(this))\r\n }\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport class EnhancerArray<\r\n Enhancers extends StoreEnhancer[]\r\n> extends Array {\r\n constructor(...items: Enhancers)\r\n constructor(...args: any[]) {\r\n super(...args)\r\n Object.setPrototypeOf(this, EnhancerArray.prototype)\r\n }\r\n\r\n static get [Symbol.species]() {\r\n return EnhancerArray as any\r\n }\r\n\r\n concat>>(\r\n items: AdditionalEnhancers\r\n ): EnhancerArray<[...Enhancers, ...AdditionalEnhancers]>\r\n\r\n concat>>(\r\n ...items: AdditionalEnhancers\r\n ): EnhancerArray<[...Enhancers, ...AdditionalEnhancers]>\r\n concat(...arr: any[]) {\r\n return super.concat.apply(this, arr)\r\n }\r\n\r\n prepend>>(\r\n items: AdditionalEnhancers\r\n ): EnhancerArray<[...AdditionalEnhancers, ...Enhancers]>\r\n\r\n prepend>>(\r\n ...items: AdditionalEnhancers\r\n ): EnhancerArray<[...AdditionalEnhancers, ...Enhancers]>\r\n\r\n prepend(...arr: any[]) {\r\n if (arr.length === 1 && Array.isArray(arr[0])) {\r\n return new EnhancerArray(...arr[0].concat(this))\r\n }\r\n return new EnhancerArray(...arr.concat(this))\r\n }\r\n}\r\n\r\nexport function freezeDraftable(val: T) {\r\n return isDraftable(val) ? createNextState(val, () => {}) : val\r\n}\r\n","import type { Middleware } from 'redux'\r\nimport { getTimeMeasureUtils } from './utils'\r\n\r\ntype EntryProcessor = (key: string, value: any) => any\r\n\r\nconst isProduction: boolean = process.env.NODE_ENV === 'production'\r\nconst prefix: string = 'Invariant failed'\r\n\r\n// Throw an error if the condition fails\r\n// Strip out error messages for production\r\n// > Not providing an inline default argument for message as the result is smaller\r\nfunction invariant(condition: any, message?: string) {\r\n if (condition) {\r\n return\r\n }\r\n // Condition not passed\r\n\r\n // In production we strip the message but still throw\r\n if (isProduction) {\r\n throw new Error(prefix)\r\n }\r\n\r\n // When not in production we allow the message to pass through\r\n // *This block will be removed in production builds*\r\n throw new Error(`${prefix}: ${message || ''}`)\r\n}\r\n\r\nfunction stringify(\r\n obj: any,\r\n serializer?: EntryProcessor,\r\n indent?: string | number,\r\n decycler?: EntryProcessor\r\n): string {\r\n return JSON.stringify(obj, getSerialize(serializer, decycler), indent)\r\n}\r\n\r\nfunction getSerialize(\r\n serializer?: EntryProcessor,\r\n decycler?: EntryProcessor\r\n): EntryProcessor {\r\n let stack: any[] = [],\r\n keys: any[] = []\r\n\r\n if (!decycler)\r\n decycler = function (_: string, value: any) {\r\n if (stack[0] === value) return '[Circular ~]'\r\n return (\r\n '[Circular ~.' + keys.slice(0, stack.indexOf(value)).join('.') + ']'\r\n )\r\n }\r\n\r\n return function (this: any, key: string, value: any) {\r\n if (stack.length > 0) {\r\n var thisPos = stack.indexOf(this)\r\n ~thisPos ? stack.splice(thisPos + 1) : stack.push(this)\r\n ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key)\r\n if (~stack.indexOf(value)) value = decycler!.call(this, key, value)\r\n } else stack.push(value)\r\n\r\n return serializer == null ? value : serializer.call(this, key, value)\r\n }\r\n}\r\n\r\n/**\r\n * The default `isImmutable` function.\r\n *\r\n * @public\r\n */\r\nexport function isImmutableDefault(value: unknown): boolean {\r\n return typeof value !== 'object' || value == null || Object.isFrozen(value)\r\n}\r\n\r\nexport function trackForMutations(\r\n isImmutable: IsImmutableFunc,\r\n ignorePaths: IgnorePaths | undefined,\r\n obj: any\r\n) {\r\n const trackedProperties = trackProperties(isImmutable, ignorePaths, obj)\r\n return {\r\n detectMutations() {\r\n return detectMutations(isImmutable, ignorePaths, trackedProperties, obj)\r\n },\r\n }\r\n}\r\n\r\ninterface TrackedProperty {\r\n value: any\r\n children: Record\r\n}\r\n\r\nfunction trackProperties(\r\n isImmutable: IsImmutableFunc,\r\n ignorePaths: IgnorePaths = [],\r\n obj: Record,\r\n path: string = '',\r\n checkedObjects: Set> = new Set()\r\n) {\r\n const tracked: Partial = { value: obj }\r\n\r\n if (!isImmutable(obj) && !checkedObjects.has(obj)) {\r\n checkedObjects.add(obj);\r\n tracked.children = {}\r\n\r\n for (const key in obj) {\r\n const childPath = path ? path + '.' + key : key\r\n if (ignorePaths.length && ignorePaths.indexOf(childPath) !== -1) {\r\n continue\r\n }\r\n\r\n tracked.children[key] = trackProperties(\r\n isImmutable,\r\n ignorePaths,\r\n obj[key],\r\n childPath\r\n )\r\n }\r\n }\r\n return tracked as TrackedProperty\r\n}\r\n\r\ntype IgnorePaths = readonly (string | RegExp)[]\r\n\r\nfunction detectMutations(\r\n isImmutable: IsImmutableFunc,\r\n ignoredPaths: IgnorePaths = [],\r\n trackedProperty: TrackedProperty,\r\n obj: any,\r\n sameParentRef: boolean = false,\r\n path: string = ''\r\n): { wasMutated: boolean; path?: string } {\r\n const prevObj = trackedProperty ? trackedProperty.value : undefined\r\n\r\n const sameRef = prevObj === obj\r\n\r\n if (sameParentRef && !sameRef && !Number.isNaN(obj)) {\r\n return { wasMutated: true, path }\r\n }\r\n\r\n if (isImmutable(prevObj) || isImmutable(obj)) {\r\n return { wasMutated: false }\r\n }\r\n\r\n // Gather all keys from prev (tracked) and after objs\r\n const keysToDetect: Record = {}\r\n for (let key in trackedProperty.children) {\r\n keysToDetect[key] = true\r\n }\r\n for (let key in obj) {\r\n keysToDetect[key] = true\r\n }\r\n\r\n const hasIgnoredPaths = ignoredPaths.length > 0\r\n\r\n for (let key in keysToDetect) {\r\n const nestedPath = path ? path + '.' + key : key\r\n\r\n if (hasIgnoredPaths) {\r\n const hasMatches = ignoredPaths.some((ignored) => {\r\n if (ignored instanceof RegExp) {\r\n return ignored.test(nestedPath)\r\n }\r\n return nestedPath === ignored\r\n })\r\n if (hasMatches) {\r\n continue\r\n }\r\n }\r\n\r\n const result = detectMutations(\r\n isImmutable,\r\n ignoredPaths,\r\n trackedProperty.children[key],\r\n obj[key],\r\n sameRef,\r\n nestedPath\r\n )\r\n\r\n if (result.wasMutated) {\r\n return result\r\n }\r\n }\r\n return { wasMutated: false }\r\n}\r\n\r\ntype IsImmutableFunc = (value: any) => boolean\r\n\r\n/**\r\n * Options for `createImmutableStateInvariantMiddleware()`.\r\n *\r\n * @public\r\n */\r\nexport interface ImmutableStateInvariantMiddlewareOptions {\r\n /**\r\n Callback function to check if a value is considered to be immutable.\r\n This function is applied recursively to every value contained in the state.\r\n The default implementation will return true for primitive types \r\n (like numbers, strings, booleans, null and undefined).\r\n */\r\n isImmutable?: IsImmutableFunc\r\n /** \r\n An array of dot-separated path strings that match named nodes from \r\n the root state to ignore when checking for immutability.\r\n Defaults to undefined\r\n */\r\n ignoredPaths?: IgnorePaths\r\n /** Print a warning if checks take longer than N ms. Default: 32ms */\r\n warnAfter?: number\r\n // @deprecated. Use ignoredPaths\r\n ignore?: string[]\r\n}\r\n\r\n/**\r\n * Creates a middleware that checks whether any state was mutated in between\r\n * dispatches or during a dispatch. If any mutations are detected, an error is\r\n * thrown.\r\n *\r\n * @param options Middleware options.\r\n *\r\n * @public\r\n */\r\nexport function createImmutableStateInvariantMiddleware(\r\n options: ImmutableStateInvariantMiddlewareOptions = {}\r\n): Middleware {\r\n if (process.env.NODE_ENV === 'production') {\r\n return () => (next) => (action) => next(action)\r\n }\r\n\r\n let {\r\n isImmutable = isImmutableDefault,\r\n ignoredPaths,\r\n warnAfter = 32,\r\n ignore,\r\n } = options\r\n\r\n // Alias ignore->ignoredPaths, but prefer ignoredPaths if present\r\n ignoredPaths = ignoredPaths || ignore\r\n\r\n const track = trackForMutations.bind(null, isImmutable, ignoredPaths)\r\n\r\n return ({ getState }) => {\r\n let state = getState()\r\n let tracker = track(state)\r\n\r\n let result\r\n return (next) => (action) => {\r\n const measureUtils = getTimeMeasureUtils(\r\n warnAfter,\r\n 'ImmutableStateInvariantMiddleware'\r\n )\r\n\r\n measureUtils.measureTime(() => {\r\n state = getState()\r\n\r\n result = tracker.detectMutations()\r\n // Track before potentially not meeting the invariant\r\n tracker = track(state)\r\n\r\n invariant(\r\n !result.wasMutated,\r\n `A state mutation was detected between dispatches, in the path '${\r\n result.path || ''\r\n }'. This may cause incorrect behavior. (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)`\r\n )\r\n })\r\n\r\n const dispatchedAction = next(action)\r\n\r\n measureUtils.measureTime(() => {\r\n state = getState()\r\n\r\n result = tracker.detectMutations()\r\n // Track before potentially not meeting the invariant\r\n tracker = track(state)\r\n\r\n result.wasMutated &&\r\n invariant(\r\n !result.wasMutated,\r\n `A state mutation was detected inside a dispatch, in the path: ${\r\n result.path || ''\r\n }. Take a look at the reducer(s) handling the action ${stringify(\r\n action\r\n )}. (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)`\r\n )\r\n })\r\n\r\n measureUtils.warnIfExceeded()\r\n\r\n return dispatchedAction\r\n }\r\n }\r\n}\r\n","import isPlainObject from './isPlainObject'\r\nimport type { Middleware } from 'redux'\r\nimport { getTimeMeasureUtils } from './utils'\r\n\r\n/**\r\n * Returns true if the passed value is \"plain\", i.e. a value that is either\r\n * directly JSON-serializable (boolean, number, string, array, plain object)\r\n * or `undefined`.\r\n *\r\n * @param val The value to check.\r\n *\r\n * @public\r\n */\r\nexport function isPlain(val: any) {\r\n const type = typeof val\r\n return (\r\n val == null ||\r\n type === 'string' ||\r\n type === 'boolean' ||\r\n type === 'number' ||\r\n Array.isArray(val) ||\r\n isPlainObject(val)\r\n )\r\n}\r\n\r\ninterface NonSerializableValue {\r\n keyPath: string\r\n value: unknown\r\n}\r\n\r\ntype IgnorePaths = readonly (string | RegExp)[]\r\n\r\n/**\r\n * @public\r\n */\r\nexport function findNonSerializableValue(\r\n value: unknown,\r\n path: string = '',\r\n isSerializable: (value: unknown) => boolean = isPlain,\r\n getEntries?: (value: unknown) => [string, any][],\r\n ignoredPaths: IgnorePaths = [],\r\n cache?: WeakSet\r\n): NonSerializableValue | false {\r\n let foundNestedSerializable: NonSerializableValue | false\r\n\r\n if (!isSerializable(value)) {\r\n return {\r\n keyPath: path || '',\r\n value: value,\r\n }\r\n }\r\n\r\n if (typeof value !== 'object' || value === null) {\r\n return false\r\n }\r\n\r\n if (cache?.has(value)) return false\r\n\r\n const entries = getEntries != null ? getEntries(value) : Object.entries(value)\r\n\r\n const hasIgnoredPaths = ignoredPaths.length > 0\r\n\r\n for (const [key, nestedValue] of entries) {\r\n const nestedPath = path ? path + '.' + key : key\r\n\r\n if (hasIgnoredPaths) {\r\n const hasMatches = ignoredPaths.some((ignored) => {\r\n if (ignored instanceof RegExp) {\r\n return ignored.test(nestedPath)\r\n }\r\n return nestedPath === ignored\r\n })\r\n if (hasMatches) {\r\n continue\r\n }\r\n }\r\n\r\n if (!isSerializable(nestedValue)) {\r\n return {\r\n keyPath: nestedPath,\r\n value: nestedValue,\r\n }\r\n }\r\n\r\n if (typeof nestedValue === 'object') {\r\n foundNestedSerializable = findNonSerializableValue(\r\n nestedValue,\r\n nestedPath,\r\n isSerializable,\r\n getEntries,\r\n ignoredPaths,\r\n cache\r\n )\r\n\r\n if (foundNestedSerializable) {\r\n return foundNestedSerializable\r\n }\r\n }\r\n }\r\n\r\n if (cache && isNestedFrozen(value)) cache.add(value)\r\n\r\n return false\r\n}\r\n\r\nexport function isNestedFrozen(value: object) {\r\n if (!Object.isFrozen(value)) return false\r\n\r\n for (const nestedValue of Object.values(value)) {\r\n if (typeof nestedValue !== 'object' || nestedValue === null) continue\r\n\r\n if (!isNestedFrozen(nestedValue)) return false\r\n }\r\n\r\n return true\r\n}\r\n\r\n/**\r\n * Options for `createSerializableStateInvariantMiddleware()`.\r\n *\r\n * @public\r\n */\r\nexport interface SerializableStateInvariantMiddlewareOptions {\r\n /**\r\n * The function to check if a value is considered serializable. This\r\n * function is applied recursively to every value contained in the\r\n * state. Defaults to `isPlain()`.\r\n */\r\n isSerializable?: (value: any) => boolean\r\n /**\r\n * The function that will be used to retrieve entries from each\r\n * value. If unspecified, `Object.entries` will be used. Defaults\r\n * to `undefined`.\r\n */\r\n getEntries?: (value: any) => [string, any][]\r\n\r\n /**\r\n * An array of action types to ignore when checking for serializability.\r\n * Defaults to []\r\n */\r\n ignoredActions?: string[]\r\n\r\n /**\r\n * An array of dot-separated path strings or regular expressions to ignore\r\n * when checking for serializability, Defaults to\r\n * ['meta.arg', 'meta.baseQueryMeta']\r\n */\r\n ignoredActionPaths?: (string | RegExp)[]\r\n\r\n /**\r\n * An array of dot-separated path strings or regular expressions to ignore\r\n * when checking for serializability, Defaults to []\r\n */\r\n ignoredPaths?: (string | RegExp)[]\r\n /**\r\n * Execution time warning threshold. If the middleware takes longer\r\n * than `warnAfter` ms, a warning will be displayed in the console.\r\n * Defaults to 32ms.\r\n */\r\n warnAfter?: number\r\n\r\n /**\r\n * Opt out of checking state. When set to `true`, other state-related params will be ignored.\r\n */\r\n ignoreState?: boolean\r\n\r\n /**\r\n * Opt out of checking actions. When set to `true`, other action-related params will be ignored.\r\n */\r\n ignoreActions?: boolean\r\n\r\n /**\r\n * Opt out of caching the results. The cache uses a WeakSet and speeds up repeated checking processes.\r\n * The cache is automatically disabled if no browser support for WeakSet is present.\r\n */\r\n disableCache?: boolean\r\n}\r\n\r\n/**\r\n * Creates a middleware that, after every state change, checks if the new\r\n * state is serializable. If a non-serializable value is found within the\r\n * state, an error is printed to the console.\r\n *\r\n * @param options Middleware options.\r\n *\r\n * @public\r\n */\r\nexport function createSerializableStateInvariantMiddleware(\r\n options: SerializableStateInvariantMiddlewareOptions = {}\r\n): Middleware {\r\n if (process.env.NODE_ENV === 'production') {\r\n return () => (next) => (action) => next(action)\r\n }\r\n const {\r\n isSerializable = isPlain,\r\n getEntries,\r\n ignoredActions = [],\r\n ignoredActionPaths = ['meta.arg', 'meta.baseQueryMeta'],\r\n ignoredPaths = [],\r\n warnAfter = 32,\r\n ignoreState = false,\r\n ignoreActions = false,\r\n disableCache = false,\r\n } = options\r\n\r\n const cache: WeakSet | undefined =\r\n !disableCache && WeakSet ? new WeakSet() : undefined\r\n\r\n return (storeAPI) => (next) => (action) => {\r\n const result = next(action)\r\n\r\n const measureUtils = getTimeMeasureUtils(\r\n warnAfter,\r\n 'SerializableStateInvariantMiddleware'\r\n )\r\n\r\n if (\r\n !ignoreActions &&\r\n !(ignoredActions.length && ignoredActions.indexOf(action.type) !== -1)\r\n ) {\r\n measureUtils.measureTime(() => {\r\n const foundActionNonSerializableValue = findNonSerializableValue(\r\n action,\r\n '',\r\n isSerializable,\r\n getEntries,\r\n ignoredActionPaths,\r\n cache\r\n )\r\n\r\n if (foundActionNonSerializableValue) {\r\n const { keyPath, value } = foundActionNonSerializableValue\r\n\r\n console.error(\r\n `A non-serializable value was detected in an action, in the path: \\`${keyPath}\\`. Value:`,\r\n value,\r\n '\\nTake a look at the logic that dispatched this action: ',\r\n action,\r\n '\\n(See https://redux.js.org/faq/actions#why-should-type-be-a-string-or-at-least-serializable-why-should-my-action-types-be-constants)',\r\n '\\n(To allow non-serializable values see: https://redux-toolkit.js.org/usage/usage-guide#working-with-non-serializable-data)'\r\n )\r\n }\r\n })\r\n }\r\n\r\n if (!ignoreState) {\r\n measureUtils.measureTime(() => {\r\n const state = storeAPI.getState()\r\n\r\n const foundStateNonSerializableValue = findNonSerializableValue(\r\n state,\r\n '',\r\n isSerializable,\r\n getEntries,\r\n ignoredPaths,\r\n cache\r\n )\r\n\r\n if (foundStateNonSerializableValue) {\r\n const { keyPath, value } = foundStateNonSerializableValue\r\n\r\n console.error(\r\n `A non-serializable value was detected in the state, in the path: \\`${keyPath}\\`. Value:`,\r\n value,\r\n `\r\nTake a look at the reducer(s) handling this action type: ${action.type}.\r\n(See https://redux.js.org/faq/organizing-state#can-i-put-functions-promises-or-other-non-serializable-items-in-my-store-state)`\r\n )\r\n }\r\n })\r\n\r\n measureUtils.warnIfExceeded()\r\n }\r\n\r\n return result\r\n }\r\n}\r\n","import type { Middleware, AnyAction } from 'redux'\r\nimport type { ThunkMiddleware } from 'redux-thunk'\r\nimport thunkMiddleware from 'redux-thunk'\r\nimport type { ActionCreatorInvariantMiddlewareOptions } from './actionCreatorInvariantMiddleware'\r\nimport { createActionCreatorInvariantMiddleware } from './actionCreatorInvariantMiddleware'\r\nimport type { ImmutableStateInvariantMiddlewareOptions } from './immutableStateInvariantMiddleware'\r\n/* PROD_START_REMOVE_UMD */\r\nimport { createImmutableStateInvariantMiddleware } from './immutableStateInvariantMiddleware'\r\n/* PROD_STOP_REMOVE_UMD */\r\n\r\nimport type { SerializableStateInvariantMiddlewareOptions } from './serializableStateInvariantMiddleware'\r\nimport { createSerializableStateInvariantMiddleware } from './serializableStateInvariantMiddleware'\r\nimport type { ExcludeFromTuple } from './tsHelpers'\r\nimport { MiddlewareArray } from './utils'\r\n\r\nfunction isBoolean(x: any): x is boolean {\r\n return typeof x === 'boolean'\r\n}\r\n\r\ninterface ThunkOptions {\r\n extraArgument: E\r\n}\r\n\r\ninterface GetDefaultMiddlewareOptions {\r\n thunk?: boolean | ThunkOptions\r\n immutableCheck?: boolean | ImmutableStateInvariantMiddlewareOptions\r\n serializableCheck?: boolean | SerializableStateInvariantMiddlewareOptions\r\n actionCreatorCheck?: boolean | ActionCreatorInvariantMiddlewareOptions\r\n}\r\n\r\nexport type ThunkMiddlewareFor<\r\n S,\r\n O extends GetDefaultMiddlewareOptions = {}\r\n> = O extends {\r\n thunk: false\r\n}\r\n ? never\r\n : O extends { thunk: { extraArgument: infer E } }\r\n ? ThunkMiddleware\r\n : ThunkMiddleware\r\n\r\nexport type CurriedGetDefaultMiddleware = <\r\n O extends Partial = {\r\n thunk: true\r\n immutableCheck: true\r\n serializableCheck: true\r\n actionCreatorCheck: true\r\n }\r\n>(\r\n options?: O\r\n) => MiddlewareArray], never>>\r\n\r\nexport function curryGetDefaultMiddleware<\r\n S = any\r\n>(): CurriedGetDefaultMiddleware {\r\n return function curriedGetDefaultMiddleware(options) {\r\n return getDefaultMiddleware(options)\r\n }\r\n}\r\n\r\n/**\r\n * Returns any array containing the default middleware installed by\r\n * `configureStore()`. Useful if you want to configure your store with a custom\r\n * `middleware` array but still keep the default set.\r\n *\r\n * @return The default middleware used by `configureStore()`.\r\n *\r\n * @public\r\n *\r\n * @deprecated Prefer to use the callback notation for the `middleware` option in `configureStore`\r\n * to access a pre-typed `getDefaultMiddleware` instead.\r\n */\r\nexport function getDefaultMiddleware<\r\n S = any,\r\n O extends Partial = {\r\n thunk: true\r\n immutableCheck: true\r\n serializableCheck: true\r\n actionCreatorCheck: true\r\n }\r\n>(\r\n options: O = {} as O\r\n): MiddlewareArray], never>> {\r\n const {\r\n thunk = true,\r\n immutableCheck = true,\r\n serializableCheck = true,\r\n actionCreatorCheck = true,\r\n } = options\r\n\r\n let middlewareArray = new MiddlewareArray()\r\n\r\n if (thunk) {\r\n if (isBoolean(thunk)) {\r\n middlewareArray.push(thunkMiddleware)\r\n } else {\r\n middlewareArray.push(\r\n thunkMiddleware.withExtraArgument(thunk.extraArgument)\r\n )\r\n }\r\n }\r\n\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (immutableCheck) {\r\n /* PROD_START_REMOVE_UMD */\r\n let immutableOptions: ImmutableStateInvariantMiddlewareOptions = {}\r\n\r\n if (!isBoolean(immutableCheck)) {\r\n immutableOptions = immutableCheck\r\n }\r\n\r\n middlewareArray.unshift(\r\n createImmutableStateInvariantMiddleware(immutableOptions)\r\n )\r\n /* PROD_STOP_REMOVE_UMD */\r\n }\r\n\r\n if (serializableCheck) {\r\n let serializableOptions: SerializableStateInvariantMiddlewareOptions = {}\r\n\r\n if (!isBoolean(serializableCheck)) {\r\n serializableOptions = serializableCheck\r\n }\r\n\r\n middlewareArray.push(\r\n createSerializableStateInvariantMiddleware(serializableOptions)\r\n )\r\n }\r\n if (actionCreatorCheck) {\r\n let actionCreatorOptions: ActionCreatorInvariantMiddlewareOptions = {}\r\n\r\n if (!isBoolean(actionCreatorCheck)) {\r\n actionCreatorOptions = actionCreatorCheck\r\n }\r\n\r\n middlewareArray.unshift(\r\n createActionCreatorInvariantMiddleware(actionCreatorOptions)\r\n )\r\n }\r\n }\r\n\r\n return middlewareArray as any\r\n}\r\n","import type {\r\n Reducer,\r\n ReducersMapObject,\r\n Middleware,\r\n Action,\r\n AnyAction,\r\n StoreEnhancer,\r\n Store,\r\n Dispatch,\r\n PreloadedState,\r\n CombinedState,\r\n} from 'redux'\r\nimport { createStore, compose, applyMiddleware, combineReducers } from 'redux'\r\nimport type { DevToolsEnhancerOptions as DevToolsOptions } from './devtoolsExtension'\r\nimport { composeWithDevTools } from './devtoolsExtension'\r\n\r\nimport isPlainObject from './isPlainObject'\r\nimport type {\r\n ThunkMiddlewareFor,\r\n CurriedGetDefaultMiddleware,\r\n} from './getDefaultMiddleware'\r\nimport { curryGetDefaultMiddleware } from './getDefaultMiddleware'\r\nimport type {\r\n NoInfer,\r\n ExtractDispatchExtensions,\r\n ExtractStoreExtensions,\r\n ExtractStateExtensions,\r\n} from './tsHelpers'\r\nimport { EnhancerArray } from './utils'\r\n\r\nconst IS_PRODUCTION = process.env.NODE_ENV === 'production'\r\n\r\n/**\r\n * Callback function type, to be used in `ConfigureStoreOptions.enhancers`\r\n *\r\n * @public\r\n */\r\nexport type ConfigureEnhancersCallback = (\r\n defaultEnhancers: EnhancerArray<[StoreEnhancer<{}, {}>]>\r\n) => E\r\n\r\n/**\r\n * Options for `configureStore()`.\r\n *\r\n * @public\r\n */\r\nexport interface ConfigureStoreOptions<\r\n S = any,\r\n A extends Action = AnyAction,\r\n M extends Middlewares = Middlewares,\r\n E extends Enhancers = Enhancers\r\n> {\r\n /**\r\n * A single reducer function that will be used as the root reducer, or an\r\n * object of slice reducers that will be passed to `combineReducers()`.\r\n */\r\n reducer: Reducer | ReducersMapObject\r\n\r\n /**\r\n * An array of Redux middleware to install. If not supplied, defaults to\r\n * the set of middleware returned by `getDefaultMiddleware()`.\r\n *\r\n * @example `middleware: (gDM) => gDM().concat(logger, apiMiddleware, yourCustomMiddleware)`\r\n * @see https://redux-toolkit.js.org/api/getDefaultMiddleware#intended-usage\r\n */\r\n middleware?: ((getDefaultMiddleware: CurriedGetDefaultMiddleware) => M) | M\r\n\r\n /**\r\n * Whether to enable Redux DevTools integration. Defaults to `true`.\r\n *\r\n * Additional configuration can be done by passing Redux DevTools options\r\n */\r\n devTools?: boolean | DevToolsOptions\r\n\r\n /**\r\n * The initial state, same as Redux's createStore.\r\n * You may optionally specify it to hydrate the state\r\n * from the server in universal apps, or to restore a previously serialized\r\n * user session. If you use `combineReducers()` to produce the root reducer\r\n * function (either directly or indirectly by passing an object as `reducer`),\r\n * this must be an object with the same shape as the reducer map keys.\r\n */\r\n /*\r\n Not 100% correct but the best approximation we can get:\r\n - if S is a `CombinedState` applying a second `CombinedState` on it does not change anything.\r\n - if it is not, there could be two cases:\r\n - `ReducersMapObject` is being passed in. In this case, we will call `combineReducers` on it and `CombinedState` is correct\r\n - `Reducer` is being passed in. In this case, actually `CombinedState` is wrong and `S` would be correct.\r\n As we cannot distinguish between those two cases without adding another generic parameter,\r\n we just make the pragmatic assumption that the latter almost never happens.\r\n */\r\n preloadedState?: PreloadedState>>\r\n\r\n /**\r\n * The store enhancers to apply. See Redux's `createStore()`.\r\n * All enhancers will be included before the DevTools Extension enhancer.\r\n * If you need to customize the order of enhancers, supply a callback\r\n * function that will receive the original array (ie, `[applyMiddleware]`),\r\n * and should return a new array (such as `[applyMiddleware, offline]`).\r\n * If you only need to add middleware, you can use the `middleware` parameter instead.\r\n */\r\n enhancers?: E | ConfigureEnhancersCallback\r\n}\r\n\r\ntype Middlewares = ReadonlyArray>\r\n\r\ntype Enhancers = ReadonlyArray\r\n\r\nexport interface ToolkitStore<\r\n S = any,\r\n A extends Action = AnyAction,\r\n M extends Middlewares = Middlewares\r\n> extends Store {\r\n /**\r\n * The `dispatch` method of your store, enhanced by all its middlewares.\r\n *\r\n * @inheritdoc\r\n */\r\n dispatch: ExtractDispatchExtensions & Dispatch\r\n}\r\n\r\n/**\r\n * A Redux store returned by `configureStore()`. Supports dispatching\r\n * side-effectful _thunks_ in addition to plain actions.\r\n *\r\n * @public\r\n */\r\nexport type EnhancedStore<\r\n S = any,\r\n A extends Action = AnyAction,\r\n M extends Middlewares = Middlewares,\r\n E extends Enhancers = Enhancers\r\n> = ToolkitStore, A, M> &\r\n ExtractStoreExtensions\r\n\r\n/**\r\n * A friendly abstraction over the standard Redux `createStore()` function.\r\n *\r\n * @param options The store configuration.\r\n * @returns A configured Redux store.\r\n *\r\n * @public\r\n */\r\nexport function configureStore<\r\n S = any,\r\n A extends Action = AnyAction,\r\n M extends Middlewares = [ThunkMiddlewareFor],\r\n E extends Enhancers = [StoreEnhancer]\r\n>(options: ConfigureStoreOptions): EnhancedStore {\r\n const curriedGetDefaultMiddleware = curryGetDefaultMiddleware()\r\n\r\n const {\r\n reducer = undefined,\r\n middleware = curriedGetDefaultMiddleware(),\r\n devTools = true,\r\n preloadedState = undefined,\r\n enhancers = undefined,\r\n } = options || {}\r\n\r\n let rootReducer: Reducer\r\n\r\n if (typeof reducer === 'function') {\r\n rootReducer = reducer\r\n } else if (isPlainObject(reducer)) {\r\n rootReducer = combineReducers(reducer) as unknown as Reducer\r\n } else {\r\n throw new Error(\r\n '\"reducer\" is a required argument, and must be a function or an object of functions that can be passed to combineReducers'\r\n )\r\n }\r\n\r\n let finalMiddleware = middleware\r\n if (typeof finalMiddleware === 'function') {\r\n finalMiddleware = finalMiddleware(curriedGetDefaultMiddleware)\r\n\r\n if (!IS_PRODUCTION && !Array.isArray(finalMiddleware)) {\r\n throw new Error(\r\n 'when using a middleware builder function, an array of middleware must be returned'\r\n )\r\n }\r\n }\r\n if (\r\n !IS_PRODUCTION &&\r\n finalMiddleware.some((item: any) => typeof item !== 'function')\r\n ) {\r\n throw new Error(\r\n 'each middleware provided to configureStore must be a function'\r\n )\r\n }\r\n\r\n const middlewareEnhancer: StoreEnhancer = applyMiddleware(...finalMiddleware)\r\n\r\n let finalCompose = compose\r\n\r\n if (devTools) {\r\n finalCompose = composeWithDevTools({\r\n // Enable capture of stack traces for dispatched Redux actions\r\n trace: !IS_PRODUCTION,\r\n ...(typeof devTools === 'object' && devTools),\r\n })\r\n }\r\n\r\n const defaultEnhancers = new EnhancerArray(middlewareEnhancer)\r\n let storeEnhancers: Enhancers = defaultEnhancers\r\n\r\n if (Array.isArray(enhancers)) {\r\n storeEnhancers = [middlewareEnhancer, ...enhancers]\r\n } else if (typeof enhancers === 'function') {\r\n storeEnhancers = enhancers(defaultEnhancers)\r\n }\r\n\r\n const composedEnhancer = finalCompose(...storeEnhancers) as StoreEnhancer\r\n\r\n return createStore(rootReducer, preloadedState, composedEnhancer)\r\n}\r\n","import type { Action, AnyAction } from 'redux'\r\nimport type {\r\n CaseReducer,\r\n CaseReducers,\r\n ActionMatcherDescriptionCollection,\r\n} from './createReducer'\r\nimport type { TypeGuard } from './tsHelpers'\r\n\r\nexport interface TypedActionCreator {\r\n (...args: any[]): Action\r\n type: Type\r\n}\r\n\r\n/**\r\n * A builder for an action <-> reducer map.\r\n *\r\n * @public\r\n */\r\nexport interface ActionReducerMapBuilder {\r\n /**\r\n * Adds a case reducer to handle a single exact action type.\r\n * @remarks\r\n * All calls to `builder.addCase` must come before any calls to `builder.addMatcher` or `builder.addDefaultCase`.\r\n * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\r\n * @param reducer - The actual case reducer function.\r\n */\r\n addCase>(\r\n actionCreator: ActionCreator,\r\n reducer: CaseReducer>\r\n ): ActionReducerMapBuilder\r\n /**\r\n * Adds a case reducer to handle a single exact action type.\r\n * @remarks\r\n * All calls to `builder.addCase` must come before any calls to `builder.addMatcher` or `builder.addDefaultCase`.\r\n * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\r\n * @param reducer - The actual case reducer function.\r\n */\r\n addCase>(\r\n type: Type,\r\n reducer: CaseReducer\r\n ): ActionReducerMapBuilder\r\n\r\n /**\r\n * Allows you to match your incoming actions against your own filter function instead of only the `action.type` property.\r\n * @remarks\r\n * If multiple matcher reducers match, all of them will be executed in the order\r\n * they were defined in - even if a case reducer already matched.\r\n * All calls to `builder.addMatcher` must come after any calls to `builder.addCase` and before any calls to `builder.addDefaultCase`.\r\n * @param matcher - A matcher function. In TypeScript, this should be a [type predicate](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates)\r\n * function\r\n * @param reducer - The actual case reducer function.\r\n *\r\n * @example\r\n```ts\r\nimport {\r\n createAction,\r\n createReducer,\r\n AsyncThunk,\r\n AnyAction,\r\n} from \"@reduxjs/toolkit\";\r\n\r\ntype GenericAsyncThunk = AsyncThunk;\r\n\r\ntype PendingAction = ReturnType;\r\ntype RejectedAction = ReturnType;\r\ntype FulfilledAction = ReturnType;\r\n\r\nconst initialState: Record = {};\r\nconst resetAction = createAction(\"reset-tracked-loading-state\");\r\n\r\nfunction isPendingAction(action: AnyAction): action is PendingAction {\r\n return action.type.endsWith(\"/pending\");\r\n}\r\n\r\nconst reducer = createReducer(initialState, (builder) => {\r\n builder\r\n .addCase(resetAction, () => initialState)\r\n // matcher can be defined outside as a type predicate function\r\n .addMatcher(isPendingAction, (state, action) => {\r\n state[action.meta.requestId] = \"pending\";\r\n })\r\n .addMatcher(\r\n // matcher can be defined inline as a type predicate function\r\n (action): action is RejectedAction => action.type.endsWith(\"/rejected\"),\r\n (state, action) => {\r\n state[action.meta.requestId] = \"rejected\";\r\n }\r\n )\r\n // matcher can just return boolean and the matcher can receive a generic argument\r\n .addMatcher(\r\n (action) => action.type.endsWith(\"/fulfilled\"),\r\n (state, action) => {\r\n state[action.meta.requestId] = \"fulfilled\";\r\n }\r\n );\r\n});\r\n```\r\n */\r\n addMatcher(\r\n matcher: TypeGuard | ((action: any) => boolean),\r\n reducer: CaseReducer\r\n ): Omit, 'addCase'>\r\n\r\n /**\r\n * Adds a \"default case\" reducer that is executed if no case reducer and no matcher\r\n * reducer was executed for this action.\r\n * @param reducer - The fallback \"default case\" reducer function.\r\n *\r\n * @example\r\n```ts\r\nimport { createReducer } from '@reduxjs/toolkit'\r\nconst initialState = { otherActions: 0 }\r\nconst reducer = createReducer(initialState, builder => {\r\n builder\r\n // .addCase(...)\r\n // .addMatcher(...)\r\n .addDefaultCase((state, action) => {\r\n state.otherActions++\r\n })\r\n})\r\n```\r\n */\r\n addDefaultCase(reducer: CaseReducer): {}\r\n}\r\n\r\nexport function executeReducerBuilderCallback(\r\n builderCallback: (builder: ActionReducerMapBuilder) => void\r\n): [\r\n CaseReducers,\r\n ActionMatcherDescriptionCollection,\r\n CaseReducer | undefined\r\n] {\r\n const actionsMap: CaseReducers = {}\r\n const actionMatchers: ActionMatcherDescriptionCollection = []\r\n let defaultCaseReducer: CaseReducer | undefined\r\n const builder = {\r\n addCase(\r\n typeOrActionCreator: string | TypedActionCreator,\r\n reducer: CaseReducer\r\n ) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n /*\r\n to keep the definition by the user in line with actual behavior,\r\n we enforce `addCase` to always be called before calling `addMatcher`\r\n as matching cases take precedence over matchers\r\n */\r\n if (actionMatchers.length > 0) {\r\n throw new Error(\r\n '`builder.addCase` should only be called before calling `builder.addMatcher`'\r\n )\r\n }\r\n if (defaultCaseReducer) {\r\n throw new Error(\r\n '`builder.addCase` should only be called before calling `builder.addDefaultCase`'\r\n )\r\n }\r\n }\r\n const type =\r\n typeof typeOrActionCreator === 'string'\r\n ? typeOrActionCreator\r\n : typeOrActionCreator.type\r\n if (!type) {\r\n throw new Error(\r\n '`builder.addCase` cannot be called with an empty action type'\r\n )\r\n }\r\n if (type in actionsMap) {\r\n throw new Error(\r\n '`builder.addCase` cannot be called with two reducers for the same action type'\r\n )\r\n }\r\n actionsMap[type] = reducer\r\n return builder\r\n },\r\n addMatcher(\r\n matcher: TypeGuard,\r\n reducer: CaseReducer\r\n ) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (defaultCaseReducer) {\r\n throw new Error(\r\n '`builder.addMatcher` should only be called before calling `builder.addDefaultCase`'\r\n )\r\n }\r\n }\r\n actionMatchers.push({ matcher, reducer })\r\n return builder\r\n },\r\n addDefaultCase(reducer: CaseReducer) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (defaultCaseReducer) {\r\n throw new Error('`builder.addDefaultCase` can only be called once')\r\n }\r\n }\r\n defaultCaseReducer = reducer\r\n return builder\r\n },\r\n }\r\n builderCallback(builder)\r\n return [actionsMap, actionMatchers, defaultCaseReducer]\r\n}\r\n","import type { Draft } from 'immer'\r\nimport createNextState, { isDraft, isDraftable } from 'immer'\r\nimport type { AnyAction, Action, Reducer } from 'redux'\r\nimport type { ActionReducerMapBuilder } from './mapBuilders'\r\nimport { executeReducerBuilderCallback } from './mapBuilders'\r\nimport type { NoInfer } from './tsHelpers'\r\nimport { freezeDraftable } from './utils'\r\n\r\n/**\r\n * Defines a mapping from action types to corresponding action object shapes.\r\n *\r\n * @deprecated This should not be used manually - it is only used for internal\r\n * inference purposes and should not have any further value.\r\n * It might be removed in the future.\r\n * @public\r\n */\r\nexport type Actions = Record\r\n\r\n/**\r\n * @deprecated use `TypeGuard` instead\r\n */\r\nexport interface ActionMatcher {\r\n (action: AnyAction): action is A\r\n}\r\n\r\nexport type ActionMatcherDescription = {\r\n matcher: ActionMatcher\r\n reducer: CaseReducer>\r\n}\r\n\r\nexport type ReadonlyActionMatcherDescriptionCollection = ReadonlyArray<\r\n ActionMatcherDescription\r\n>\r\n\r\nexport type ActionMatcherDescriptionCollection = Array<\r\n ActionMatcherDescription\r\n>\r\n\r\n/**\r\n * A *case reducer* is a reducer function for a specific action type. Case\r\n * reducers can be composed to full reducers using `createReducer()`.\r\n *\r\n * Unlike a normal Redux reducer, a case reducer is never called with an\r\n * `undefined` state to determine the initial state. Instead, the initial\r\n * state is explicitly specified as an argument to `createReducer()`.\r\n *\r\n * In addition, a case reducer can choose to mutate the passed-in `state`\r\n * value directly instead of returning a new state. This does not actually\r\n * cause the store state to be mutated directly; instead, thanks to\r\n * [immer](https://github.com/mweststrate/immer), the mutations are\r\n * translated to copy operations that result in a new state.\r\n *\r\n * @public\r\n */\r\nexport type CaseReducer = (\r\n state: Draft,\r\n action: A\r\n) => NoInfer | void | Draft>\r\n\r\n/**\r\n * A mapping from action types to case reducers for `createReducer()`.\r\n *\r\n * @deprecated This should not be used manually - it is only used\r\n * for internal inference purposes and using it manually\r\n * would lead to type erasure.\r\n * It might be removed in the future.\r\n * @public\r\n */\r\nexport type CaseReducers = {\r\n [T in keyof AS]: AS[T] extends Action ? CaseReducer : void\r\n}\r\n\r\nexport type NotFunction = T extends Function ? never : T\r\n\r\nfunction isStateFunction(x: unknown): x is () => S {\r\n return typeof x === 'function'\r\n}\r\n\r\nexport type ReducerWithInitialState> = Reducer & {\r\n getInitialState: () => S\r\n}\r\n\r\nlet hasWarnedAboutObjectNotation = false\r\n\r\n/**\r\n * A utility function that allows defining a reducer as a mapping from action\r\n * type to *case reducer* functions that handle these action types. The\r\n * reducer's initial state is passed as the first argument.\r\n *\r\n * @remarks\r\n * The body of every case reducer is implicitly wrapped with a call to\r\n * `produce()` from the [immer](https://github.com/mweststrate/immer) library.\r\n * This means that rather than returning a new state object, you can also\r\n * mutate the passed-in state object directly; these mutations will then be\r\n * automatically and efficiently translated into copies, giving you both\r\n * convenience and immutability.\r\n *\r\n * @overloadSummary\r\n * This overload accepts a callback function that receives a `builder` object as its argument.\r\n * That builder provides `addCase`, `addMatcher` and `addDefaultCase` functions that may be\r\n * called to define what actions this reducer will handle.\r\n *\r\n * @param initialState - `State | (() => State)`: The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\r\n * @param builderCallback - `(builder: Builder) => void` A callback that receives a *builder* object to define\r\n * case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\r\n * @example\r\n```ts\r\nimport {\r\n createAction,\r\n createReducer,\r\n AnyAction,\r\n PayloadAction,\r\n} from \"@reduxjs/toolkit\";\r\n\r\nconst increment = createAction(\"increment\");\r\nconst decrement = createAction(\"decrement\");\r\n\r\nfunction isActionWithNumberPayload(\r\n action: AnyAction\r\n): action is PayloadAction {\r\n return typeof action.payload === \"number\";\r\n}\r\n\r\nconst reducer = createReducer(\r\n {\r\n counter: 0,\r\n sumOfNumberPayloads: 0,\r\n unhandledActions: 0,\r\n },\r\n (builder) => {\r\n builder\r\n .addCase(increment, (state, action) => {\r\n // action is inferred correctly here\r\n state.counter += action.payload;\r\n })\r\n // You can chain calls, or have separate `builder.addCase()` lines each time\r\n .addCase(decrement, (state, action) => {\r\n state.counter -= action.payload;\r\n })\r\n // You can apply a \"matcher function\" to incoming actions\r\n .addMatcher(isActionWithNumberPayload, (state, action) => {})\r\n // and provide a default case if no other handlers matched\r\n .addDefaultCase((state, action) => {});\r\n }\r\n);\r\n```\r\n * @public\r\n */\r\nexport function createReducer>(\r\n initialState: S | (() => S),\r\n builderCallback: (builder: ActionReducerMapBuilder) => void\r\n): ReducerWithInitialState\r\n\r\n/**\r\n * A utility function that allows defining a reducer as a mapping from action\r\n * type to *case reducer* functions that handle these action types. The\r\n * reducer's initial state is passed as the first argument.\r\n *\r\n * The body of every case reducer is implicitly wrapped with a call to\r\n * `produce()` from the [immer](https://github.com/mweststrate/immer) library.\r\n * This means that rather than returning a new state object, you can also\r\n * mutate the passed-in state object directly; these mutations will then be\r\n * automatically and efficiently translated into copies, giving you both\r\n * convenience and immutability.\r\n * \r\n * @overloadSummary\r\n * This overload accepts an object where the keys are string action types, and the values\r\n * are case reducer functions to handle those action types.\r\n *\r\n * @param initialState - `State | (() => State)`: The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\r\n * @param actionsMap - An object mapping from action types to _case reducers_, each of which handles one specific action type.\r\n * @param actionMatchers - An array of matcher definitions in the form `{matcher, reducer}`.\r\n * All matching reducers will be executed in order, independently if a case reducer matched or not.\r\n * @param defaultCaseReducer - A \"default case\" reducer that is executed if no case reducer and no matcher\r\n * reducer was executed for this action.\r\n *\r\n * @example\r\n```js\r\nconst counterReducer = createReducer(0, {\r\n increment: (state, action) => state + action.payload,\r\n decrement: (state, action) => state - action.payload\r\n})\r\n\r\n// Alternately, use a \"lazy initializer\" to provide the initial state\r\n// (works with either form of createReducer)\r\nconst initialState = () => 0\r\nconst counterReducer = createReducer(initialState, {\r\n increment: (state, action) => state + action.payload,\r\n decrement: (state, action) => state - action.payload\r\n})\r\n```\r\n \r\n * Action creators that were generated using [`createAction`](./createAction) may be used directly as the keys here, using computed property syntax:\r\n\r\n```js\r\nconst increment = createAction('increment')\r\nconst decrement = createAction('decrement')\r\n\r\nconst counterReducer = createReducer(0, {\r\n [increment]: (state, action) => state + action.payload,\r\n [decrement.type]: (state, action) => state - action.payload\r\n})\r\n```\r\n * @public\r\n */\r\nexport function createReducer<\r\n S extends NotFunction,\r\n CR extends CaseReducers = CaseReducers\r\n>(\r\n initialState: S | (() => S),\r\n actionsMap: CR,\r\n actionMatchers?: ActionMatcherDescriptionCollection,\r\n defaultCaseReducer?: CaseReducer\r\n): ReducerWithInitialState\r\n\r\nexport function createReducer>(\r\n initialState: S | (() => S),\r\n mapOrBuilderCallback:\r\n | CaseReducers\r\n | ((builder: ActionReducerMapBuilder) => void),\r\n actionMatchers: ReadonlyActionMatcherDescriptionCollection = [],\r\n defaultCaseReducer?: CaseReducer\r\n): ReducerWithInitialState {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (typeof mapOrBuilderCallback === 'object') {\r\n if (!hasWarnedAboutObjectNotation) {\r\n hasWarnedAboutObjectNotation = true\r\n console.warn(\r\n \"The object notation for `createReducer` is deprecated, and will be removed in RTK 2.0. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createReducer\"\r\n )\r\n }\r\n }\r\n }\r\n\r\n let [actionsMap, finalActionMatchers, finalDefaultCaseReducer] =\r\n typeof mapOrBuilderCallback === 'function'\r\n ? executeReducerBuilderCallback(mapOrBuilderCallback)\r\n : [mapOrBuilderCallback, actionMatchers, defaultCaseReducer]\r\n\r\n // Ensure the initial state gets frozen either way (if draftable)\r\n let getInitialState: () => S\r\n if (isStateFunction(initialState)) {\r\n getInitialState = () => freezeDraftable(initialState())\r\n } else {\r\n const frozenInitialState = freezeDraftable(initialState)\r\n getInitialState = () => frozenInitialState\r\n }\r\n\r\n function reducer(state = getInitialState(), action: any): S {\r\n let caseReducers = [\r\n actionsMap[action.type],\r\n ...finalActionMatchers\r\n .filter(({ matcher }) => matcher(action))\r\n .map(({ reducer }) => reducer),\r\n ]\r\n if (caseReducers.filter((cr) => !!cr).length === 0) {\r\n caseReducers = [finalDefaultCaseReducer]\r\n }\r\n\r\n return caseReducers.reduce((previousState, caseReducer): S => {\r\n if (caseReducer) {\r\n if (isDraft(previousState)) {\r\n // If it's already a draft, we must already be inside a `createNextState` call,\r\n // likely because this is being wrapped in `createReducer`, `createSlice`, or nested\r\n // inside an existing draft. It's safe to just pass the draft to the mutator.\r\n const draft = previousState as Draft // We can assume this is already a draft\r\n const result = caseReducer(draft, action)\r\n\r\n if (result === undefined) {\r\n return previousState\r\n }\r\n\r\n return result as S\r\n } else if (!isDraftable(previousState)) {\r\n // If state is not draftable (ex: a primitive, such as 0), we want to directly\r\n // return the caseReducer func and not wrap it with produce.\r\n const result = caseReducer(previousState as any, action)\r\n\r\n if (result === undefined) {\r\n if (previousState === null) {\r\n return previousState\r\n }\r\n throw Error(\r\n 'A case reducer on a non-draftable value must not return undefined'\r\n )\r\n }\r\n\r\n return result as S\r\n } else {\r\n // @ts-ignore createNextState() produces an Immutable> rather\r\n // than an Immutable, and TypeScript cannot find out how to reconcile\r\n // these two types.\r\n return createNextState(previousState, (draft: Draft) => {\r\n return caseReducer(draft, action)\r\n })\r\n }\r\n }\r\n\r\n return previousState\r\n }, state)\r\n }\r\n\r\n reducer.getInitialState = getInitialState\r\n\r\n return reducer as ReducerWithInitialState\r\n}\r\n","import type { AnyAction, Reducer } from 'redux'\r\nimport { createNextState } from '.'\r\nimport type {\r\n ActionCreatorWithoutPayload,\r\n PayloadAction,\r\n PayloadActionCreator,\r\n PrepareAction,\r\n _ActionCreatorWithPreparedPayload,\r\n} from './createAction'\r\nimport { createAction } from './createAction'\r\nimport type {\r\n CaseReducer,\r\n CaseReducers,\r\n ReducerWithInitialState,\r\n} from './createReducer'\r\nimport { createReducer, NotFunction } from './createReducer'\r\nimport type { ActionReducerMapBuilder } from './mapBuilders'\r\nimport { executeReducerBuilderCallback } from './mapBuilders'\r\nimport type { NoInfer } from './tsHelpers'\r\nimport { freezeDraftable } from './utils'\r\n\r\nlet hasWarnedAboutObjectNotation = false\r\n\r\n/**\r\n * An action creator attached to a slice.\r\n *\r\n * @deprecated please use PayloadActionCreator directly\r\n *\r\n * @public\r\n */\r\nexport type SliceActionCreator

= PayloadActionCreator

\r\n\r\n/**\r\n * The return value of `createSlice`\r\n *\r\n * @public\r\n */\r\nexport interface Slice<\r\n State = any,\r\n CaseReducers extends SliceCaseReducers = SliceCaseReducers,\r\n Name extends string = string\r\n> {\r\n /**\r\n * The slice name.\r\n */\r\n name: Name\r\n\r\n /**\r\n * The slice's reducer.\r\n */\r\n reducer: Reducer\r\n\r\n /**\r\n * Action creators for the types of actions that are handled by the slice\r\n * reducer.\r\n */\r\n actions: CaseReducerActions\r\n\r\n /**\r\n * The individual case reducer functions that were passed in the `reducers` parameter.\r\n * This enables reuse and testing if they were defined inline when calling `createSlice`.\r\n */\r\n caseReducers: SliceDefinedCaseReducers\r\n\r\n /**\r\n * Provides access to the initial state value given to the slice.\r\n * If a lazy state initializer was provided, it will be called and a fresh value returned.\r\n */\r\n getInitialState: () => State\r\n}\r\n\r\n/**\r\n * Options for `createSlice()`.\r\n *\r\n * @public\r\n */\r\nexport interface CreateSliceOptions<\r\n State = any,\r\n CR extends SliceCaseReducers = SliceCaseReducers,\r\n Name extends string = string\r\n> {\r\n /**\r\n * The slice's name. Used to namespace the generated action types.\r\n */\r\n name: Name\r\n\r\n /**\r\n * The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\r\n */\r\n initialState: State | (() => State)\r\n\r\n /**\r\n * A mapping from action types to action-type-specific *case reducer*\r\n * functions. For every action type, a matching action creator will be\r\n * generated using `createAction()`.\r\n */\r\n reducers: ValidateSliceCaseReducers\r\n\r\n /**\r\n * A callback that receives a *builder* object to define\r\n * case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\r\n * \r\n * Alternatively, a mapping from action types to action-type-specific *case reducer*\r\n * functions. These reducers should have existing action types used\r\n * as the keys, and action creators will _not_ be generated.\r\n * \r\n * @example\r\n```ts\r\nimport { createAction, createSlice, Action, AnyAction } from '@reduxjs/toolkit'\r\nconst incrementBy = createAction('incrementBy')\r\nconst decrement = createAction('decrement')\r\n\r\ninterface RejectedAction extends Action {\r\n error: Error\r\n}\r\n\r\nfunction isRejectedAction(action: AnyAction): action is RejectedAction {\r\n return action.type.endsWith('rejected')\r\n}\r\n\r\ncreateSlice({\r\n name: 'counter',\r\n initialState: 0,\r\n reducers: {},\r\n extraReducers: builder => {\r\n builder\r\n .addCase(incrementBy, (state, action) => {\r\n // action is inferred correctly here if using TS\r\n })\r\n // You can chain calls, or have separate `builder.addCase()` lines each time\r\n .addCase(decrement, (state, action) => {})\r\n // You can match a range of action types\r\n .addMatcher(\r\n isRejectedAction,\r\n // `action` will be inferred as a RejectedAction due to isRejectedAction being defined as a type guard\r\n (state, action) => {}\r\n )\r\n // and provide a default case if no other handlers matched\r\n .addDefaultCase((state, action) => {})\r\n }\r\n})\r\n```\r\n */\r\n extraReducers?:\r\n | CaseReducers, any>\r\n | ((builder: ActionReducerMapBuilder>) => void)\r\n}\r\n\r\n/**\r\n * A CaseReducer with a `prepare` method.\r\n *\r\n * @public\r\n */\r\nexport type CaseReducerWithPrepare = {\r\n reducer: CaseReducer\r\n prepare: PrepareAction\r\n}\r\n\r\n/**\r\n * The type describing a slice's `reducers` option.\r\n *\r\n * @public\r\n */\r\nexport type SliceCaseReducers = {\r\n [K: string]:\r\n | CaseReducer>\r\n | CaseReducerWithPrepare>\r\n}\r\n\r\ntype SliceActionType<\r\n SliceName extends string,\r\n ActionName extends keyof any\r\n> = ActionName extends string | number ? `${SliceName}/${ActionName}` : string\r\n\r\n/**\r\n * Derives the slice's `actions` property from the `reducers` options\r\n *\r\n * @public\r\n */\r\nexport type CaseReducerActions<\r\n CaseReducers extends SliceCaseReducers,\r\n SliceName extends string\r\n> = {\r\n [Type in keyof CaseReducers]: CaseReducers[Type] extends { prepare: any }\r\n ? ActionCreatorForCaseReducerWithPrepare<\r\n CaseReducers[Type],\r\n SliceActionType\r\n >\r\n : ActionCreatorForCaseReducer<\r\n CaseReducers[Type],\r\n SliceActionType\r\n >\r\n}\r\n\r\n/**\r\n * Get a `PayloadActionCreator` type for a passed `CaseReducerWithPrepare`\r\n *\r\n * @internal\r\n */\r\ntype ActionCreatorForCaseReducerWithPrepare<\r\n CR extends { prepare: any },\r\n Type extends string\r\n> = _ActionCreatorWithPreparedPayload\r\n\r\n/**\r\n * Get a `PayloadActionCreator` type for a passed `CaseReducer`\r\n *\r\n * @internal\r\n */\r\ntype ActionCreatorForCaseReducer = CR extends (\r\n state: any,\r\n action: infer Action\r\n) => any\r\n ? Action extends { payload: infer P }\r\n ? PayloadActionCreator\r\n : ActionCreatorWithoutPayload\r\n : ActionCreatorWithoutPayload\r\n\r\n/**\r\n * Extracts the CaseReducers out of a `reducers` object, even if they are\r\n * tested into a `CaseReducerWithPrepare`.\r\n *\r\n * @internal\r\n */\r\ntype SliceDefinedCaseReducers> = {\r\n [Type in keyof CaseReducers]: CaseReducers[Type] extends {\r\n reducer: infer Reducer\r\n }\r\n ? Reducer\r\n : CaseReducers[Type]\r\n}\r\n\r\n/**\r\n * Used on a SliceCaseReducers object.\r\n * Ensures that if a CaseReducer is a `CaseReducerWithPrepare`, that\r\n * the `reducer` and the `prepare` function use the same type of `payload`.\r\n *\r\n * Might do additional such checks in the future.\r\n *\r\n * This type is only ever useful if you want to write your own wrapper around\r\n * `createSlice`. Please don't use it otherwise!\r\n *\r\n * @public\r\n */\r\nexport type ValidateSliceCaseReducers<\r\n S,\r\n ACR extends SliceCaseReducers\r\n> = ACR &\r\n {\r\n [T in keyof ACR]: ACR[T] extends {\r\n reducer(s: S, action?: infer A): any\r\n }\r\n ? {\r\n prepare(...a: never[]): Omit\r\n }\r\n : {}\r\n }\r\n\r\nfunction getType(slice: string, actionKey: string): string {\r\n return `${slice}/${actionKey}`\r\n}\r\n\r\n/**\r\n * A function that accepts an initial state, an object full of reducer\r\n * functions, and a \"slice name\", and automatically generates\r\n * action creators and action types that correspond to the\r\n * reducers and state.\r\n *\r\n * The `reducer` argument is passed to `createReducer()`.\r\n *\r\n * @public\r\n */\r\nexport function createSlice<\r\n State,\r\n CaseReducers extends SliceCaseReducers,\r\n Name extends string = string\r\n>(\r\n options: CreateSliceOptions\r\n): Slice {\r\n const { name } = options\r\n if (!name) {\r\n throw new Error('`name` is a required option for createSlice')\r\n }\r\n\r\n if (\r\n typeof process !== 'undefined' &&\r\n process.env.NODE_ENV === 'development'\r\n ) {\r\n if (options.initialState === undefined) {\r\n console.error(\r\n 'You must provide an `initialState` value that is not `undefined`. You may have misspelled `initialState`'\r\n )\r\n }\r\n }\r\n\r\n const initialState =\r\n typeof options.initialState == 'function'\r\n ? options.initialState\r\n : freezeDraftable(options.initialState)\r\n\r\n const reducers = options.reducers || {}\r\n\r\n const reducerNames = Object.keys(reducers)\r\n\r\n const sliceCaseReducersByName: Record = {}\r\n const sliceCaseReducersByType: Record = {}\r\n const actionCreators: Record = {}\r\n\r\n reducerNames.forEach((reducerName) => {\r\n const maybeReducerWithPrepare = reducers[reducerName]\r\n const type = getType(name, reducerName)\r\n\r\n let caseReducer: CaseReducer\r\n let prepareCallback: PrepareAction | undefined\r\n\r\n if ('reducer' in maybeReducerWithPrepare) {\r\n caseReducer = maybeReducerWithPrepare.reducer\r\n prepareCallback = maybeReducerWithPrepare.prepare\r\n } else {\r\n caseReducer = maybeReducerWithPrepare\r\n }\r\n\r\n sliceCaseReducersByName[reducerName] = caseReducer\r\n sliceCaseReducersByType[type] = caseReducer\r\n actionCreators[reducerName] = prepareCallback\r\n ? createAction(type, prepareCallback)\r\n : createAction(type)\r\n })\r\n\r\n function buildReducer() {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (typeof options.extraReducers === 'object') {\r\n if (!hasWarnedAboutObjectNotation) {\r\n hasWarnedAboutObjectNotation = true\r\n console.warn(\r\n \"The object notation for `createSlice.extraReducers` is deprecated, and will be removed in RTK 2.0. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createSlice\"\r\n )\r\n }\r\n }\r\n }\r\n const [\r\n extraReducers = {},\r\n actionMatchers = [],\r\n defaultCaseReducer = undefined,\r\n ] =\r\n typeof options.extraReducers === 'function'\r\n ? executeReducerBuilderCallback(options.extraReducers)\r\n : [options.extraReducers]\r\n\r\n const finalCaseReducers = { ...extraReducers, ...sliceCaseReducersByType }\r\n\r\n return createReducer(initialState, (builder) => {\r\n for (let key in finalCaseReducers) {\r\n builder.addCase(key, finalCaseReducers[key] as CaseReducer)\r\n }\r\n for (let m of actionMatchers) {\r\n builder.addMatcher(m.matcher, m.reducer)\r\n }\r\n if (defaultCaseReducer) {\r\n builder.addDefaultCase(defaultCaseReducer)\r\n }\r\n })\r\n }\r\n\r\n let _reducer: ReducerWithInitialState\r\n\r\n return {\r\n name,\r\n reducer(state, action) {\r\n if (!_reducer) _reducer = buildReducer()\r\n\r\n return _reducer(state, action)\r\n },\r\n actions: actionCreators as any,\r\n caseReducers: sliceCaseReducersByName as any,\r\n getInitialState() {\r\n if (!_reducer) _reducer = buildReducer()\r\n\r\n return _reducer.getInitialState()\r\n },\r\n }\r\n}\r\n","import createNextState, { isDraft } from 'immer'\r\nimport type { EntityState, PreventAny } from './models'\r\nimport type { PayloadAction } from '../createAction'\r\nimport { isFSA } from '../createAction'\r\nimport { IsAny } from '../tsHelpers'\r\n\r\nexport function createSingleArgumentStateOperator(\r\n mutator: (state: EntityState) => void\r\n) {\r\n const operator = createStateOperator((_: undefined, state: EntityState) =>\r\n mutator(state)\r\n )\r\n\r\n return function operation>(\r\n state: PreventAny\r\n ): S {\r\n return operator(state as S, undefined)\r\n }\r\n}\r\n\r\nexport function createStateOperator(\r\n mutator: (arg: R, state: EntityState) => void\r\n) {\r\n return function operation>(\r\n state: S,\r\n arg: R | PayloadAction\r\n ): S {\r\n function isPayloadActionArgument(\r\n arg: R | PayloadAction\r\n ): arg is PayloadAction {\r\n return isFSA(arg)\r\n }\r\n\r\n const runMutator = (draft: EntityState) => {\r\n if (isPayloadActionArgument(arg)) {\r\n mutator(arg.payload, draft)\r\n } else {\r\n mutator(arg, draft)\r\n }\r\n }\r\n\r\n if (isDraft(state)) {\r\n // we must already be inside a `createNextState` call, likely because\r\n // this is being wrapped in `createReducer` or `createSlice`.\r\n // It's safe to just pass the draft to the mutator.\r\n runMutator(state)\r\n\r\n // since it's a draft, we'll just return it\r\n return state\r\n } else {\r\n // @ts-ignore createNextState() produces an Immutable> rather\r\n // than an Immutable, and TypeScript cannot find out how to reconcile\r\n // these two types.\r\n return createNextState(state, runMutator)\r\n }\r\n }\r\n}\r\n","import type { EntityState, IdSelector, Update, EntityId } from './models'\r\n\r\nexport function selectIdValue(entity: T, selectId: IdSelector) {\r\n const key = selectId(entity)\r\n\r\n if (process.env.NODE_ENV !== 'production' && key === undefined) {\r\n console.warn(\r\n 'The entity passed to the `selectId` implementation returned undefined.',\r\n 'You should probably provide your own `selectId` implementation.',\r\n 'The entity that was passed:',\r\n entity,\r\n 'The `selectId` implementation:',\r\n selectId.toString()\r\n )\r\n }\r\n\r\n return key\r\n}\r\n\r\nexport function ensureEntitiesArray(\r\n entities: readonly T[] | Record\r\n): readonly T[] {\r\n if (!Array.isArray(entities)) {\r\n entities = Object.values(entities)\r\n }\r\n\r\n return entities\r\n}\r\n\r\nexport function splitAddedUpdatedEntities(\r\n newEntities: readonly T[] | Record,\r\n selectId: IdSelector,\r\n state: EntityState\r\n): [T[], Update[]] {\r\n newEntities = ensureEntitiesArray(newEntities)\r\n\r\n const added: T[] = []\r\n const updated: Update[] = []\r\n\r\n for (const entity of newEntities) {\r\n const id = selectIdValue(entity, selectId)\r\n if (id in state.entities) {\r\n updated.push({ id, changes: entity })\r\n } else {\r\n added.push(entity)\r\n }\r\n }\r\n return [added, updated]\r\n}\r\n","import type {\r\n EntityState,\r\n EntityStateAdapter,\r\n IdSelector,\r\n Update,\r\n EntityId,\r\n} from './models'\r\nimport {\r\n createStateOperator,\r\n createSingleArgumentStateOperator,\r\n} from './state_adapter'\r\nimport {\r\n selectIdValue,\r\n ensureEntitiesArray,\r\n splitAddedUpdatedEntities,\r\n} from './utils'\r\n\r\nexport function createUnsortedStateAdapter(\r\n selectId: IdSelector\r\n): EntityStateAdapter {\r\n type R = EntityState\r\n\r\n function addOneMutably(entity: T, state: R): void {\r\n const key = selectIdValue(entity, selectId)\r\n\r\n if (key in state.entities) {\r\n return\r\n }\r\n\r\n state.ids.push(key)\r\n state.entities[key] = entity\r\n }\r\n\r\n function addManyMutably(\r\n newEntities: readonly T[] | Record,\r\n state: R\r\n ): void {\r\n newEntities = ensureEntitiesArray(newEntities)\r\n\r\n for (const entity of newEntities) {\r\n addOneMutably(entity, state)\r\n }\r\n }\r\n\r\n function setOneMutably(entity: T, state: R): void {\r\n const key = selectIdValue(entity, selectId)\r\n if (!(key in state.entities)) {\r\n state.ids.push(key)\r\n }\r\n state.entities[key] = entity\r\n }\r\n\r\n function setManyMutably(\r\n newEntities: readonly T[] | Record,\r\n state: R\r\n ): void {\r\n newEntities = ensureEntitiesArray(newEntities)\r\n for (const entity of newEntities) {\r\n setOneMutably(entity, state)\r\n }\r\n }\r\n\r\n function setAllMutably(\r\n newEntities: readonly T[] | Record,\r\n state: R\r\n ): void {\r\n newEntities = ensureEntitiesArray(newEntities)\r\n\r\n state.ids = []\r\n state.entities = {}\r\n\r\n addManyMutably(newEntities, state)\r\n }\r\n\r\n function removeOneMutably(key: EntityId, state: R): void {\r\n return removeManyMutably([key], state)\r\n }\r\n\r\n function removeManyMutably(keys: readonly EntityId[], state: R): void {\r\n let didMutate = false\r\n\r\n keys.forEach((key) => {\r\n if (key in state.entities) {\r\n delete state.entities[key]\r\n didMutate = true\r\n }\r\n })\r\n\r\n if (didMutate) {\r\n state.ids = state.ids.filter((id) => id in state.entities)\r\n }\r\n }\r\n\r\n function removeAllMutably(state: R): void {\r\n Object.assign(state, {\r\n ids: [],\r\n entities: {},\r\n })\r\n }\r\n\r\n function takeNewKey(\r\n keys: { [id: string]: EntityId },\r\n update: Update,\r\n state: R\r\n ): boolean {\r\n const original = state.entities[update.id]\r\n const updated: T = Object.assign({}, original, update.changes)\r\n const newKey = selectIdValue(updated, selectId)\r\n const hasNewKey = newKey !== update.id\r\n\r\n if (hasNewKey) {\r\n keys[update.id] = newKey\r\n delete state.entities[update.id]\r\n }\r\n\r\n state.entities[newKey] = updated\r\n\r\n return hasNewKey\r\n }\r\n\r\n function updateOneMutably(update: Update, state: R): void {\r\n return updateManyMutably([update], state)\r\n }\r\n\r\n function updateManyMutably(\r\n updates: ReadonlyArray>,\r\n state: R\r\n ): void {\r\n const newKeys: { [id: string]: EntityId } = {}\r\n\r\n const updatesPerEntity: { [id: string]: Update } = {}\r\n\r\n updates.forEach((update) => {\r\n // Only apply updates to entities that currently exist\r\n if (update.id in state.entities) {\r\n // If there are multiple updates to one entity, merge them together\r\n updatesPerEntity[update.id] = {\r\n id: update.id,\r\n // Spreads ignore falsy values, so this works even if there isn't\r\n // an existing update already at this key\r\n changes: {\r\n ...(updatesPerEntity[update.id]\r\n ? updatesPerEntity[update.id].changes\r\n : null),\r\n ...update.changes,\r\n },\r\n }\r\n }\r\n })\r\n\r\n updates = Object.values(updatesPerEntity)\r\n\r\n const didMutateEntities = updates.length > 0\r\n\r\n if (didMutateEntities) {\r\n const didMutateIds =\r\n updates.filter((update) => takeNewKey(newKeys, update, state)).length >\r\n 0\r\n\r\n if (didMutateIds) {\r\n state.ids = Object.keys(state.entities)\r\n }\r\n }\r\n }\r\n\r\n function upsertOneMutably(entity: T, state: R): void {\r\n return upsertManyMutably([entity], state)\r\n }\r\n\r\n function upsertManyMutably(\r\n newEntities: readonly T[] | Record,\r\n state: R\r\n ): void {\r\n const [added, updated] = splitAddedUpdatedEntities(\r\n newEntities,\r\n selectId,\r\n state\r\n )\r\n\r\n updateManyMutably(updated, state)\r\n addManyMutably(added, state)\r\n }\r\n\r\n return {\r\n removeAll: createSingleArgumentStateOperator(removeAllMutably),\r\n addOne: createStateOperator(addOneMutably),\r\n addMany: createStateOperator(addManyMutably),\r\n setOne: createStateOperator(setOneMutably),\r\n setMany: createStateOperator(setManyMutably),\r\n setAll: createStateOperator(setAllMutably),\r\n updateOne: createStateOperator(updateOneMutably),\r\n updateMany: createStateOperator(updateManyMutably),\r\n upsertOne: createStateOperator(upsertOneMutably),\r\n upsertMany: createStateOperator(upsertManyMutably),\r\n removeOne: createStateOperator(removeOneMutably),\r\n removeMany: createStateOperator(removeManyMutably),\r\n }\r\n}\r\n","import type {\r\n EntityDefinition,\r\n Comparer,\r\n IdSelector,\r\n EntityAdapter,\r\n} from './models'\r\nimport { createInitialStateFactory } from './entity_state'\r\nimport { createSelectorsFactory } from './state_selectors'\r\nimport { createSortedStateAdapter } from './sorted_state_adapter'\r\nimport { createUnsortedStateAdapter } from './unsorted_state_adapter'\r\n\r\n/**\r\n *\r\n * @param options\r\n *\r\n * @public\r\n */\r\nexport function createEntityAdapter(\r\n options: {\r\n selectId?: IdSelector\r\n sortComparer?: false | Comparer\r\n } = {}\r\n): EntityAdapter {\r\n const { selectId, sortComparer }: EntityDefinition = {\r\n sortComparer: false,\r\n selectId: (instance: any) => instance.id,\r\n ...options,\r\n }\r\n\r\n const stateFactory = createInitialStateFactory()\r\n const selectorsFactory = createSelectorsFactory()\r\n const stateAdapter = sortComparer\r\n ? createSortedStateAdapter(selectId, sortComparer)\r\n : createUnsortedStateAdapter(selectId)\r\n\r\n return {\r\n selectId,\r\n sortComparer,\r\n ...stateFactory,\r\n ...selectorsFactory,\r\n ...stateAdapter,\r\n }\r\n}\r\n","import type { EntityState } from './models'\r\n\r\nexport function getInitialEntityState(): EntityState {\r\n return {\r\n ids: [],\r\n entities: {},\r\n }\r\n}\r\n\r\nexport function createInitialStateFactory() {\r\n function getInitialState(): EntityState\r\n function getInitialState(\r\n additionalState: S\r\n ): EntityState & S\r\n function getInitialState(additionalState: any = {}): any {\r\n return Object.assign(getInitialEntityState(), additionalState)\r\n }\r\n\r\n return { getInitialState }\r\n}\r\n","import type { Selector } from 'reselect'\r\nimport { createDraftSafeSelector } from '../createDraftSafeSelector'\r\nimport type {\r\n EntityState,\r\n EntitySelectors,\r\n Dictionary,\r\n EntityId,\r\n} from './models'\r\n\r\nexport function createSelectorsFactory() {\r\n function getSelectors(): EntitySelectors>\r\n function getSelectors(\r\n selectState: (state: V) => EntityState\r\n ): EntitySelectors\r\n function getSelectors(\r\n selectState?: (state: V) => EntityState\r\n ): EntitySelectors {\r\n const selectIds = (state: EntityState) => state.ids\r\n\r\n const selectEntities = (state: EntityState) => state.entities\r\n\r\n const selectAll = createDraftSafeSelector(\r\n selectIds,\r\n selectEntities,\r\n (ids, entities): T[] => ids.map((id) => entities[id]!)\r\n )\r\n\r\n const selectId = (_: unknown, id: EntityId) => id\r\n\r\n const selectById = (entities: Dictionary, id: EntityId) => entities[id]\r\n\r\n const selectTotal = createDraftSafeSelector(selectIds, (ids) => ids.length)\r\n\r\n if (!selectState) {\r\n return {\r\n selectIds,\r\n selectEntities,\r\n selectAll,\r\n selectTotal,\r\n selectById: createDraftSafeSelector(\r\n selectEntities,\r\n selectId,\r\n selectById\r\n ),\r\n }\r\n }\r\n\r\n const selectGlobalizedEntities = createDraftSafeSelector(\r\n selectState as Selector>,\r\n selectEntities\r\n )\r\n\r\n return {\r\n selectIds: createDraftSafeSelector(selectState, selectIds),\r\n selectEntities: selectGlobalizedEntities,\r\n selectAll: createDraftSafeSelector(selectState, selectAll),\r\n selectTotal: createDraftSafeSelector(selectState, selectTotal),\r\n selectById: createDraftSafeSelector(\r\n selectGlobalizedEntities,\r\n selectId,\r\n selectById\r\n ),\r\n }\r\n }\r\n\r\n return { getSelectors }\r\n}\r\n","import type {\r\n EntityState,\r\n IdSelector,\r\n Comparer,\r\n EntityStateAdapter,\r\n Update,\r\n EntityId,\r\n} from './models'\r\nimport { createStateOperator } from './state_adapter'\r\nimport { createUnsortedStateAdapter } from './unsorted_state_adapter'\r\nimport {\r\n selectIdValue,\r\n ensureEntitiesArray,\r\n splitAddedUpdatedEntities,\r\n} from './utils'\r\n\r\nexport function createSortedStateAdapter(\r\n selectId: IdSelector,\r\n sort: Comparer\r\n): EntityStateAdapter {\r\n type R = EntityState\r\n\r\n const { removeOne, removeMany, removeAll } =\r\n createUnsortedStateAdapter(selectId)\r\n\r\n function addOneMutably(entity: T, state: R): void {\r\n return addManyMutably([entity], state)\r\n }\r\n\r\n function addManyMutably(\r\n newEntities: readonly T[] | Record,\r\n state: R\r\n ): void {\r\n newEntities = ensureEntitiesArray(newEntities)\r\n\r\n const models = newEntities.filter(\r\n (model) => !(selectIdValue(model, selectId) in state.entities)\r\n )\r\n\r\n if (models.length !== 0) {\r\n merge(models, state)\r\n }\r\n }\r\n\r\n function setOneMutably(entity: T, state: R): void {\r\n return setManyMutably([entity], state)\r\n }\r\n\r\n function setManyMutably(\r\n newEntities: readonly T[] | Record,\r\n state: R\r\n ): void {\r\n newEntities = ensureEntitiesArray(newEntities)\r\n if (newEntities.length !== 0) {\r\n merge(newEntities, state)\r\n }\r\n }\r\n\r\n function setAllMutably(\r\n newEntities: readonly T[] | Record,\r\n state: R\r\n ): void {\r\n newEntities = ensureEntitiesArray(newEntities)\r\n state.entities = {}\r\n state.ids = []\r\n\r\n addManyMutably(newEntities, state)\r\n }\r\n\r\n function updateOneMutably(update: Update, state: R): void {\r\n return updateManyMutably([update], state)\r\n }\r\n\r\n function updateManyMutably(\r\n updates: ReadonlyArray>,\r\n state: R\r\n ): void {\r\n let appliedUpdates = false\r\n\r\n for (let update of updates) {\r\n const entity = state.entities[update.id]\r\n if (!entity) {\r\n continue\r\n }\r\n\r\n appliedUpdates = true\r\n\r\n Object.assign(entity, update.changes)\r\n const newId = selectId(entity)\r\n if (update.id !== newId) {\r\n delete state.entities[update.id]\r\n state.entities[newId] = entity\r\n }\r\n }\r\n\r\n if (appliedUpdates) {\r\n resortEntities(state)\r\n }\r\n }\r\n\r\n function upsertOneMutably(entity: T, state: R): void {\r\n return upsertManyMutably([entity], state)\r\n }\r\n\r\n function upsertManyMutably(\r\n newEntities: readonly T[] | Record,\r\n state: R\r\n ): void {\r\n const [added, updated] = splitAddedUpdatedEntities(\r\n newEntities,\r\n selectId,\r\n state\r\n )\r\n\r\n updateManyMutably(updated, state)\r\n addManyMutably(added, state)\r\n }\r\n\r\n function areArraysEqual(a: readonly unknown[], b: readonly unknown[]) {\r\n if (a.length !== b.length) {\r\n return false\r\n }\r\n\r\n for (let i = 0; i < a.length && i < b.length; i++) {\r\n if (a[i] === b[i]) {\r\n continue\r\n }\r\n return false\r\n }\r\n return true\r\n }\r\n\r\n function merge(models: readonly T[], state: R): void {\r\n // Insert/overwrite all new/updated\r\n models.forEach((model) => {\r\n state.entities[selectId(model)] = model\r\n })\r\n\r\n resortEntities(state)\r\n }\r\n\r\n function resortEntities(state: R) {\r\n const allEntities = Object.values(state.entities) as T[]\r\n allEntities.sort(sort)\r\n\r\n const newSortedIds = allEntities.map(selectId)\r\n const { ids } = state\r\n\r\n if (!areArraysEqual(ids, newSortedIds)) {\r\n state.ids = newSortedIds\r\n }\r\n }\r\n\r\n return {\r\n removeOne,\r\n removeMany,\r\n removeAll,\r\n addOne: createStateOperator(addOneMutably),\r\n updateOne: createStateOperator(updateOneMutably),\r\n upsertOne: createStateOperator(upsertOneMutably),\r\n setOne: createStateOperator(setOneMutably),\r\n setMany: createStateOperator(setManyMutably),\r\n setAll: createStateOperator(setAllMutably),\r\n addMany: createStateOperator(addManyMutably),\r\n updateMany: createStateOperator(updateManyMutably),\r\n upsertMany: createStateOperator(upsertManyMutably),\r\n }\r\n}\r\n","// Borrowed from https://github.com/ai/nanoid/blob/3.0.2/non-secure/index.js\r\n// This alphabet uses `A-Za-z0-9_-` symbols. A genetic algorithm helped\r\n// optimize the gzip compression for this alphabet.\r\nlet urlAlphabet =\r\n 'ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW'\r\n\r\n/**\r\n *\r\n * @public\r\n */\r\nexport let nanoid = (size = 21) => {\r\n let id = ''\r\n // A compact alternative for `for (var i = 0; i < step; i++)`.\r\n let i = size\r\n while (i--) {\r\n // `| 0` is more compact and faster than `Math.floor()`.\r\n id += urlAlphabet[(Math.random() * 64) | 0]\r\n }\r\n return id\r\n}\r\n","import type { Dispatch, AnyAction } from 'redux'\r\nimport type {\r\n PayloadAction,\r\n ActionCreatorWithPreparedPayload,\r\n} from './createAction'\r\nimport { createAction } from './createAction'\r\nimport type { ThunkDispatch } from 'redux-thunk'\r\nimport type { FallbackIfUnknown, Id, IsAny, IsUnknown } from './tsHelpers'\r\nimport { nanoid } from './nanoid'\r\n\r\n// @ts-ignore we need the import of these types due to a bundling issue.\r\ntype _Keep = PayloadAction | ActionCreatorWithPreparedPayload\r\n\r\nexport type BaseThunkAPI<\r\n S,\r\n E,\r\n D extends Dispatch = Dispatch,\r\n RejectedValue = unknown,\r\n RejectedMeta = unknown,\r\n FulfilledMeta = unknown\r\n> = {\r\n dispatch: D\r\n getState: () => S\r\n extra: E\r\n requestId: string\r\n signal: AbortSignal\r\n abort: (reason?: string) => void\r\n rejectWithValue: IsUnknown<\r\n RejectedMeta,\r\n (value: RejectedValue) => RejectWithValue,\r\n (\r\n value: RejectedValue,\r\n meta: RejectedMeta\r\n ) => RejectWithValue\r\n >\r\n fulfillWithValue: IsUnknown<\r\n FulfilledMeta,\r\n (value: FulfilledValue) => FulfilledValue,\r\n (\r\n value: FulfilledValue,\r\n meta: FulfilledMeta\r\n ) => FulfillWithMeta\r\n >\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport interface SerializedError {\r\n name?: string\r\n message?: string\r\n stack?: string\r\n code?: string\r\n}\r\n\r\nconst commonProperties: Array = [\r\n 'name',\r\n 'message',\r\n 'stack',\r\n 'code',\r\n]\r\n\r\nclass RejectWithValue {\r\n /*\r\n type-only property to distinguish between RejectWithValue and FulfillWithMeta\r\n does not exist at runtime\r\n */\r\n private readonly _type!: 'RejectWithValue'\r\n constructor(\r\n public readonly payload: Payload,\r\n public readonly meta: RejectedMeta\r\n ) {}\r\n}\r\n\r\nclass FulfillWithMeta {\r\n /*\r\n type-only property to distinguish between RejectWithValue and FulfillWithMeta\r\n does not exist at runtime\r\n */\r\n private readonly _type!: 'FulfillWithMeta'\r\n constructor(\r\n public readonly payload: Payload,\r\n public readonly meta: FulfilledMeta\r\n ) {}\r\n}\r\n\r\n/**\r\n * Serializes an error into a plain object.\r\n * Reworked from https://github.com/sindresorhus/serialize-error\r\n *\r\n * @public\r\n */\r\nexport const miniSerializeError = (value: any): SerializedError => {\r\n if (typeof value === 'object' && value !== null) {\r\n const simpleError: SerializedError = {}\r\n for (const property of commonProperties) {\r\n if (typeof value[property] === 'string') {\r\n simpleError[property] = value[property]\r\n }\r\n }\r\n\r\n return simpleError\r\n }\r\n\r\n return { message: String(value) }\r\n}\r\n\r\ntype AsyncThunkConfig = {\r\n state?: unknown\r\n dispatch?: Dispatch\r\n extra?: unknown\r\n rejectValue?: unknown\r\n serializedErrorType?: unknown\r\n pendingMeta?: unknown\r\n fulfilledMeta?: unknown\r\n rejectedMeta?: unknown\r\n}\r\n\r\ntype GetState = ThunkApiConfig extends {\r\n state: infer State\r\n}\r\n ? State\r\n : unknown\r\ntype GetExtra = ThunkApiConfig extends { extra: infer Extra }\r\n ? Extra\r\n : unknown\r\ntype GetDispatch = ThunkApiConfig extends {\r\n dispatch: infer Dispatch\r\n}\r\n ? FallbackIfUnknown<\r\n Dispatch,\r\n ThunkDispatch<\r\n GetState,\r\n GetExtra,\r\n AnyAction\r\n >\r\n >\r\n : ThunkDispatch, GetExtra, AnyAction>\r\n\r\nexport type GetThunkAPI = BaseThunkAPI<\r\n GetState,\r\n GetExtra,\r\n GetDispatch,\r\n GetRejectValue,\r\n GetRejectedMeta,\r\n GetFulfilledMeta\r\n>\r\n\r\ntype GetRejectValue = ThunkApiConfig extends {\r\n rejectValue: infer RejectValue\r\n}\r\n ? RejectValue\r\n : unknown\r\n\r\ntype GetPendingMeta = ThunkApiConfig extends {\r\n pendingMeta: infer PendingMeta\r\n}\r\n ? PendingMeta\r\n : unknown\r\n\r\ntype GetFulfilledMeta = ThunkApiConfig extends {\r\n fulfilledMeta: infer FulfilledMeta\r\n}\r\n ? FulfilledMeta\r\n : unknown\r\n\r\ntype GetRejectedMeta = ThunkApiConfig extends {\r\n rejectedMeta: infer RejectedMeta\r\n}\r\n ? RejectedMeta\r\n : unknown\r\n\r\ntype GetSerializedErrorType = ThunkApiConfig extends {\r\n serializedErrorType: infer GetSerializedErrorType\r\n}\r\n ? GetSerializedErrorType\r\n : SerializedError\r\n\r\ntype MaybePromise = T | Promise | (T extends any ? Promise : never)\r\n\r\n/**\r\n * A type describing the return value of the `payloadCreator` argument to `createAsyncThunk`.\r\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunkPayloadCreatorReturnValue<\r\n Returned,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n> = MaybePromise<\r\n | IsUnknown<\r\n GetFulfilledMeta,\r\n Returned,\r\n FulfillWithMeta>\r\n >\r\n | RejectWithValue<\r\n GetRejectValue,\r\n GetRejectedMeta\r\n >\r\n>\r\n/**\r\n * A type describing the `payloadCreator` argument to `createAsyncThunk`.\r\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunkPayloadCreator<\r\n Returned,\r\n ThunkArg = void,\r\n ThunkApiConfig extends AsyncThunkConfig = {}\r\n> = (\r\n arg: ThunkArg,\r\n thunkAPI: GetThunkAPI\r\n) => AsyncThunkPayloadCreatorReturnValue\r\n\r\n/**\r\n * A ThunkAction created by `createAsyncThunk`.\r\n * Dispatching it returns a Promise for either a\r\n * fulfilled or rejected action.\r\n * Also, the returned value contains an `abort()` method\r\n * that allows the asyncAction to be cancelled from the outside.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunkAction<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n> = (\r\n dispatch: GetDispatch,\r\n getState: () => GetState,\r\n extra: GetExtra\r\n) => Promise<\r\n | ReturnType>\r\n | ReturnType>\r\n> & {\r\n abort: (reason?: string) => void\r\n requestId: string\r\n arg: ThunkArg\r\n unwrap: () => Promise\r\n}\r\n\r\ntype AsyncThunkActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n> = IsAny<\r\n ThunkArg,\r\n // any handling\r\n (arg: ThunkArg) => AsyncThunkAction,\r\n // unknown handling\r\n unknown extends ThunkArg\r\n ? (arg: ThunkArg) => AsyncThunkAction // argument not specified or specified as void or undefined\r\n : [ThunkArg] extends [void] | [undefined]\r\n ? () => AsyncThunkAction // argument contains void\r\n : [void] extends [ThunkArg] // make optional\r\n ? (arg?: ThunkArg) => AsyncThunkAction // argument contains undefined\r\n : [undefined] extends [ThunkArg]\r\n ? WithStrictNullChecks<\r\n // with strict nullChecks: make optional\r\n (\r\n arg?: ThunkArg\r\n ) => AsyncThunkAction,\r\n // without strict null checks this will match everything, so don't make it optional\r\n (arg: ThunkArg) => AsyncThunkAction\r\n > // default case: normal argument\r\n : (arg: ThunkArg) => AsyncThunkAction\r\n>\r\n\r\n/**\r\n * Options object for `createAsyncThunk`.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunkOptions<\r\n ThunkArg = void,\r\n ThunkApiConfig extends AsyncThunkConfig = {}\r\n> = {\r\n /**\r\n * A method to control whether the asyncThunk should be executed. Has access to the\r\n * `arg`, `api.getState()` and `api.extra` arguments.\r\n *\r\n * @returns `false` if it should be skipped\r\n */\r\n condition?(\r\n arg: ThunkArg,\r\n api: Pick, 'getState' | 'extra'>\r\n ): MaybePromise\r\n /**\r\n * If `condition` returns `false`, the asyncThunk will be skipped.\r\n * This option allows you to control whether a `rejected` action with `meta.condition == false`\r\n * will be dispatched or not.\r\n *\r\n * @default `false`\r\n */\r\n dispatchConditionRejection?: boolean\r\n\r\n serializeError?: (x: unknown) => GetSerializedErrorType\r\n\r\n /**\r\n * A function to use when generating the `requestId` for the request sequence.\r\n *\r\n * @default `nanoid`\r\n */\r\n idGenerator?: (arg: ThunkArg) => string\r\n} & IsUnknown<\r\n GetPendingMeta,\r\n {\r\n /**\r\n * A method to generate additional properties to be added to `meta` of the pending action.\r\n *\r\n * Using this optional overload will not modify the types correctly, this overload is only in place to support JavaScript users.\r\n * Please use the `ThunkApiConfig` parameter `pendingMeta` to get access to a correctly typed overload\r\n */\r\n getPendingMeta?(\r\n base: {\r\n arg: ThunkArg\r\n requestId: string\r\n },\r\n api: Pick, 'getState' | 'extra'>\r\n ): GetPendingMeta\r\n },\r\n {\r\n /**\r\n * A method to generate additional properties to be added to `meta` of the pending action.\r\n */\r\n getPendingMeta(\r\n base: {\r\n arg: ThunkArg\r\n requestId: string\r\n },\r\n api: Pick, 'getState' | 'extra'>\r\n ): GetPendingMeta\r\n }\r\n>\r\n\r\nexport type AsyncThunkPendingActionCreator<\r\n ThunkArg,\r\n ThunkApiConfig = {}\r\n> = ActionCreatorWithPreparedPayload<\r\n [string, ThunkArg, GetPendingMeta?],\r\n undefined,\r\n string,\r\n never,\r\n {\r\n arg: ThunkArg\r\n requestId: string\r\n requestStatus: 'pending'\r\n } & GetPendingMeta\r\n>\r\n\r\nexport type AsyncThunkRejectedActionCreator<\r\n ThunkArg,\r\n ThunkApiConfig = {}\r\n> = ActionCreatorWithPreparedPayload<\r\n [\r\n Error | null,\r\n string,\r\n ThunkArg,\r\n GetRejectValue?,\r\n GetRejectedMeta?\r\n ],\r\n GetRejectValue | undefined,\r\n string,\r\n GetSerializedErrorType,\r\n {\r\n arg: ThunkArg\r\n requestId: string\r\n requestStatus: 'rejected'\r\n aborted: boolean\r\n condition: boolean\r\n } & (\r\n | ({ rejectedWithValue: false } & {\r\n [K in keyof GetRejectedMeta]?: undefined\r\n })\r\n | ({ rejectedWithValue: true } & GetRejectedMeta)\r\n )\r\n>\r\n\r\nexport type AsyncThunkFulfilledActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig = {}\r\n> = ActionCreatorWithPreparedPayload<\r\n [Returned, string, ThunkArg, GetFulfilledMeta?],\r\n Returned,\r\n string,\r\n never,\r\n {\r\n arg: ThunkArg\r\n requestId: string\r\n requestStatus: 'fulfilled'\r\n } & GetFulfilledMeta\r\n>\r\n\r\n/**\r\n * A type describing the return value of `createAsyncThunk`.\r\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunk<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n> = AsyncThunkActionCreator & {\r\n pending: AsyncThunkPendingActionCreator\r\n rejected: AsyncThunkRejectedActionCreator\r\n fulfilled: AsyncThunkFulfilledActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig\r\n >\r\n typePrefix: string\r\n}\r\n\r\ntype OverrideThunkApiConfigs = Id<\r\n NewConfig & Omit\r\n>\r\n\r\ntype CreateAsyncThunk = {\r\n /**\r\n *\r\n * @param typePrefix\r\n * @param payloadCreator\r\n * @param options\r\n *\r\n * @public\r\n */\r\n // separate signature without `AsyncThunkConfig` for better inference\r\n (\r\n typePrefix: string,\r\n payloadCreator: AsyncThunkPayloadCreator<\r\n Returned,\r\n ThunkArg,\r\n CurriedThunkApiConfig\r\n >,\r\n options?: AsyncThunkOptions\r\n ): AsyncThunk\r\n\r\n /**\r\n *\r\n * @param typePrefix\r\n * @param payloadCreator\r\n * @param options\r\n *\r\n * @public\r\n */\r\n (\r\n typePrefix: string,\r\n payloadCreator: AsyncThunkPayloadCreator<\r\n Returned,\r\n ThunkArg,\r\n OverrideThunkApiConfigs\r\n >,\r\n options?: AsyncThunkOptions<\r\n ThunkArg,\r\n OverrideThunkApiConfigs\r\n >\r\n ): AsyncThunk<\r\n Returned,\r\n ThunkArg,\r\n OverrideThunkApiConfigs\r\n >\r\n\r\n withTypes(): CreateAsyncThunk<\r\n OverrideThunkApiConfigs\r\n >\r\n}\r\n\r\nexport const createAsyncThunk = (() => {\r\n function createAsyncThunk<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n >(\r\n typePrefix: string,\r\n payloadCreator: AsyncThunkPayloadCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig\r\n >,\r\n options?: AsyncThunkOptions\r\n ): AsyncThunk {\r\n type RejectedValue = GetRejectValue\r\n type PendingMeta = GetPendingMeta\r\n type FulfilledMeta = GetFulfilledMeta\r\n type RejectedMeta = GetRejectedMeta\r\n\r\n const fulfilled: AsyncThunkFulfilledActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig\r\n > = createAction(\r\n typePrefix + '/fulfilled',\r\n (\r\n payload: Returned,\r\n requestId: string,\r\n arg: ThunkArg,\r\n meta?: FulfilledMeta\r\n ) => ({\r\n payload,\r\n meta: {\r\n ...((meta as any) || {}),\r\n arg,\r\n requestId,\r\n requestStatus: 'fulfilled' as const,\r\n },\r\n })\r\n )\r\n\r\n const pending: AsyncThunkPendingActionCreator =\r\n createAction(\r\n typePrefix + '/pending',\r\n (requestId: string, arg: ThunkArg, meta?: PendingMeta) => ({\r\n payload: undefined,\r\n meta: {\r\n ...((meta as any) || {}),\r\n arg,\r\n requestId,\r\n requestStatus: 'pending' as const,\r\n },\r\n })\r\n )\r\n\r\n const rejected: AsyncThunkRejectedActionCreator =\r\n createAction(\r\n typePrefix + '/rejected',\r\n (\r\n error: Error | null,\r\n requestId: string,\r\n arg: ThunkArg,\r\n payload?: RejectedValue,\r\n meta?: RejectedMeta\r\n ) => ({\r\n payload,\r\n error: ((options && options.serializeError) || miniSerializeError)(\r\n error || 'Rejected'\r\n ) as GetSerializedErrorType,\r\n meta: {\r\n ...((meta as any) || {}),\r\n arg,\r\n requestId,\r\n rejectedWithValue: !!payload,\r\n requestStatus: 'rejected' as const,\r\n aborted: error?.name === 'AbortError',\r\n condition: error?.name === 'ConditionError',\r\n },\r\n })\r\n )\r\n\r\n let displayedWarning = false\r\n\r\n const AC =\r\n typeof AbortController !== 'undefined'\r\n ? AbortController\r\n : class implements AbortController {\r\n signal = {\r\n aborted: false,\r\n addEventListener() {},\r\n dispatchEvent() {\r\n return false\r\n },\r\n onabort() {},\r\n removeEventListener() {},\r\n reason: undefined,\r\n throwIfAborted() {},\r\n }\r\n abort() {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!displayedWarning) {\r\n displayedWarning = true\r\n console.info(\r\n `This platform does not implement AbortController. \r\nIf you want to use the AbortController to react to \\`abort\\` events, please consider importing a polyfill like 'abortcontroller-polyfill/dist/abortcontroller-polyfill-only'.`\r\n )\r\n }\r\n }\r\n }\r\n }\r\n\r\n function actionCreator(\r\n arg: ThunkArg\r\n ): AsyncThunkAction {\r\n return (dispatch, getState, extra) => {\r\n const requestId = options?.idGenerator\r\n ? options.idGenerator(arg)\r\n : nanoid()\r\n\r\n const abortController = new AC()\r\n let abortReason: string | undefined\r\n\r\n let started = false\r\n function abort(reason?: string) {\r\n abortReason = reason\r\n abortController.abort()\r\n }\r\n\r\n const promise = (async function () {\r\n let finalAction: ReturnType\r\n try {\r\n let conditionResult = options?.condition?.(arg, { getState, extra })\r\n if (isThenable(conditionResult)) {\r\n conditionResult = await conditionResult\r\n }\r\n\r\n if (conditionResult === false || abortController.signal.aborted) {\r\n // eslint-disable-next-line no-throw-literal\r\n throw {\r\n name: 'ConditionError',\r\n message: 'Aborted due to condition callback returning false.',\r\n }\r\n }\r\n started = true\r\n\r\n const abortedPromise = new Promise((_, reject) =>\r\n abortController.signal.addEventListener('abort', () =>\r\n reject({\r\n name: 'AbortError',\r\n message: abortReason || 'Aborted',\r\n })\r\n )\r\n )\r\n dispatch(\r\n pending(\r\n requestId,\r\n arg,\r\n options?.getPendingMeta?.(\r\n { requestId, arg },\r\n { getState, extra }\r\n )\r\n )\r\n )\r\n finalAction = await Promise.race([\r\n abortedPromise,\r\n Promise.resolve(\r\n payloadCreator(arg, {\r\n dispatch,\r\n getState,\r\n extra,\r\n requestId,\r\n signal: abortController.signal,\r\n abort,\r\n rejectWithValue: ((\r\n value: RejectedValue,\r\n meta?: RejectedMeta\r\n ) => {\r\n return new RejectWithValue(value, meta)\r\n }) as any,\r\n fulfillWithValue: ((value: unknown, meta?: FulfilledMeta) => {\r\n return new FulfillWithMeta(value, meta)\r\n }) as any,\r\n })\r\n ).then((result) => {\r\n if (result instanceof RejectWithValue) {\r\n throw result\r\n }\r\n if (result instanceof FulfillWithMeta) {\r\n return fulfilled(result.payload, requestId, arg, result.meta)\r\n }\r\n return fulfilled(result as any, requestId, arg)\r\n }),\r\n ])\r\n } catch (err) {\r\n finalAction =\r\n err instanceof RejectWithValue\r\n ? rejected(null, requestId, arg, err.payload, err.meta)\r\n : rejected(err as any, requestId, arg)\r\n }\r\n // We dispatch the result action _after_ the catch, to avoid having any errors\r\n // here get swallowed by the try/catch block,\r\n // per https://twitter.com/dan_abramov/status/770914221638942720\r\n // and https://github.com/reduxjs/redux-toolkit/blob/e85eb17b39a2118d859f7b7746e0f3fee523e089/docs/tutorials/advanced-tutorial.md#async-error-handling-logic-in-thunks\r\n\r\n const skipDispatch =\r\n options &&\r\n !options.dispatchConditionRejection &&\r\n rejected.match(finalAction) &&\r\n (finalAction as any).meta.condition\r\n\r\n if (!skipDispatch) {\r\n dispatch(finalAction)\r\n }\r\n return finalAction\r\n })()\r\n return Object.assign(promise as Promise, {\r\n abort,\r\n requestId,\r\n arg,\r\n unwrap() {\r\n return promise.then(unwrapResult)\r\n },\r\n })\r\n }\r\n }\r\n\r\n return Object.assign(\r\n actionCreator as AsyncThunkActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig\r\n >,\r\n {\r\n pending,\r\n rejected,\r\n fulfilled,\r\n typePrefix,\r\n }\r\n )\r\n }\r\n createAsyncThunk.withTypes = () => createAsyncThunk\r\n\r\n return createAsyncThunk as CreateAsyncThunk\r\n})()\r\n\r\ninterface UnwrappableAction {\r\n payload: any\r\n meta?: any\r\n error?: any\r\n}\r\n\r\ntype UnwrappedActionPayload = Exclude<\r\n T,\r\n { error: any }\r\n>['payload']\r\n\r\n/**\r\n * @public\r\n */\r\nexport function unwrapResult(\r\n action: R\r\n): UnwrappedActionPayload {\r\n if (action.meta && action.meta.rejectedWithValue) {\r\n throw action.payload\r\n }\r\n if (action.error) {\r\n throw action.error\r\n }\r\n return action.payload\r\n}\r\n\r\ntype WithStrictNullChecks = undefined extends boolean\r\n ? False\r\n : True\r\n\r\nfunction isThenable(value: any): value is PromiseLike {\r\n return (\r\n value !== null &&\r\n typeof value === 'object' &&\r\n typeof value.then === 'function'\r\n )\r\n}\r\n","import type {\r\n ActionFromMatcher,\r\n Matcher,\r\n UnionToIntersection,\r\n} from './tsHelpers'\r\nimport { hasMatchFunction } from './tsHelpers'\r\nimport type {\r\n AsyncThunk,\r\n AsyncThunkFulfilledActionCreator,\r\n AsyncThunkPendingActionCreator,\r\n AsyncThunkRejectedActionCreator,\r\n} from './createAsyncThunk'\r\n\r\n/** @public */\r\nexport type ActionMatchingAnyOf[]]> =\r\n ActionFromMatcher\r\n\r\n/** @public */\r\nexport type ActionMatchingAllOf[]]> =\r\n UnionToIntersection>\r\n\r\nconst matches = (matcher: Matcher, action: any) => {\r\n if (hasMatchFunction(matcher)) {\r\n return matcher.match(action)\r\n } else {\r\n return matcher(action)\r\n }\r\n}\r\n\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action matches any one of the supplied type guards or action\r\n * creators.\r\n *\r\n * @param matchers The type guards or action creators to match against.\r\n *\r\n * @public\r\n */\r\nexport function isAnyOf[]]>(\r\n ...matchers: Matchers\r\n) {\r\n return (action: any): action is ActionMatchingAnyOf => {\r\n return matchers.some((matcher) => matches(matcher, action))\r\n }\r\n}\r\n\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action matches all of the supplied type guards or action\r\n * creators.\r\n *\r\n * @param matchers The type guards or action creators to match against.\r\n *\r\n * @public\r\n */\r\nexport function isAllOf[]]>(\r\n ...matchers: Matchers\r\n) {\r\n return (action: any): action is ActionMatchingAllOf => {\r\n return matchers.every((matcher) => matches(matcher, action))\r\n }\r\n}\r\n\r\n/**\r\n * @param action A redux action\r\n * @param validStatus An array of valid meta.requestStatus values\r\n *\r\n * @internal\r\n */\r\nexport function hasExpectedRequestMetadata(\r\n action: any,\r\n validStatus: readonly string[]\r\n) {\r\n if (!action || !action.meta) return false\r\n\r\n const hasValidRequestId = typeof action.meta.requestId === 'string'\r\n const hasValidRequestStatus =\r\n validStatus.indexOf(action.meta.requestStatus) > -1\r\n\r\n return hasValidRequestId && hasValidRequestStatus\r\n}\r\n\r\nfunction isAsyncThunkArray(a: [any] | AnyAsyncThunk[]): a is AnyAsyncThunk[] {\r\n return (\r\n typeof a[0] === 'function' &&\r\n 'pending' in a[0] &&\r\n 'fulfilled' in a[0] &&\r\n 'rejected' in a[0]\r\n )\r\n}\r\n\r\nexport type UnknownAsyncThunkPendingAction = ReturnType<\r\n AsyncThunkPendingActionCreator\r\n>\r\n\r\nexport type PendingActionFromAsyncThunk =\r\n ActionFromMatcher\r\n\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action was created by an async thunk action creator, and that\r\n * the action is pending.\r\n *\r\n * @public\r\n */\r\nexport function isPending(): (\r\n action: any\r\n) => action is UnknownAsyncThunkPendingAction\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action belongs to one of the provided async thunk action creators,\r\n * and that the action is pending.\r\n *\r\n * @param asyncThunks (optional) The async thunk action creators to match against.\r\n *\r\n * @public\r\n */\r\nexport function isPending<\r\n AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]\r\n>(\r\n ...asyncThunks: AsyncThunks\r\n): (action: any) => action is PendingActionFromAsyncThunk\r\n/**\r\n * Tests if `action` is a pending thunk action\r\n * @public\r\n */\r\nexport function isPending(action: any): action is UnknownAsyncThunkPendingAction\r\nexport function isPending<\r\n AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]\r\n>(...asyncThunks: AsyncThunks | [any]) {\r\n if (asyncThunks.length === 0) {\r\n return (action: any) => hasExpectedRequestMetadata(action, ['pending'])\r\n }\r\n\r\n if (!isAsyncThunkArray(asyncThunks)) {\r\n return isPending()(asyncThunks[0])\r\n }\r\n\r\n return (\r\n action: any\r\n ): action is PendingActionFromAsyncThunk => {\r\n // note: this type will be correct because we have at least 1 asyncThunk\r\n const matchers: [Matcher, ...Matcher[]] = asyncThunks.map(\r\n (asyncThunk) => asyncThunk.pending\r\n ) as any\r\n\r\n const combinedMatcher = isAnyOf(...matchers)\r\n\r\n return combinedMatcher(action)\r\n }\r\n}\r\n\r\nexport type UnknownAsyncThunkRejectedAction = ReturnType<\r\n AsyncThunkRejectedActionCreator\r\n>\r\n\r\nexport type RejectedActionFromAsyncThunk =\r\n ActionFromMatcher\r\n\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action was created by an async thunk action creator, and that\r\n * the action is rejected.\r\n *\r\n * @public\r\n */\r\nexport function isRejected(): (\r\n action: any\r\n) => action is UnknownAsyncThunkRejectedAction\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action belongs to one of the provided async thunk action creators,\r\n * and that the action is rejected.\r\n *\r\n * @param asyncThunks (optional) The async thunk action creators to match against.\r\n *\r\n * @public\r\n */\r\nexport function isRejected<\r\n AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]\r\n>(\r\n ...asyncThunks: AsyncThunks\r\n): (action: any) => action is RejectedActionFromAsyncThunk\r\n/**\r\n * Tests if `action` is a rejected thunk action\r\n * @public\r\n */\r\nexport function isRejected(\r\n action: any\r\n): action is UnknownAsyncThunkRejectedAction\r\nexport function isRejected<\r\n AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]\r\n>(...asyncThunks: AsyncThunks | [any]) {\r\n if (asyncThunks.length === 0) {\r\n return (action: any) => hasExpectedRequestMetadata(action, ['rejected'])\r\n }\r\n\r\n if (!isAsyncThunkArray(asyncThunks)) {\r\n return isRejected()(asyncThunks[0])\r\n }\r\n\r\n return (\r\n action: any\r\n ): action is RejectedActionFromAsyncThunk => {\r\n // note: this type will be correct because we have at least 1 asyncThunk\r\n const matchers: [Matcher, ...Matcher[]] = asyncThunks.map(\r\n (asyncThunk) => asyncThunk.rejected\r\n ) as any\r\n\r\n const combinedMatcher = isAnyOf(...matchers)\r\n\r\n return combinedMatcher(action)\r\n }\r\n}\r\n\r\nexport type UnknownAsyncThunkRejectedWithValueAction = ReturnType<\r\n AsyncThunkRejectedActionCreator\r\n>\r\n\r\nexport type RejectedWithValueActionFromAsyncThunk =\r\n ActionFromMatcher &\r\n (T extends AsyncThunk\r\n ? { payload: RejectedValue }\r\n : unknown)\r\n\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action was created by an async thunk action creator, and that\r\n * the action is rejected with value.\r\n *\r\n * @public\r\n */\r\nexport function isRejectedWithValue(): (\r\n action: any\r\n) => action is UnknownAsyncThunkRejectedAction\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action belongs to one of the provided async thunk action creators,\r\n * and that the action is rejected with value.\r\n *\r\n * @param asyncThunks (optional) The async thunk action creators to match against.\r\n *\r\n * @public\r\n */\r\nexport function isRejectedWithValue<\r\n AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]\r\n>(\r\n ...asyncThunks: AsyncThunks\r\n): (\r\n action: any\r\n) => action is RejectedWithValueActionFromAsyncThunk\r\n/**\r\n * Tests if `action` is a rejected thunk action with value\r\n * @public\r\n */\r\nexport function isRejectedWithValue(\r\n action: any\r\n): action is UnknownAsyncThunkRejectedAction\r\nexport function isRejectedWithValue<\r\n AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]\r\n>(...asyncThunks: AsyncThunks | [any]) {\r\n const hasFlag = (action: any): action is any => {\r\n return action && action.meta && action.meta.rejectedWithValue\r\n }\r\n\r\n if (asyncThunks.length === 0) {\r\n return (action: any) => {\r\n const combinedMatcher = isAllOf(isRejected(...asyncThunks), hasFlag)\r\n\r\n return combinedMatcher(action)\r\n }\r\n }\r\n\r\n if (!isAsyncThunkArray(asyncThunks)) {\r\n return isRejectedWithValue()(asyncThunks[0])\r\n }\r\n\r\n return (\r\n action: any\r\n ): action is RejectedActionFromAsyncThunk => {\r\n const combinedMatcher = isAllOf(isRejected(...asyncThunks), hasFlag)\r\n\r\n return combinedMatcher(action)\r\n }\r\n}\r\n\r\nexport type UnknownAsyncThunkFulfilledAction = ReturnType<\r\n AsyncThunkFulfilledActionCreator\r\n>\r\n\r\nexport type FulfilledActionFromAsyncThunk =\r\n ActionFromMatcher\r\n\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action was created by an async thunk action creator, and that\r\n * the action is fulfilled.\r\n *\r\n * @public\r\n */\r\nexport function isFulfilled(): (\r\n action: any\r\n) => action is UnknownAsyncThunkFulfilledAction\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action belongs to one of the provided async thunk action creators,\r\n * and that the action is fulfilled.\r\n *\r\n * @param asyncThunks (optional) The async thunk action creators to match against.\r\n *\r\n * @public\r\n */\r\nexport function isFulfilled<\r\n AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]\r\n>(\r\n ...asyncThunks: AsyncThunks\r\n): (action: any) => action is FulfilledActionFromAsyncThunk\r\n/**\r\n * Tests if `action` is a fulfilled thunk action\r\n * @public\r\n */\r\nexport function isFulfilled(\r\n action: any\r\n): action is UnknownAsyncThunkFulfilledAction\r\nexport function isFulfilled<\r\n AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]\r\n>(...asyncThunks: AsyncThunks | [any]) {\r\n if (asyncThunks.length === 0) {\r\n return (action: any) => hasExpectedRequestMetadata(action, ['fulfilled'])\r\n }\r\n\r\n if (!isAsyncThunkArray(asyncThunks)) {\r\n return isFulfilled()(asyncThunks[0])\r\n }\r\n\r\n return (\r\n action: any\r\n ): action is FulfilledActionFromAsyncThunk => {\r\n // note: this type will be correct because we have at least 1 asyncThunk\r\n const matchers: [Matcher, ...Matcher[]] = asyncThunks.map(\r\n (asyncThunk) => asyncThunk.fulfilled\r\n ) as any\r\n\r\n const combinedMatcher = isAnyOf(...matchers)\r\n\r\n return combinedMatcher(action)\r\n }\r\n}\r\n\r\nexport type UnknownAsyncThunkAction =\r\n | UnknownAsyncThunkPendingAction\r\n | UnknownAsyncThunkRejectedAction\r\n | UnknownAsyncThunkFulfilledAction\r\n\r\nexport type AnyAsyncThunk = {\r\n pending: { match: (action: any) => action is any }\r\n fulfilled: { match: (action: any) => action is any }\r\n rejected: { match: (action: any) => action is any }\r\n}\r\n\r\nexport type ActionsFromAsyncThunk =\r\n | ActionFromMatcher\r\n | ActionFromMatcher\r\n | ActionFromMatcher\r\n\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action was created by an async thunk action creator.\r\n *\r\n * @public\r\n */\r\nexport function isAsyncThunkAction(): (\r\n action: any\r\n) => action is UnknownAsyncThunkAction\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action belongs to one of the provided async thunk action creators.\r\n *\r\n * @param asyncThunks (optional) The async thunk action creators to match against.\r\n *\r\n * @public\r\n */\r\nexport function isAsyncThunkAction<\r\n AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]\r\n>(\r\n ...asyncThunks: AsyncThunks\r\n): (action: any) => action is ActionsFromAsyncThunk\r\n/**\r\n * Tests if `action` is a thunk action\r\n * @public\r\n */\r\nexport function isAsyncThunkAction(\r\n action: any\r\n): action is UnknownAsyncThunkAction\r\nexport function isAsyncThunkAction<\r\n AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]\r\n>(...asyncThunks: AsyncThunks | [any]) {\r\n if (asyncThunks.length === 0) {\r\n return (action: any) =>\r\n hasExpectedRequestMetadata(action, ['pending', 'fulfilled', 'rejected'])\r\n }\r\n\r\n if (!isAsyncThunkArray(asyncThunks)) {\r\n return isAsyncThunkAction()(asyncThunks[0])\r\n }\r\n\r\n return (\r\n action: any\r\n ): action is ActionsFromAsyncThunk => {\r\n // note: this type will be correct because we have at least 1 asyncThunk\r\n const matchers: [Matcher, ...Matcher[]] = [] as any\r\n\r\n for (const asyncThunk of asyncThunks) {\r\n matchers.push(\r\n asyncThunk.pending,\r\n asyncThunk.rejected,\r\n asyncThunk.fulfilled\r\n )\r\n }\r\n\r\n const combinedMatcher = isAnyOf(...matchers)\r\n\r\n return combinedMatcher(action)\r\n }\r\n}\r\n","import type { AbortSignalWithReason } from './types'\r\n\r\nexport const assertFunction: (\r\n func: unknown,\r\n expected: string\r\n) => asserts func is (...args: unknown[]) => unknown = (\r\n func: unknown,\r\n expected: string\r\n) => {\r\n if (typeof func !== 'function') {\r\n throw new TypeError(`${expected} is not a function`)\r\n }\r\n}\r\n\r\nexport const noop = () => {}\r\n\r\nexport const catchRejection = (\r\n promise: Promise,\r\n onError = noop\r\n): Promise => {\r\n promise.catch(onError)\r\n\r\n return promise\r\n}\r\n\r\nexport const addAbortSignalListener = (\r\n abortSignal: AbortSignal,\r\n callback: (evt: Event) => void\r\n) => {\r\n abortSignal.addEventListener('abort', callback, { once: true })\r\n return () => abortSignal.removeEventListener('abort', callback)\r\n}\r\n\r\n/**\r\n * Calls `abortController.abort(reason)` and patches `signal.reason`.\r\n * if it is not supported.\r\n *\r\n * At the time of writing `signal.reason` is available in FF chrome, edge node 17 and deno.\r\n * @param abortController\r\n * @param reason\r\n * @returns\r\n * @see https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal/reason\r\n */\r\nexport const abortControllerWithReason = (\r\n abortController: AbortController,\r\n reason: T\r\n): void => {\r\n type Consumer = (val: T) => void\r\n\r\n const signal = abortController.signal as AbortSignalWithReason\r\n\r\n if (signal.aborted) {\r\n return\r\n }\r\n\r\n // Patch `reason` if necessary.\r\n // - We use defineProperty here because reason is a getter of `AbortSignal.__proto__`.\r\n // - We need to patch 'reason' before calling `.abort()` because listeners to the 'abort'\r\n // event are are notified immediately.\r\n if (!('reason' in signal)) {\r\n Object.defineProperty(signal, 'reason', {\r\n enumerable: true,\r\n value: reason,\r\n configurable: true,\r\n writable: true,\r\n })\r\n }\r\n\r\n ;(abortController.abort as Consumer)(reason)\r\n}\r\n","import type { SerializedError } from '@reduxjs/toolkit'\r\n\r\nconst task = 'task'\r\nconst listener = 'listener'\r\nconst completed = 'completed'\r\nconst cancelled = 'cancelled'\r\n\r\n/* TaskAbortError error codes */\r\nexport const taskCancelled = `task-${cancelled}` as const\r\nexport const taskCompleted = `task-${completed}` as const\r\nexport const listenerCancelled = `${listener}-${cancelled}` as const\r\nexport const listenerCompleted = `${listener}-${completed}` as const\r\n\r\nexport class TaskAbortError implements SerializedError {\r\n name = 'TaskAbortError'\r\n message: string\r\n constructor(public code: string | undefined) {\r\n this.message = `${task} ${cancelled} (reason: ${code})`\r\n }\r\n}\r\n","import { TaskAbortError } from './exceptions'\r\nimport type { AbortSignalWithReason, TaskResult } from './types'\r\nimport { addAbortSignalListener, catchRejection, noop } from './utils'\r\n\r\n/**\r\n * Synchronously raises {@link TaskAbortError} if the task tied to the input `signal` has been cancelled.\r\n * @param signal\r\n * @param reason\r\n * @see {TaskAbortError}\r\n */\r\nexport const validateActive = (signal: AbortSignal): void => {\r\n if (signal.aborted) {\r\n throw new TaskAbortError((signal as AbortSignalWithReason).reason)\r\n }\r\n}\r\n\r\n/**\r\n * Generates a race between the promise(s) and the AbortSignal\r\n * This avoids `Promise.race()`-related memory leaks:\r\n * https://github.com/nodejs/node/issues/17469#issuecomment-349794909\r\n */\r\nexport function raceWithSignal(\r\n signal: AbortSignalWithReason,\r\n promise: Promise\r\n): Promise {\r\n let cleanup = noop\r\n return new Promise((resolve, reject) => {\r\n const notifyRejection = () => reject(new TaskAbortError(signal.reason))\r\n\r\n if (signal.aborted) {\r\n notifyRejection()\r\n return\r\n }\r\n\r\n cleanup = addAbortSignalListener(signal, notifyRejection)\r\n promise.finally(() => cleanup()).then(resolve, reject)\r\n }).finally(() => {\r\n // after this point, replace `cleanup` with a noop, so there is no reference to `signal` any more\r\n cleanup = noop\r\n })\r\n}\r\n\r\n/**\r\n * Runs a task and returns promise that resolves to {@link TaskResult}.\r\n * Second argument is an optional `cleanUp` function that always runs after task.\r\n *\r\n * **Note:** `runTask` runs the executor in the next microtask.\r\n * @returns\r\n */\r\nexport const runTask = async (\r\n task: () => Promise,\r\n cleanUp?: () => void\r\n): Promise> => {\r\n try {\r\n await Promise.resolve()\r\n const value = await task()\r\n return {\r\n status: 'ok',\r\n value,\r\n }\r\n } catch (error: any) {\r\n return {\r\n status: error instanceof TaskAbortError ? 'cancelled' : 'rejected',\r\n error,\r\n }\r\n } finally {\r\n cleanUp?.()\r\n }\r\n}\r\n\r\n/**\r\n * Given an input `AbortSignal` and a promise returns another promise that resolves\r\n * as soon the input promise is provided or rejects as soon as\r\n * `AbortSignal.abort` is `true`.\r\n * @param signal\r\n * @returns\r\n */\r\nexport const createPause = (signal: AbortSignal) => {\r\n return (promise: Promise): Promise => {\r\n return catchRejection(\r\n raceWithSignal(signal, promise).then((output) => {\r\n validateActive(signal)\r\n return output\r\n })\r\n )\r\n }\r\n}\r\n\r\n/**\r\n * Given an input `AbortSignal` and `timeoutMs` returns a promise that resolves\r\n * after `timeoutMs` or rejects as soon as `AbortSignal.abort` is `true`.\r\n * @param signal\r\n * @returns\r\n */\r\nexport const createDelay = (signal: AbortSignal) => {\r\n const pause = createPause(signal)\r\n return (timeoutMs: number): Promise => {\r\n return pause(new Promise((resolve) => setTimeout(resolve, timeoutMs)))\r\n }\r\n}\r\n","import type { Dispatch, AnyAction, MiddlewareAPI } from 'redux'\r\nimport type { ThunkDispatch } from 'redux-thunk'\r\nimport { createAction, isAction } from '../createAction'\r\nimport { nanoid } from '../nanoid'\r\n\r\nimport type {\r\n ListenerMiddleware,\r\n ListenerMiddlewareInstance,\r\n AddListenerOverloads,\r\n AnyListenerPredicate,\r\n CreateListenerMiddlewareOptions,\r\n TypedAddListener,\r\n TypedCreateListenerEntry,\r\n FallbackAddListenerOptions,\r\n ListenerEntry,\r\n ListenerErrorHandler,\r\n UnsubscribeListener,\r\n TakePattern,\r\n ListenerErrorInfo,\r\n ForkedTaskExecutor,\r\n ForkedTask,\r\n TypedRemoveListener,\r\n TaskResult,\r\n AbortSignalWithReason,\r\n UnsubscribeListenerOptions,\r\n ForkOptions,\r\n} from './types'\r\nimport {\r\n abortControllerWithReason,\r\n addAbortSignalListener,\r\n assertFunction,\r\n catchRejection,\r\n} from './utils'\r\nimport {\r\n listenerCancelled,\r\n listenerCompleted,\r\n TaskAbortError,\r\n taskCancelled,\r\n taskCompleted,\r\n} from './exceptions'\r\nimport {\r\n runTask,\r\n validateActive,\r\n createPause,\r\n createDelay,\r\n raceWithSignal,\r\n} from './task'\r\nexport { TaskAbortError } from './exceptions'\r\nexport type {\r\n ListenerEffect,\r\n ListenerMiddleware,\r\n ListenerEffectAPI,\r\n ListenerMiddlewareInstance,\r\n CreateListenerMiddlewareOptions,\r\n ListenerErrorHandler,\r\n TypedStartListening,\r\n TypedAddListener,\r\n TypedStopListening,\r\n TypedRemoveListener,\r\n UnsubscribeListener,\r\n UnsubscribeListenerOptions,\r\n ForkedTaskExecutor,\r\n ForkedTask,\r\n ForkedTaskAPI,\r\n AsyncTaskExecutor,\r\n SyncTaskExecutor,\r\n TaskCancelled,\r\n TaskRejected,\r\n TaskResolved,\r\n TaskResult,\r\n} from './types'\r\n\r\n//Overly-aggressive byte-shaving\r\nconst { assign } = Object\r\n/**\r\n * @internal\r\n */\r\nconst INTERNAL_NIL_TOKEN = {} as const\r\n\r\nconst alm = 'listenerMiddleware' as const\r\n\r\nconst createFork = (\r\n parentAbortSignal: AbortSignalWithReason,\r\n parentBlockingPromises: Promise[]\r\n) => {\r\n const linkControllers = (controller: AbortController) =>\r\n addAbortSignalListener(parentAbortSignal, () =>\r\n abortControllerWithReason(controller, parentAbortSignal.reason)\r\n )\r\n\r\n return (\r\n taskExecutor: ForkedTaskExecutor,\r\n opts?: ForkOptions\r\n ): ForkedTask => {\r\n assertFunction(taskExecutor, 'taskExecutor')\r\n const childAbortController = new AbortController()\r\n\r\n linkControllers(childAbortController)\r\n\r\n const result = runTask(\r\n async (): Promise => {\r\n validateActive(parentAbortSignal)\r\n validateActive(childAbortController.signal)\r\n const result = (await taskExecutor({\r\n pause: createPause(childAbortController.signal),\r\n delay: createDelay(childAbortController.signal),\r\n signal: childAbortController.signal,\r\n })) as T\r\n validateActive(childAbortController.signal)\r\n return result\r\n },\r\n () => abortControllerWithReason(childAbortController, taskCompleted)\r\n )\r\n\r\n if (opts?.autoJoin) {\r\n parentBlockingPromises.push(result)\r\n }\r\n\r\n return {\r\n result: createPause>(parentAbortSignal)(result),\r\n cancel() {\r\n abortControllerWithReason(childAbortController, taskCancelled)\r\n },\r\n }\r\n }\r\n}\r\n\r\nconst createTakePattern = (\r\n startListening: AddListenerOverloads<\r\n UnsubscribeListener,\r\n S,\r\n Dispatch\r\n >,\r\n signal: AbortSignal\r\n): TakePattern => {\r\n /**\r\n * A function that takes a ListenerPredicate and an optional timeout,\r\n * and resolves when either the predicate returns `true` based on an action\r\n * state combination or when the timeout expires.\r\n * If the parent listener is canceled while waiting, this will throw a\r\n * TaskAbortError.\r\n */\r\n const take = async

>(\r\n predicate: P,\r\n timeout: number | undefined\r\n ) => {\r\n validateActive(signal)\r\n\r\n // Placeholder unsubscribe function until the listener is added\r\n let unsubscribe: UnsubscribeListener = () => {}\r\n\r\n const tuplePromise = new Promise<[AnyAction, S, S]>((resolve, reject) => {\r\n // Inside the Promise, we synchronously add the listener.\r\n let stopListening = startListening({\r\n predicate: predicate as any,\r\n effect: (action, listenerApi): void => {\r\n // One-shot listener that cleans up as soon as the predicate passes\r\n listenerApi.unsubscribe()\r\n // Resolve the promise with the same arguments the predicate saw\r\n resolve([\r\n action,\r\n listenerApi.getState(),\r\n listenerApi.getOriginalState(),\r\n ])\r\n },\r\n })\r\n unsubscribe = () => {\r\n stopListening()\r\n reject()\r\n }\r\n })\r\n\r\n const promises: (Promise | Promise<[AnyAction, S, S]>)[] = [\r\n tuplePromise,\r\n ]\r\n\r\n if (timeout != null) {\r\n promises.push(\r\n new Promise((resolve) => setTimeout(resolve, timeout, null))\r\n )\r\n }\r\n\r\n try {\r\n const output = await raceWithSignal(signal, Promise.race(promises))\r\n\r\n validateActive(signal)\r\n return output\r\n } finally {\r\n // Always clean up the listener\r\n unsubscribe()\r\n }\r\n }\r\n\r\n return ((predicate: AnyListenerPredicate, timeout: number | undefined) =>\r\n catchRejection(take(predicate, timeout))) as TakePattern\r\n}\r\n\r\nconst getListenerEntryPropsFrom = (options: FallbackAddListenerOptions) => {\r\n let { type, actionCreator, matcher, predicate, effect } = options\r\n\r\n if (type) {\r\n predicate = createAction(type).match\r\n } else if (actionCreator) {\r\n type = actionCreator!.type\r\n predicate = actionCreator.match\r\n } else if (matcher) {\r\n predicate = matcher\r\n } else if (predicate) {\r\n // pass\r\n } else {\r\n throw new Error(\r\n 'Creating or removing a listener requires one of the known fields for matching an action'\r\n )\r\n }\r\n\r\n assertFunction(effect, 'options.listener')\r\n\r\n return { predicate, type, effect }\r\n}\r\n\r\n/** Accepts the possible options for creating a listener, and returns a formatted listener entry */\r\nexport const createListenerEntry: TypedCreateListenerEntry = (\r\n options: FallbackAddListenerOptions\r\n) => {\r\n const { type, predicate, effect } = getListenerEntryPropsFrom(options)\r\n\r\n const id = nanoid()\r\n const entry: ListenerEntry = {\r\n id,\r\n effect,\r\n type,\r\n predicate,\r\n pending: new Set(),\r\n unsubscribe: () => {\r\n throw new Error('Unsubscribe not initialized')\r\n },\r\n }\r\n\r\n return entry\r\n}\r\n\r\nconst cancelActiveListeners = (\r\n entry: ListenerEntry>\r\n) => {\r\n entry.pending.forEach((controller) => {\r\n abortControllerWithReason(controller, listenerCancelled)\r\n })\r\n}\r\n\r\nconst createClearListenerMiddleware = (\r\n listenerMap: Map\r\n) => {\r\n return () => {\r\n listenerMap.forEach(cancelActiveListeners)\r\n\r\n listenerMap.clear()\r\n }\r\n}\r\n\r\n/**\r\n * Safely reports errors to the `errorHandler` provided.\r\n * Errors that occur inside `errorHandler` are notified in a new task.\r\n * Inspired by [rxjs reportUnhandledError](https://github.com/ReactiveX/rxjs/blob/6fafcf53dc9e557439b25debaeadfd224b245a66/src/internal/util/reportUnhandledError.ts)\r\n * @param errorHandler\r\n * @param errorToNotify\r\n */\r\nconst safelyNotifyError = (\r\n errorHandler: ListenerErrorHandler,\r\n errorToNotify: unknown,\r\n errorInfo: ListenerErrorInfo\r\n): void => {\r\n try {\r\n errorHandler(errorToNotify, errorInfo)\r\n } catch (errorHandlerError) {\r\n // We cannot let an error raised here block the listener queue.\r\n // The error raised here will be picked up by `window.onerror`, `process.on('error')` etc...\r\n setTimeout(() => {\r\n throw errorHandlerError\r\n }, 0)\r\n }\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport const addListener = createAction(\r\n `${alm}/add`\r\n) as TypedAddListener\r\n\r\n/**\r\n * @public\r\n */\r\nexport const clearAllListeners = createAction(`${alm}/removeAll`)\r\n\r\n/**\r\n * @public\r\n */\r\nexport const removeListener = createAction(\r\n `${alm}/remove`\r\n) as TypedRemoveListener\r\n\r\nconst defaultErrorHandler: ListenerErrorHandler = (...args: unknown[]) => {\r\n console.error(`${alm}/error`, ...args)\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport function createListenerMiddleware<\r\n S = unknown,\r\n D extends Dispatch = ThunkDispatch,\r\n ExtraArgument = unknown\r\n>(middlewareOptions: CreateListenerMiddlewareOptions = {}) {\r\n const listenerMap = new Map()\r\n const { extra, onError = defaultErrorHandler } = middlewareOptions\r\n\r\n assertFunction(onError, 'onError')\r\n\r\n const insertEntry = (entry: ListenerEntry) => {\r\n entry.unsubscribe = () => listenerMap.delete(entry!.id)\r\n\r\n listenerMap.set(entry.id, entry)\r\n return (cancelOptions?: UnsubscribeListenerOptions) => {\r\n entry.unsubscribe()\r\n if (cancelOptions?.cancelActive) {\r\n cancelActiveListeners(entry)\r\n }\r\n }\r\n }\r\n\r\n const findListenerEntry = (\r\n comparator: (entry: ListenerEntry) => boolean\r\n ): ListenerEntry | undefined => {\r\n for (const entry of Array.from(listenerMap.values())) {\r\n if (comparator(entry)) {\r\n return entry\r\n }\r\n }\r\n\r\n return undefined\r\n }\r\n\r\n const startListening = (options: FallbackAddListenerOptions) => {\r\n let entry = findListenerEntry(\r\n (existingEntry) => existingEntry.effect === options.effect\r\n )\r\n\r\n if (!entry) {\r\n entry = createListenerEntry(options as any)\r\n }\r\n\r\n return insertEntry(entry)\r\n }\r\n\r\n const stopListening = (\r\n options: FallbackAddListenerOptions & UnsubscribeListenerOptions\r\n ): boolean => {\r\n const { type, effect, predicate } = getListenerEntryPropsFrom(options)\r\n\r\n const entry = findListenerEntry((entry) => {\r\n const matchPredicateOrType =\r\n typeof type === 'string'\r\n ? entry.type === type\r\n : entry.predicate === predicate\r\n\r\n return matchPredicateOrType && entry.effect === effect\r\n })\r\n\r\n if (entry) {\r\n entry.unsubscribe()\r\n if (options.cancelActive) {\r\n cancelActiveListeners(entry)\r\n }\r\n }\r\n\r\n return !!entry\r\n }\r\n\r\n const notifyListener = async (\r\n entry: ListenerEntry>,\r\n action: AnyAction,\r\n api: MiddlewareAPI,\r\n getOriginalState: () => S\r\n ) => {\r\n const internalTaskController = new AbortController()\r\n const take = createTakePattern(\r\n startListening,\r\n internalTaskController.signal\r\n )\r\n const autoJoinPromises: Promise[] = []\r\n\r\n try {\r\n entry.pending.add(internalTaskController)\r\n await Promise.resolve(\r\n entry.effect(\r\n action,\r\n // Use assign() rather than ... to avoid extra helper functions added to bundle\r\n assign({}, api, {\r\n getOriginalState,\r\n condition: (\r\n predicate: AnyListenerPredicate,\r\n timeout?: number\r\n ) => take(predicate, timeout).then(Boolean),\r\n take,\r\n delay: createDelay(internalTaskController.signal),\r\n pause: createPause(internalTaskController.signal),\r\n extra,\r\n signal: internalTaskController.signal,\r\n fork: createFork(internalTaskController.signal, autoJoinPromises),\r\n unsubscribe: entry.unsubscribe,\r\n subscribe: () => {\r\n listenerMap.set(entry.id, entry)\r\n },\r\n cancelActiveListeners: () => {\r\n entry.pending.forEach((controller, _, set) => {\r\n if (controller !== internalTaskController) {\r\n abortControllerWithReason(controller, listenerCancelled)\r\n set.delete(controller)\r\n }\r\n })\r\n },\r\n })\r\n )\r\n )\r\n } catch (listenerError) {\r\n if (!(listenerError instanceof TaskAbortError)) {\r\n safelyNotifyError(onError, listenerError, {\r\n raisedBy: 'effect',\r\n })\r\n }\r\n } finally {\r\n await Promise.allSettled(autoJoinPromises)\r\n\r\n abortControllerWithReason(internalTaskController, listenerCompleted) // Notify that the task has completed\r\n entry.pending.delete(internalTaskController)\r\n }\r\n }\r\n\r\n const clearListenerMiddleware = createClearListenerMiddleware(listenerMap)\r\n\r\n const middleware: ListenerMiddleware =\r\n (api) => (next) => (action) => {\r\n if (!isAction(action)) {\r\n // we only want to notify listeners for action objects\r\n return next(action)\r\n }\r\n\r\n if (addListener.match(action)) {\r\n return startListening(action.payload)\r\n }\r\n\r\n if (clearAllListeners.match(action)) {\r\n clearListenerMiddleware()\r\n return\r\n }\r\n\r\n if (removeListener.match(action)) {\r\n return stopListening(action.payload)\r\n }\r\n\r\n // Need to get this state _before_ the reducer processes the action\r\n let originalState: S | typeof INTERNAL_NIL_TOKEN = api.getState()\r\n\r\n // `getOriginalState` can only be called synchronously.\r\n // @see https://github.com/reduxjs/redux-toolkit/discussions/1648#discussioncomment-1932820\r\n const getOriginalState = (): S => {\r\n if (originalState === INTERNAL_NIL_TOKEN) {\r\n throw new Error(\r\n `${alm}: getOriginalState can only be called synchronously`\r\n )\r\n }\r\n\r\n return originalState as S\r\n }\r\n\r\n let result: unknown\r\n\r\n try {\r\n // Actually forward the action to the reducer before we handle listeners\r\n result = next(action)\r\n\r\n if (listenerMap.size > 0) {\r\n let currentState = api.getState()\r\n // Work around ESBuild+TS transpilation issue\r\n const listenerEntries = Array.from(listenerMap.values())\r\n for (let entry of listenerEntries) {\r\n let runListener = false\r\n\r\n try {\r\n runListener = entry.predicate(action, currentState, originalState)\r\n } catch (predicateError) {\r\n runListener = false\r\n\r\n safelyNotifyError(onError, predicateError, {\r\n raisedBy: 'predicate',\r\n })\r\n }\r\n\r\n if (!runListener) {\r\n continue\r\n }\r\n\r\n notifyListener(entry, action, api, getOriginalState)\r\n }\r\n }\r\n } finally {\r\n // Remove `originalState` store from this scope.\r\n originalState = INTERNAL_NIL_TOKEN\r\n }\r\n\r\n return result\r\n }\r\n\r\n return {\r\n middleware,\r\n startListening,\r\n stopListening,\r\n clearListeners: clearListenerMiddleware,\r\n } as ListenerMiddlewareInstance\r\n}\r\n","import type { StoreEnhancer } from 'redux'\r\n\r\nexport const SHOULD_AUTOBATCH = 'RTK_autoBatch'\r\n\r\nexport const prepareAutoBatched =\r\n () =>\r\n (payload: T): { payload: T; meta: unknown } => ({\r\n payload,\r\n meta: { [SHOULD_AUTOBATCH]: true },\r\n })\r\n\r\n// TODO Remove this in 2.0\r\n// Copied from https://github.com/feross/queue-microtask\r\nlet promise: Promise\r\nconst queueMicrotaskShim =\r\n typeof queueMicrotask === 'function'\r\n ? queueMicrotask.bind(\r\n typeof window !== 'undefined'\r\n ? window\r\n : typeof global !== 'undefined'\r\n ? global\r\n : globalThis\r\n )\r\n : // reuse resolved promise, and allocate it lazily\r\n (cb: () => void) =>\r\n (promise || (promise = Promise.resolve())).then(cb).catch((err: any) =>\r\n setTimeout(() => {\r\n throw err\r\n }, 0)\r\n )\r\n\r\nconst createQueueWithTimer = (timeout: number) => {\r\n return (notify: () => void) => {\r\n setTimeout(notify, timeout)\r\n }\r\n}\r\n\r\n// requestAnimationFrame won't exist in SSR environments.\r\n// Fall back to a vague approximation just to keep from erroring.\r\nconst rAF =\r\n typeof window !== 'undefined' && window.requestAnimationFrame\r\n ? window.requestAnimationFrame\r\n : createQueueWithTimer(10)\r\n\r\nexport type AutoBatchOptions =\r\n | { type: 'tick' }\r\n | { type: 'timer'; timeout: number }\r\n | { type: 'raf' }\r\n | { type: 'callback'; queueNotification: (notify: () => void) => void }\r\n\r\n/**\r\n * A Redux store enhancer that watches for \"low-priority\" actions, and delays\r\n * notifying subscribers until either the queued callback executes or the\r\n * next \"standard-priority\" action is dispatched.\r\n *\r\n * This allows dispatching multiple \"low-priority\" actions in a row with only\r\n * a single subscriber notification to the UI after the sequence of actions\r\n * is finished, thus improving UI re-render performance.\r\n *\r\n * Watches for actions with the `action.meta[SHOULD_AUTOBATCH]` attribute.\r\n * This can be added to `action.meta` manually, or by using the\r\n * `prepareAutoBatched` helper.\r\n *\r\n * By default, it will queue a notification for the end of the event loop tick.\r\n * However, you can pass several other options to configure the behavior:\r\n * - `{type: 'tick'}: queues using `queueMicrotask` (default)\r\n * - `{type: 'timer, timeout: number}`: queues using `setTimeout`\r\n * - `{type: 'raf'}`: queues using `requestAnimationFrame`\r\n * - `{type: 'callback', queueNotification: (notify: () => void) => void}: lets you provide your own callback\r\n *\r\n *\r\n */\r\nexport const autoBatchEnhancer =\r\n (options: AutoBatchOptions = { type: 'raf' }): StoreEnhancer =>\r\n (next) =>\r\n (...args) => {\r\n const store = next(...args)\r\n\r\n let notifying = true\r\n let shouldNotifyAtEndOfTick = false\r\n let notificationQueued = false\r\n\r\n const listeners = new Set<() => void>()\r\n\r\n const queueCallback =\r\n options.type === 'tick'\r\n ? queueMicrotaskShim\r\n : options.type === 'raf'\r\n ? rAF\r\n : options.type === 'callback'\r\n ? options.queueNotification\r\n : createQueueWithTimer(options.timeout)\r\n\r\n const notifyListeners = () => {\r\n // We're running at the end of the event loop tick.\r\n // Run the real listener callbacks to actually update the UI.\r\n notificationQueued = false\r\n if (shouldNotifyAtEndOfTick) {\r\n shouldNotifyAtEndOfTick = false\r\n listeners.forEach((l) => l())\r\n }\r\n }\r\n\r\n return Object.assign({}, store, {\r\n // Override the base `store.subscribe` method to keep original listeners\r\n // from running if we're delaying notifications\r\n subscribe(listener: () => void) {\r\n // Each wrapped listener will only call the real listener if\r\n // the `notifying` flag is currently active when it's called.\r\n // This lets the base store work as normal, while the actual UI\r\n // update becomes controlled by this enhancer.\r\n const wrappedListener: typeof listener = () => notifying && listener()\r\n const unsubscribe = store.subscribe(wrappedListener)\r\n listeners.add(listener)\r\n return () => {\r\n unsubscribe()\r\n listeners.delete(listener)\r\n }\r\n },\r\n // Override the base `store.dispatch` method so that we can check actions\r\n // for the `shouldAutoBatch` flag and determine if batching is active\r\n dispatch(action: any) {\r\n try {\r\n // If the action does _not_ have the `shouldAutoBatch` flag,\r\n // we resume/continue normal notify-after-each-dispatch behavior\r\n notifying = !action?.meta?.[SHOULD_AUTOBATCH]\r\n // If a `notifyListeners` microtask was queued, you can't cancel it.\r\n // Instead, we set a flag so that it's a no-op when it does run\r\n shouldNotifyAtEndOfTick = !notifying\r\n if (shouldNotifyAtEndOfTick) {\r\n // We've seen at least 1 action with `SHOULD_AUTOBATCH`. Try to queue\r\n // a microtask to notify listeners at the end of the event loop tick.\r\n // Make sure we only enqueue this _once_ per tick.\r\n if (!notificationQueued) {\r\n notificationQueued = true\r\n queueCallback(notifyListeners)\r\n }\r\n }\r\n // Go ahead and process the action as usual, including reducers.\r\n // If normal notification behavior is enabled, the store will notify\r\n // all of its own listeners, and the wrapper callbacks above will\r\n // see `notifying` is true and pass on to the real listener callbacks.\r\n // If we're \"batching\" behavior, then the wrapped callbacks will\r\n // bail out, causing the base store notification behavior to be no-ops.\r\n return store.dispatch(action)\r\n } finally {\r\n // Assume we're back to normal behavior after each action\r\n notifying = true\r\n }\r\n },\r\n })\r\n }\r\n","import { enableES5 } from 'immer'\r\nexport * from 'redux'\r\nexport {\r\n default as createNextState,\r\n current,\r\n freeze,\r\n original,\r\n isDraft,\r\n} from 'immer'\r\nexport type { Draft } from 'immer'\r\nexport { createSelector } from 'reselect'\r\nexport type {\r\n Selector,\r\n OutputParametricSelector,\r\n OutputSelector,\r\n ParametricSelector,\r\n} from 'reselect'\r\nexport { createDraftSafeSelector } from './createDraftSafeSelector'\r\nexport type { ThunkAction, ThunkDispatch, ThunkMiddleware } from 'redux-thunk'\r\n\r\n// We deliberately enable Immer's ES5 support, on the grounds that\r\n// we assume RTK will be used with React Native and other Proxy-less\r\n// environments. In addition, that's how Immer 4 behaved, and since\r\n// we want to ship this in an RTK minor, we should keep the same behavior.\r\nenableES5()\r\n\r\nexport {\r\n // js\r\n configureStore,\r\n} from './configureStore'\r\nexport type {\r\n // types\r\n ConfigureEnhancersCallback,\r\n ConfigureStoreOptions,\r\n EnhancedStore,\r\n} from './configureStore'\r\nexport type { DevToolsEnhancerOptions } from './devtoolsExtension'\r\nexport {\r\n // js\r\n createAction,\r\n getType,\r\n isAction,\r\n isActionCreator,\r\n isFSA as isFluxStandardAction,\r\n} from './createAction'\r\nexport type {\r\n // types\r\n PayloadAction,\r\n PayloadActionCreator,\r\n ActionCreatorWithNonInferrablePayload,\r\n ActionCreatorWithOptionalPayload,\r\n ActionCreatorWithPayload,\r\n ActionCreatorWithoutPayload,\r\n ActionCreatorWithPreparedPayload,\r\n PrepareAction,\r\n} from './createAction'\r\nexport {\r\n // js\r\n createReducer,\r\n} from './createReducer'\r\nexport type {\r\n // types\r\n Actions,\r\n CaseReducer,\r\n CaseReducers,\r\n} from './createReducer'\r\nexport {\r\n // js\r\n createSlice,\r\n} from './createSlice'\r\n\r\nexport type {\r\n // types\r\n CreateSliceOptions,\r\n Slice,\r\n CaseReducerActions,\r\n SliceCaseReducers,\r\n ValidateSliceCaseReducers,\r\n CaseReducerWithPrepare,\r\n SliceActionCreator,\r\n} from './createSlice'\r\nexport type { ActionCreatorInvariantMiddlewareOptions } from './actionCreatorInvariantMiddleware'\r\nexport { createActionCreatorInvariantMiddleware } from './actionCreatorInvariantMiddleware'\r\nexport {\r\n // js\r\n createImmutableStateInvariantMiddleware,\r\n isImmutableDefault,\r\n} from './immutableStateInvariantMiddleware'\r\nexport type {\r\n // types\r\n ImmutableStateInvariantMiddlewareOptions,\r\n} from './immutableStateInvariantMiddleware'\r\nexport {\r\n // js\r\n createSerializableStateInvariantMiddleware,\r\n findNonSerializableValue,\r\n isPlain,\r\n} from './serializableStateInvariantMiddleware'\r\nexport type {\r\n // types\r\n SerializableStateInvariantMiddlewareOptions,\r\n} from './serializableStateInvariantMiddleware'\r\nexport {\r\n // js\r\n getDefaultMiddleware,\r\n} from './getDefaultMiddleware'\r\nexport type {\r\n // types\r\n ActionReducerMapBuilder,\r\n} from './mapBuilders'\r\nexport { MiddlewareArray, EnhancerArray } from './utils'\r\n\r\nexport { createEntityAdapter } from './entities/create_adapter'\r\nexport type {\r\n Dictionary,\r\n EntityState,\r\n EntityAdapter,\r\n EntitySelectors,\r\n EntityStateAdapter,\r\n EntityId,\r\n Update,\r\n IdSelector,\r\n Comparer,\r\n} from './entities/models'\r\n\r\nexport {\r\n createAsyncThunk,\r\n unwrapResult,\r\n miniSerializeError,\r\n} from './createAsyncThunk'\r\nexport type {\r\n AsyncThunk,\r\n AsyncThunkOptions,\r\n AsyncThunkAction,\r\n AsyncThunkPayloadCreatorReturnValue,\r\n AsyncThunkPayloadCreator,\r\n SerializedError,\r\n} from './createAsyncThunk'\r\n\r\nexport {\r\n // js\r\n isAllOf,\r\n isAnyOf,\r\n isPending,\r\n isRejected,\r\n isFulfilled,\r\n isAsyncThunkAction,\r\n isRejectedWithValue,\r\n} from './matchers'\r\nexport type {\r\n // types\r\n ActionMatchingAllOf,\r\n ActionMatchingAnyOf,\r\n} from './matchers'\r\n\r\nexport { nanoid } from './nanoid'\r\n\r\nexport { default as isPlainObject } from './isPlainObject'\r\n\r\nexport type {\r\n ListenerEffect,\r\n ListenerMiddleware,\r\n ListenerEffectAPI,\r\n ListenerMiddlewareInstance,\r\n CreateListenerMiddlewareOptions,\r\n ListenerErrorHandler,\r\n TypedStartListening,\r\n TypedAddListener,\r\n TypedStopListening,\r\n TypedRemoveListener,\r\n UnsubscribeListener,\r\n UnsubscribeListenerOptions,\r\n ForkedTaskExecutor,\r\n ForkedTask,\r\n ForkedTaskAPI,\r\n AsyncTaskExecutor,\r\n SyncTaskExecutor,\r\n TaskCancelled,\r\n TaskRejected,\r\n TaskResolved,\r\n TaskResult,\r\n} from './listenerMiddleware/index'\r\nexport type { AnyListenerPredicate } from './listenerMiddleware/types'\r\n\r\nexport {\r\n createListenerMiddleware,\r\n addListener,\r\n removeListener,\r\n clearAllListeners,\r\n TaskAbortError,\r\n} from './listenerMiddleware/index'\r\n\r\nexport {\r\n SHOULD_AUTOBATCH,\r\n prepareAutoBatched,\r\n autoBatchEnhancer,\r\n} from './autoBatchEnhancer'\r\nexport type { AutoBatchOptions } from './autoBatchEnhancer'\r\n\r\nexport type { ExtractDispatchExtensions as TSHelpersExtractDispatchExtensions } from './tsHelpers'\r\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = asyncify;\n\nvar _isObject = require('lodash/isObject');\n\nvar _isObject2 = _interopRequireDefault(_isObject);\n\nvar _initialParams = require('./internal/initialParams');\n\nvar _initialParams2 = _interopRequireDefault(_initialParams);\n\nvar _setImmediate = require('./internal/setImmediate');\n\nvar _setImmediate2 = _interopRequireDefault(_setImmediate);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Take a sync function and make it async, passing its return value to a\n * callback. This is useful for plugging sync functions into a waterfall,\n * series, or other async functions. Any arguments passed to the generated\n * function will be passed to the wrapped function (except for the final\n * callback argument). Errors thrown will be passed to the callback.\n *\n * If the function passed to `asyncify` returns a Promise, that promises's\n * resolved/rejected state will be used to call the callback, rather than simply\n * the synchronous return value.\n *\n * This also means you can asyncify ES2017 `async` functions.\n *\n * @name asyncify\n * @static\n * @memberOf module:Utils\n * @method\n * @alias wrapSync\n * @category Util\n * @param {Function} func - The synchronous function, or Promise-returning\n * function to convert to an {@link AsyncFunction}.\n * @returns {AsyncFunction} An asynchronous wrapper of the `func`. To be\n * invoked with `(args..., callback)`.\n * @example\n *\n * // passing a regular synchronous function\n * async.waterfall([\n * async.apply(fs.readFile, filename, \"utf8\"),\n * async.asyncify(JSON.parse),\n * function (data, next) {\n * // data is the result of parsing the text.\n * // If there was a parsing error, it would have been caught.\n * }\n * ], callback);\n *\n * // passing a function returning a promise\n * async.waterfall([\n * async.apply(fs.readFile, filename, \"utf8\"),\n * async.asyncify(function (contents) {\n * return db.model.create(contents);\n * }),\n * function (model, next) {\n * // `model` is the instantiated model object.\n * // If there was an error, this function would be skipped.\n * }\n * ], callback);\n *\n * // es2017 example, though `asyncify` is not needed if your JS environment\n * // supports async functions out of the box\n * var q = async.queue(async.asyncify(async function(file) {\n * var intermediateStep = await processFile(file);\n * return await somePromise(intermediateStep)\n * }));\n *\n * q.push(files);\n */\nfunction asyncify(func) {\n return (0, _initialParams2.default)(function (args, callback) {\n var result;\n try {\n result = func.apply(this, args);\n } catch (e) {\n return callback(e);\n }\n // if result is Promise object\n if ((0, _isObject2.default)(result) && typeof result.then === 'function') {\n result.then(function (value) {\n invokeCallback(callback, null, value);\n }, function (err) {\n invokeCallback(callback, err.message ? err : new Error(err));\n });\n } else {\n callback(null, result);\n }\n });\n}\n\nfunction invokeCallback(callback, error, value) {\n try {\n callback(error, value);\n } catch (e) {\n (0, _setImmediate2.default)(rethrow, e);\n }\n}\n\nfunction rethrow(error) {\n throw error;\n}\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = eachLimit;\n\nvar _eachOf = require('./eachOf');\n\nvar _eachOf2 = _interopRequireDefault(_eachOf);\n\nvar _withoutIndex = require('./internal/withoutIndex');\n\nvar _withoutIndex2 = _interopRequireDefault(_withoutIndex);\n\nvar _wrapAsync = require('./internal/wrapAsync');\n\nvar _wrapAsync2 = _interopRequireDefault(_wrapAsync);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Applies the function `iteratee` to each item in `coll`, in parallel.\n * The `iteratee` is called with an item from the list, and a callback for when\n * it has finished. If the `iteratee` passes an error to its `callback`, the\n * main `callback` (for the `each` function) is immediately called with the\n * error.\n *\n * Note, that since this function applies `iteratee` to each item in parallel,\n * there is no guarantee that the iteratee functions will complete in order.\n *\n * @name each\n * @static\n * @memberOf module:Collections\n * @method\n * @alias forEach\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to\n * each item in `coll`. Invoked with (item, callback).\n * The array index is not passed to the iteratee.\n * If you need the index, use `eachOf`.\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n * @example\n *\n * // assuming openFiles is an array of file names and saveFile is a function\n * // to save the modified contents of that file:\n *\n * async.each(openFiles, saveFile, function(err){\n * // if any of the saves produced an error, err would equal that error\n * });\n *\n * // assuming openFiles is an array of file names\n * async.each(openFiles, function(file, callback) {\n *\n * // Perform operation on file here.\n * console.log('Processing file ' + file);\n *\n * if( file.length > 32 ) {\n * console.log('This file name is too long');\n * callback('File name too long');\n * } else {\n * // Do work to process file here\n * console.log('File processed');\n * callback();\n * }\n * }, function(err) {\n * // if any of the file processing produced an error, err would equal that error\n * if( err ) {\n * // One of the iterations produced an error.\n * // All processing will now stop.\n * console.log('A file failed to process');\n * } else {\n * console.log('All files have been processed successfully');\n * }\n * });\n */\nfunction eachLimit(coll, iteratee, callback) {\n (0, _eachOf2.default)(coll, (0, _withoutIndex2.default)((0, _wrapAsync2.default)(iteratee)), callback);\n}\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (coll, iteratee, callback) {\n var eachOfImplementation = (0, _isArrayLike2.default)(coll) ? eachOfArrayLike : eachOfGeneric;\n eachOfImplementation(coll, (0, _wrapAsync2.default)(iteratee), callback);\n};\n\nvar _isArrayLike = require('lodash/isArrayLike');\n\nvar _isArrayLike2 = _interopRequireDefault(_isArrayLike);\n\nvar _breakLoop = require('./internal/breakLoop');\n\nvar _breakLoop2 = _interopRequireDefault(_breakLoop);\n\nvar _eachOfLimit = require('./eachOfLimit');\n\nvar _eachOfLimit2 = _interopRequireDefault(_eachOfLimit);\n\nvar _doLimit = require('./internal/doLimit');\n\nvar _doLimit2 = _interopRequireDefault(_doLimit);\n\nvar _noop = require('lodash/noop');\n\nvar _noop2 = _interopRequireDefault(_noop);\n\nvar _once = require('./internal/once');\n\nvar _once2 = _interopRequireDefault(_once);\n\nvar _onlyOnce = require('./internal/onlyOnce');\n\nvar _onlyOnce2 = _interopRequireDefault(_onlyOnce);\n\nvar _wrapAsync = require('./internal/wrapAsync');\n\nvar _wrapAsync2 = _interopRequireDefault(_wrapAsync);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// eachOf implementation optimized for array-likes\nfunction eachOfArrayLike(coll, iteratee, callback) {\n callback = (0, _once2.default)(callback || _noop2.default);\n var index = 0,\n completed = 0,\n length = coll.length;\n if (length === 0) {\n callback(null);\n }\n\n function iteratorCallback(err, value) {\n if (err) {\n callback(err);\n } else if (++completed === length || value === _breakLoop2.default) {\n callback(null);\n }\n }\n\n for (; index < length; index++) {\n iteratee(coll[index], index, (0, _onlyOnce2.default)(iteratorCallback));\n }\n}\n\n// a generic version of eachOf which can handle array, object, and iterator cases.\nvar eachOfGeneric = (0, _doLimit2.default)(_eachOfLimit2.default, Infinity);\n\n/**\n * Like [`each`]{@link module:Collections.each}, except that it passes the key (or index) as the second argument\n * to the iteratee.\n *\n * @name eachOf\n * @static\n * @memberOf module:Collections\n * @method\n * @alias forEachOf\n * @category Collection\n * @see [async.each]{@link module:Collections.each}\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - A function to apply to each\n * item in `coll`.\n * The `key` is the item's key, or index in the case of an array.\n * Invoked with (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n * @example\n *\n * var obj = {dev: \"/dev.json\", test: \"/test.json\", prod: \"/prod.json\"};\n * var configs = {};\n *\n * async.forEachOf(obj, function (value, key, callback) {\n * fs.readFile(__dirname + value, \"utf8\", function (err, data) {\n * if (err) return callback(err);\n * try {\n * configs[key] = JSON.parse(data);\n * } catch (e) {\n * return callback(e);\n * }\n * callback();\n * });\n * }, function (err) {\n * if (err) console.error(err.message);\n * // configs is now a map of JSON data\n * doSomethingWith(configs);\n * });\n */\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = eachOfLimit;\n\nvar _eachOfLimit2 = require('./internal/eachOfLimit');\n\nvar _eachOfLimit3 = _interopRequireDefault(_eachOfLimit2);\n\nvar _wrapAsync = require('./internal/wrapAsync');\n\nvar _wrapAsync2 = _interopRequireDefault(_wrapAsync);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * The same as [`eachOf`]{@link module:Collections.eachOf} but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name eachOfLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.eachOf]{@link module:Collections.eachOf}\n * @alias forEachOfLimit\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - An async function to apply to each\n * item in `coll`. The `key` is the item's key, or index in the case of an\n * array.\n * Invoked with (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n */\nfunction eachOfLimit(coll, limit, iteratee, callback) {\n (0, _eachOfLimit3.default)(limit)(coll, (0, _wrapAsync2.default)(iteratee), callback);\n}\nmodule.exports = exports['default'];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n// A temporary value used to identify if the loop should be broken.\n// See #1064, #1293\nexports.default = {};\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = doLimit;\nfunction doLimit(fn, limit) {\n return function (iterable, iteratee, callback) {\n return fn(iterable, limit, iteratee, callback);\n };\n}\nmodule.exports = exports[\"default\"];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = _eachOfLimit;\n\nvar _noop = require('lodash/noop');\n\nvar _noop2 = _interopRequireDefault(_noop);\n\nvar _once = require('./once');\n\nvar _once2 = _interopRequireDefault(_once);\n\nvar _iterator = require('./iterator');\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _onlyOnce = require('./onlyOnce');\n\nvar _onlyOnce2 = _interopRequireDefault(_onlyOnce);\n\nvar _breakLoop = require('./breakLoop');\n\nvar _breakLoop2 = _interopRequireDefault(_breakLoop);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _eachOfLimit(limit) {\n return function (obj, iteratee, callback) {\n callback = (0, _once2.default)(callback || _noop2.default);\n if (limit <= 0 || !obj) {\n return callback(null);\n }\n var nextElem = (0, _iterator2.default)(obj);\n var done = false;\n var running = 0;\n var looping = false;\n\n function iterateeCallback(err, value) {\n running -= 1;\n if (err) {\n done = true;\n callback(err);\n } else if (value === _breakLoop2.default || done && running <= 0) {\n done = true;\n return callback(null);\n } else if (!looping) {\n replenish();\n }\n }\n\n function replenish() {\n looping = true;\n while (running < limit && !done) {\n var elem = nextElem();\n if (elem === null) {\n done = true;\n if (running <= 0) {\n callback(null);\n }\n return;\n }\n running += 1;\n iteratee(elem.value, elem.key, (0, _onlyOnce2.default)(iterateeCallback));\n }\n looping = false;\n }\n\n replenish();\n };\n}\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (coll) {\n return iteratorSymbol && coll[iteratorSymbol] && coll[iteratorSymbol]();\n};\n\nvar iteratorSymbol = typeof Symbol === 'function' && Symbol.iterator;\n\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (fn) {\n return function () /*...args, callback*/{\n var args = (0, _slice2.default)(arguments);\n var callback = args.pop();\n fn.call(this, args, callback);\n };\n};\n\nvar _slice = require('./slice');\n\nvar _slice2 = _interopRequireDefault(_slice);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = iterator;\n\nvar _isArrayLike = require('lodash/isArrayLike');\n\nvar _isArrayLike2 = _interopRequireDefault(_isArrayLike);\n\nvar _getIterator = require('./getIterator');\n\nvar _getIterator2 = _interopRequireDefault(_getIterator);\n\nvar _keys = require('lodash/keys');\n\nvar _keys2 = _interopRequireDefault(_keys);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction createArrayIterator(coll) {\n var i = -1;\n var len = coll.length;\n return function next() {\n return ++i < len ? { value: coll[i], key: i } : null;\n };\n}\n\nfunction createES2015Iterator(iterator) {\n var i = -1;\n return function next() {\n var item = iterator.next();\n if (item.done) return null;\n i++;\n return { value: item.value, key: i };\n };\n}\n\nfunction createObjectIterator(obj) {\n var okeys = (0, _keys2.default)(obj);\n var i = -1;\n var len = okeys.length;\n return function next() {\n var key = okeys[++i];\n if (key === '__proto__') {\n return next();\n }\n return i < len ? { value: obj[key], key: key } : null;\n };\n}\n\nfunction iterator(coll) {\n if ((0, _isArrayLike2.default)(coll)) {\n return createArrayIterator(coll);\n }\n\n var iterator = (0, _getIterator2.default)(coll);\n return iterator ? createES2015Iterator(iterator) : createObjectIterator(coll);\n}\nmodule.exports = exports['default'];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = once;\nfunction once(fn) {\n return function () {\n if (fn === null) return;\n var callFn = fn;\n fn = null;\n callFn.apply(this, arguments);\n };\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = onlyOnce;\nfunction onlyOnce(fn) {\n return function () {\n if (fn === null) throw new Error(\"Callback was already called.\");\n var callFn = fn;\n fn = null;\n callFn.apply(this, arguments);\n };\n}\nmodule.exports = exports[\"default\"];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.hasNextTick = exports.hasSetImmediate = undefined;\nexports.fallback = fallback;\nexports.wrap = wrap;\n\nvar _slice = require('./slice');\n\nvar _slice2 = _interopRequireDefault(_slice);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar hasSetImmediate = exports.hasSetImmediate = typeof setImmediate === 'function' && setImmediate;\nvar hasNextTick = exports.hasNextTick = typeof process === 'object' && typeof process.nextTick === 'function';\n\nfunction fallback(fn) {\n setTimeout(fn, 0);\n}\n\nfunction wrap(defer) {\n return function (fn /*, ...args*/) {\n var args = (0, _slice2.default)(arguments, 1);\n defer(function () {\n fn.apply(null, args);\n });\n };\n}\n\nvar _defer;\n\nif (hasSetImmediate) {\n _defer = setImmediate;\n} else if (hasNextTick) {\n _defer = process.nextTick;\n} else {\n _defer = fallback;\n}\n\nexports.default = wrap(_defer);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = slice;\nfunction slice(arrayLike, start) {\n start = start | 0;\n var newLen = Math.max(arrayLike.length - start, 0);\n var newArr = Array(newLen);\n for (var idx = 0; idx < newLen; idx++) {\n newArr[idx] = arrayLike[start + idx];\n }\n return newArr;\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = _withoutIndex;\nfunction _withoutIndex(iteratee) {\n return function (value, index, callback) {\n return iteratee(value, callback);\n };\n}\nmodule.exports = exports[\"default\"];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isAsync = undefined;\n\nvar _asyncify = require('../asyncify');\n\nvar _asyncify2 = _interopRequireDefault(_asyncify);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar supportsSymbol = typeof Symbol === 'function';\n\nfunction isAsync(fn) {\n return supportsSymbol && fn[Symbol.toStringTag] === 'AsyncFunction';\n}\n\nfunction wrapAsync(asyncFn) {\n return isAsync(asyncFn) ? (0, _asyncify2.default)(asyncFn) : asyncFn;\n}\n\nexports.default = wrapAsync;\nexports.isAsync = isAsync;","/*! https://mths.be/base64 v1.0.0 by @mathias | MIT license */\n;(function(root) {\n\n\t// Detect free variables `exports`.\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`.\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code, and use\n\t// it as `root`.\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar InvalidCharacterError = function(message) {\n\t\tthis.message = message;\n\t};\n\tInvalidCharacterError.prototype = new Error;\n\tInvalidCharacterError.prototype.name = 'InvalidCharacterError';\n\n\tvar error = function(message) {\n\t\t// Note: the error messages used throughout this file match those used by\n\t\t// the native `atob`/`btoa` implementation in Chromium.\n\t\tthrow new InvalidCharacterError(message);\n\t};\n\n\tvar TABLE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\t// http://whatwg.org/html/common-microsyntaxes.html#space-character\n\tvar REGEX_SPACE_CHARACTERS = /[\\t\\n\\f\\r ]/g;\n\n\t// `decode` is designed to be fully compatible with `atob` as described in the\n\t// HTML Standard. http://whatwg.org/html/webappapis.html#dom-windowbase64-atob\n\t// The optimized base64-decoding algorithm used is based on @atk’s excellent\n\t// implementation. https://gist.github.com/atk/1020396\n\tvar decode = function(input) {\n\t\tinput = String(input)\n\t\t\t.replace(REGEX_SPACE_CHARACTERS, '');\n\t\tvar length = input.length;\n\t\tif (length % 4 == 0) {\n\t\t\tinput = input.replace(/==?$/, '');\n\t\t\tlength = input.length;\n\t\t}\n\t\tif (\n\t\t\tlength % 4 == 1 ||\n\t\t\t// http://whatwg.org/C#alphanumeric-ascii-characters\n\t\t\t/[^+a-zA-Z0-9/]/.test(input)\n\t\t) {\n\t\t\terror(\n\t\t\t\t'Invalid character: the string to be decoded is not correctly encoded.'\n\t\t\t);\n\t\t}\n\t\tvar bitCounter = 0;\n\t\tvar bitStorage;\n\t\tvar buffer;\n\t\tvar output = '';\n\t\tvar position = -1;\n\t\twhile (++position < length) {\n\t\t\tbuffer = TABLE.indexOf(input.charAt(position));\n\t\t\tbitStorage = bitCounter % 4 ? bitStorage * 64 + buffer : buffer;\n\t\t\t// Unless this is the first of a group of 4 characters…\n\t\t\tif (bitCounter++ % 4) {\n\t\t\t\t// …convert the first 8 bits to a single ASCII character.\n\t\t\t\toutput += String.fromCharCode(\n\t\t\t\t\t0xFF & bitStorage >> (-2 * bitCounter & 6)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t};\n\n\t// `encode` is designed to be fully compatible with `btoa` as described in the\n\t// HTML Standard: http://whatwg.org/html/webappapis.html#dom-windowbase64-btoa\n\tvar encode = function(input) {\n\t\tinput = String(input);\n\t\tif (/[^\\0-\\xFF]/.test(input)) {\n\t\t\t// Note: no need to special-case astral symbols here, as surrogates are\n\t\t\t// matched, and the input is supposed to only contain ASCII anyway.\n\t\t\terror(\n\t\t\t\t'The string to be encoded contains characters outside of the ' +\n\t\t\t\t'Latin1 range.'\n\t\t\t);\n\t\t}\n\t\tvar padding = input.length % 3;\n\t\tvar output = '';\n\t\tvar position = -1;\n\t\tvar a;\n\t\tvar b;\n\t\tvar c;\n\t\tvar buffer;\n\t\t// Make sure any padding is handled outside of the loop.\n\t\tvar length = input.length - padding;\n\n\t\twhile (++position < length) {\n\t\t\t// Read three bytes, i.e. 24 bits.\n\t\t\ta = input.charCodeAt(position) << 16;\n\t\t\tb = input.charCodeAt(++position) << 8;\n\t\t\tc = input.charCodeAt(++position);\n\t\t\tbuffer = a + b + c;\n\t\t\t// Turn the 24 bits into four chunks of 6 bits each, and append the\n\t\t\t// matching character for each of them to the output.\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 18 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer >> 12 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer >> 6 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer & 0x3F)\n\t\t\t);\n\t\t}\n\n\t\tif (padding == 2) {\n\t\t\ta = input.charCodeAt(position) << 8;\n\t\t\tb = input.charCodeAt(++position);\n\t\t\tbuffer = a + b;\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 10) +\n\t\t\t\tTABLE.charAt((buffer >> 4) & 0x3F) +\n\t\t\t\tTABLE.charAt((buffer << 2) & 0x3F) +\n\t\t\t\t'='\n\t\t\t);\n\t\t} else if (padding == 1) {\n\t\t\tbuffer = input.charCodeAt(position);\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 2) +\n\t\t\t\tTABLE.charAt((buffer << 4) & 0x3F) +\n\t\t\t\t'=='\n\t\t\t);\n\t\t}\n\n\t\treturn output;\n\t};\n\n\tvar base64 = {\n\t\t'encode': encode,\n\t\t'decode': decode,\n\t\t'version': '1.0.0'\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn base64;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = base64;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (var key in base64) {\n\t\t\t\tbase64.hasOwnProperty(key) && (freeExports[key] = base64[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.base64 = base64;\n\t}\n\n}(this));\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","const conversions = require('./conversions');\nconst route = require('./route');\n\nconst convert = {};\n\nconst models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\tconst result = fn(args);\n\n\t\t// We're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (let len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(fromModel => {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tconst routes = route(fromModel);\n\tconst routeModels = Object.keys(routes);\n\n\trouteModels.forEach(toModel => {\n\t\tconst fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","const conversions = require('./conversions');\n\n/*\n\tThis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tconst graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tconst models = Object.keys(conversions);\n\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tconst graph = buildGraph();\n\tconst queue = [fromModel]; // Unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tconst current = queue.pop();\n\t\tconst adjacents = Object.keys(conversions[current]);\n\n\t\tfor (let len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tconst adjacent = adjacents[i];\n\t\t\tconst node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tconst path = [graph[toModel].parent, toModel];\n\tlet fn = conversions[graph[toModel].parent][toModel];\n\n\tlet cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tconst graph = deriveBFS(fromModel);\n\tconst conversion = {};\n\n\tconst models = Object.keys(graph);\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tconst toModel = models[i];\n\t\tconst node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// No possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","/* MIT license */\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","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","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}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = hyphenateProperty;\n\nvar _hyphenateStyleName = require(\"hyphenate-style-name\");\n\nvar _hyphenateStyleName2 = _interopRequireDefault(_hyphenateStyleName);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction hyphenateProperty(property) {\n return (0, _hyphenateStyleName2[\"default\"])(property);\n}","\"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}","'use strict';\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp('(' + token + ')|([^%]+?)', 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn [decodeURIComponent(components.join(''))];\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher) || [];\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher) || [];\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n","'use strict';\n\nmodule.exports = string => {\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","'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","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\n\n\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\n\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\n\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","/**\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;","/**\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;","'use strict';\nmodule.exports = function (obj, predicate) {\n\tvar ret = {};\n\tvar keys = Object.keys(obj);\n\tvar isArr = Array.isArray(predicate);\n\n\tfor (var i = 0; i < keys.length; i++) {\n\t\tvar key = keys[i];\n\t\tvar val = obj[key];\n\n\t\tif (isArr ? predicate.indexOf(key) !== -1 : predicate(key, val, obj)) {\n\t\t\tret[key] = val;\n\t\t}\n\t}\n\n\treturn ret;\n};\n","'use strict';\n\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","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'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","/* eslint-disable no-var, prefer-template */\nvar uppercasePattern = /[A-Z]/g\nvar msPattern = /^ms-/\nvar cache = {}\n\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase()\n}\n\nfunction hyphenateStyleName(name) {\n if (cache.hasOwnProperty(name)) {\n return cache[name]\n }\n\n var hName = name.replace(uppercasePattern, toHyphenLower)\n return (cache[name] = msPattern.test(hName) ? '-' + hName : hName)\n}\n\nexport default hyphenateStyleName\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\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}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = addNewValuesOnly;\nfunction addIfNew(list, value) {\n if (list.indexOf(value) === -1) {\n list.push(value);\n }\n}\n\nfunction addNewValuesOnly(list, values) {\n if (Array.isArray(values)) {\n for (var i = 0, len = values.length; i < len; ++i) {\n addIfNew(list, values[i]);\n }\n } else {\n addIfNew(list, values);\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = 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 = isObject;\nfunction isObject(value) {\n return value instanceof Object && !Array.isArray(value);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = prefixProperty;\n\nvar _capitalizeString = require('./capitalizeString');\n\nvar _capitalizeString2 = _interopRequireDefault(_capitalizeString);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction prefixProperty(prefixProperties, property, style) {\n var requiredPrefixes = prefixProperties[property];\n\n if (requiredPrefixes && style.hasOwnProperty(property)) {\n var capitalizedProperty = (0, _capitalizeString2.default)(property);\n\n for (var i = 0; i < requiredPrefixes.length; ++i) {\n var prefixedProperty = requiredPrefixes[i] + capitalizedProperty;\n\n if (!style[prefixedProperty]) {\n style[prefixedProperty] = style[property];\n }\n }\n }\n\n return style;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = prefixValue;\nfunction prefixValue(plugins, property, value, style, metaData) {\n for (var i = 0, len = plugins.length; i < len; ++i) {\n var processedValue = plugins[i](property, value, style, metaData);\n\n // we can stop processing if a value is returned\n // as all plugin criteria are unique\n if (processedValue) {\n return processedValue;\n }\n }\n}","'use strict';\n\nmodule.exports = value => {\n\tif (Object.prototype.toString.call(value) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn prototype === null || prototype === Object.prototype;\n};\n","/*!\n * jQuery JavaScript Library v3.7.1\n * https://jquery.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2023-08-28T13:37Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket trac-14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n\t\t// Support: Chrome <=57, Firefox <=52\n\t\t// In some browsers, typeof returns \"function\" for HTML elements\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\t\t// We don't want to classify *any* DOM node as a function.\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\n\t\t\ttypeof obj.item !== \"function\";\n\t};\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar version = \"3.7.1\",\n\n\trhtmlSuffix = /HTML$/i,\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\n\t// Retrieve the text value of an array of DOM nodes\n\ttext: function( elem ) {\n\t\tvar node,\n\t\t\tret = \"\",\n\t\t\ti = 0,\n\t\t\tnodeType = elem.nodeType;\n\n\t\tif ( !nodeType ) {\n\n\t\t\t// If no nodeType, this is expected to be an array\n\t\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t\t// Do not traverse comment nodes\n\t\t\t\tret += jQuery.text( node );\n\t\t\t}\n\t\t}\n\t\tif ( nodeType === 1 || nodeType === 11 ) {\n\t\t\treturn elem.textContent;\n\t\t}\n\t\tif ( nodeType === 9 ) {\n\t\t\treturn elem.documentElement.textContent;\n\t\t}\n\t\tif ( nodeType === 3 || nodeType === 4 ) {\n\t\t\treturn elem.nodeValue;\n\t\t}\n\n\t\t// Do not include comment or processing instruction nodes\n\n\t\treturn ret;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\tisXMLDoc: function( elem ) {\n\t\tvar namespace = elem && elem.namespaceURI,\n\t\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t\t// Assume HTML when documentElement doesn't yet exist, such as inside\n\t\t// document fragments.\n\t\treturn !rhtmlSuffix.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\n\n\nfunction nodeName( elem, name ) {\n\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n}\nvar pop = arr.pop;\n\n\nvar sort = arr.sort;\n\n\nvar splice = arr.splice;\n\n\nvar whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\";\n\n\nvar rtrimCSS = new RegExp(\n\t\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\",\n\t\"g\"\n);\n\n\n\n\n// Note: an element does not contain itself\njQuery.contains = function( a, b ) {\n\tvar bup = b && b.parentNode;\n\n\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\n\t\t// Support: IE 9 - 11+\n\t\t// IE doesn't have `contains` on SVG.\n\t\ta.contains ?\n\t\t\ta.contains( bup ) :\n\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t) );\n};\n\n\n\n\n// CSS string/identifier serialization\n// https://drafts.csswg.org/cssom/#common-serializing-idioms\nvar rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g;\n\nfunction fcssescape( ch, asCodePoint ) {\n\tif ( asCodePoint ) {\n\n\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\tif ( ch === \"\\0\" ) {\n\t\t\treturn \"\\uFFFD\";\n\t\t}\n\n\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\treturn ch.slice( 0, -1 ) + \"\\\\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t}\n\n\t// Other potentially-special ASCII characters get backslash-escaped\n\treturn \"\\\\\" + ch;\n}\n\njQuery.escapeSelector = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\n\n\n\nvar preferredDoc = document,\n\tpushNative = push;\n\n( function() {\n\nvar i,\n\tExpr,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\tpush = pushNative,\n\n\t// Local document vars\n\tdocument,\n\tdocumentElement,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\tmatches,\n\n\t// Instance-specific data\n\texpando = jQuery.expando,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|\" +\n\t\t\"loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: https://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trleadingCombinator = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" +\n\t\twhitespace + \"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\tID: new RegExp( \"^#(\" + identifier + \")\" ),\n\t\tCLASS: new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\tTAG: new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\tATTR: new RegExp( \"^\" + attributes ),\n\t\tPSEUDO: new RegExp( \"^\" + pseudos ),\n\t\tCHILD: new RegExp(\n\t\t\t\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\tbool: new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\tneedsContext: new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// https://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\tif ( nonHex ) {\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\treturn nonHex;\n\t\t}\n\n\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t// Support: IE <=11+\n\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t// surrogate pair\n\t\treturn high < 0 ?\n\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// Used for iframes; see `setDocument`.\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE/Edge.\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && nodeName( elem, \"fieldset\" );\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android <=4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = {\n\t\tapply: function( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t},\n\t\tcall: function( target ) {\n\t\t\tpushNative.apply( target, slice.call( arguments, 1 ) );\n\t\t}\n\t};\n}\n\nfunction find( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE 9 only\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tpush.call( results, elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE 9 only\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tfind.contains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tpush.call( results, elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && context.getElementsByClassName ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( !nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rleadingCombinator.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when\n\t\t\t\t\t// strict-comparing two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( newContext != context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = jQuery.escapeSelector( nid );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrimCSS, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties\n\t\t// (see https://github.com/jquery/sizzle/issues/157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by jQuery selector module\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\treturn nodeName( elem, \"input\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\treturn ( nodeName( elem, \"input\" ) || nodeName( elem, \"button\" ) ) &&\n\t\t\telem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11+\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a jQuery selector context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [node] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nfunction setDocument( node ) {\n\tvar subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocumentElement = document.documentElement;\n\tdocumentIsHTML = !jQuery.isXMLDoc( document );\n\n\t// Support: iOS 7 only, IE 9 - 11+\n\t// Older browsers didn't support unprefixed `matches`.\n\tmatches = documentElement.matches ||\n\t\tdocumentElement.webkitMatchesSelector ||\n\t\tdocumentElement.msMatchesSelector;\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors\n\t// (see trac-13936).\n\t// Limit the fix to IE & Edge Legacy; despite Edge 15+ implementing `matches`,\n\t// all IE 9+ and Edge Legacy versions implement `msMatchesSelector` as well.\n\tif ( documentElement.msMatchesSelector &&\n\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tpreferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t\tsubWindow.addEventListener( \"unload\", unloadHandler );\n\t}\n\n\t// Support: IE <10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocumentElement.appendChild( el ).id = jQuery.expando;\n\t\treturn !document.getElementsByName ||\n\t\t\t!document.getElementsByName( jQuery.expando ).length;\n\t} );\n\n\t// Support: IE 9 only\n\t// Check to see if it's possible to do matchesSelector\n\t// on a disconnected node.\n\tsupport.disconnectedMatch = assert( function( el ) {\n\t\treturn matches.call( el, \"*\" );\n\t} );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// IE/Edge don't support the :scope pseudo-class.\n\tsupport.scope = assert( function() {\n\t\treturn document.querySelectorAll( \":scope\" );\n\t} );\n\n\t// Support: Chrome 105 - 111 only, Safari 15.4 - 16.3 only\n\t// Make sure the `:has()` argument is parsed unforgivingly.\n\t// We include `*` in the test to detect buggy implementations that are\n\t// _selectively_ forgiving (specifically when the list includes at least\n\t// one valid selector).\n\t// Note that we treat complete lack of support for `:has()` as if it were\n\t// spec-compliant support, which is fine because use of `:has()` in such\n\t// environments will fail in the qSA path and fall back to jQuery traversal\n\t// anyway.\n\tsupport.cssHas = assert( function() {\n\t\ttry {\n\t\t\tdocument.querySelector( \":has(*,:jqfake)\" );\n\t\t\treturn false;\n\t\t} catch ( e ) {\n\t\t\treturn true;\n\t\t}\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter.ID = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find.ID = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter.ID = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find.ID = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find.TAG = function( tag, context ) {\n\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t// DocumentFragment nodes don't have gEBTN\n\t\t} else {\n\t\t\treturn context.querySelectorAll( tag );\n\t\t}\n\t};\n\n\t// Class\n\tExpr.find.CLASS = function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\trbuggyQSA = [];\n\n\t// Build QSA regex\n\t// Regex strategy adopted from Diego Perini\n\tassert( function( el ) {\n\n\t\tvar input;\n\n\t\tdocumentElement.appendChild( el ).innerHTML =\n\t\t\t\"\" +\n\t\t\t\"\";\n\n\t\t// Support: iOS <=7 - 8 only\n\t\t// Boolean attributes and \"value\" are not treated correctly in some XML documents\n\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t}\n\n\t\t// Support: iOS <=7 - 8 only\n\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\trbuggyQSA.push( \"~=\" );\n\t\t}\n\n\t\t// Support: iOS 8 only\n\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t}\n\n\t\t// Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+\n\t\t// In some of the document kinds, these selectors wouldn't work natively.\n\t\t// This is probably OK but for backwards compatibility we want to maintain\n\t\t// handling them through jQuery traversal in jQuery 3.x.\n\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\trbuggyQSA.push( \":checked\" );\n\t\t}\n\n\t\t// Support: Windows 8 Native Apps\n\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\tinput = document.createElement( \"input\" );\n\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t// Support: IE 9 - 11+\n\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t// Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+\n\t\t// In some of the document kinds, these selectors wouldn't work natively.\n\t\t// This is probably OK but for backwards compatibility we want to maintain\n\t\t// handling them through jQuery traversal in jQuery 3.x.\n\t\tdocumentElement.appendChild( el ).disabled = true;\n\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t}\n\n\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t// Adding a temporary attribute to the document before the selection works\n\t\t// around the issue.\n\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\tinput = document.createElement( \"input\" );\n\t\tinput.setAttribute( \"name\", \"\" );\n\t\tel.appendChild( input );\n\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t}\n\t} );\n\n\tif ( !support.cssHas ) {\n\n\t\t// Support: Chrome 105 - 110+, Safari 15.4 - 16.3+\n\t\t// Our regular `try-catch` mechanism fails to detect natively-unsupported\n\t\t// pseudo-classes inside `:has()` (such as `:has(:contains(\"Foo\"))`)\n\t\t// in browsers that parse the `:has()` argument as a forgiving selector list.\n\t\t// https://drafts.csswg.org/selectors/#relational now requires the argument\n\t\t// to be parsed unforgivingly, but browsers have not yet fully adjusted.\n\t\trbuggyQSA.push( \":has\" );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = function( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a === document || a.ownerDocument == preferredDoc &&\n\t\t\t\tfind.contains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b === document || b.ownerDocument == preferredDoc &&\n\t\t\t\tfind.contains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t};\n\n\treturn document;\n}\n\nfind.matches = function( expr, elements ) {\n\treturn find( expr, null, null, elements );\n};\n\nfind.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn find( expr, document, null, [ elem ] ).length > 0;\n};\n\nfind.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn jQuery.contains( context, elem );\n};\n\n\nfind.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (see trac-13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\tif ( val !== undefined ) {\n\t\treturn val;\n\t}\n\n\treturn elem.getAttribute( name );\n};\n\nfind.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\njQuery.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\t//\n\t// Support: Android <=4.0+\n\t// Testing for detecting duplicates is unpredictable so instead assume we can't\n\t// depend on duplicate detection in all browsers without a stable sort.\n\thasDuplicate = !support.sortStable;\n\tsortInput = !support.sortStable && slice.call( results, 0 );\n\tsort.call( results, sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tsplice.call( results, duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\njQuery.fn.uniqueSort = function() {\n\treturn this.pushStack( jQuery.uniqueSort( slice.apply( this ) ) );\n};\n\nExpr = jQuery.expr = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\tATTR: function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] || match[ 5 ] || \"\" )\n\t\t\t\t.replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\tCHILD: function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tfind.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" )\n\t\t\t\t);\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tfind.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\tPSEUDO: function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr.CHILD.test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\tTAG: function( nodeNameSelector ) {\n\t\t\tvar expectedNodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn nodeName( elem, expectedNodeName );\n\t\t\t\t};\n\t\t},\n\n\t\tCLASS: function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace + \")\" + className +\n\t\t\t\t\t\"(\" + whitespace + \"|$)\" ) ) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\tATTR: function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = find.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\tif ( operator === \"=\" ) {\n\t\t\t\t\treturn result === check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"!=\" ) {\n\t\t\t\t\treturn result !== check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"^=\" ) {\n\t\t\t\t\treturn check && result.indexOf( check ) === 0;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"*=\" ) {\n\t\t\t\t\treturn check && result.indexOf( check ) > -1;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"$=\" ) {\n\t\t\t\t\treturn check && result.slice( -check.length ) === check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"~=\" ) {\n\t\t\t\t\treturn ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" )\n\t\t\t\t\t\t.indexOf( check ) > -1;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"|=\" ) {\n\t\t\t\t\treturn result === check || result.slice( 0, check.length + 1 ) === check + \"-\";\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t};\n\t\t},\n\n\t\tCHILD: function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnodeName( node, name ) :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\t\t\t\t\t\t\touterCache = parent[ expando ] || ( parent[ expando ] = {} );\n\t\t\t\t\t\t\tcache = outerCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\touterCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\t\t\t\t\t\t\t\tcache = outerCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnodeName( node, name ) :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\t\t\t\t\t\t\t\t\t\t\touterCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\tPSEUDO: function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// https://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tfind.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as jQuery does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf.call( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\tnot: markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrimCSS, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element\n\t\t\t\t\t// (see https://github.com/jquery/sizzle/issues/299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\thas: markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn find( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\tcontains: markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || jQuery.text( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// https://www.w3.org/TR/selectors/#lang-pseudo\n\t\tlang: markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tfind.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\ttarget: function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\troot: function( elem ) {\n\t\t\treturn elem === documentElement;\n\t\t},\n\n\t\tfocus: function( elem ) {\n\t\t\treturn elem === safeActiveElement() &&\n\t\t\t\tdocument.hasFocus() &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\tenabled: createDisabledPseudo( false ),\n\t\tdisabled: createDisabledPseudo( true ),\n\n\t\tchecked: function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// https://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\treturn ( nodeName( elem, \"input\" ) && !!elem.checked ) ||\n\t\t\t\t( nodeName( elem, \"option\" ) && !!elem.selected );\n\t\t},\n\n\t\tselected: function( elem ) {\n\n\t\t\t// Support: IE <=11+\n\t\t\t// Accessing the selectedIndex property\n\t\t\t// forces the browser to treat the default option as\n\t\t\t// selected when in an optgroup.\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\tempty: function( elem ) {\n\n\t\t\t// https://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\tparent: function( elem ) {\n\t\t\treturn !Expr.pseudos.empty( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\theader: function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\tinput: function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\tbutton: function( elem ) {\n\t\t\treturn nodeName( elem, \"input\" ) && elem.type === \"button\" ||\n\t\t\t\tnodeName( elem, \"button\" );\n\t\t},\n\n\t\ttext: function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn nodeName( elem, \"input\" ) && elem.type === \"text\" &&\n\n\t\t\t\t// Support: IE <10 only\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear\n\t\t\t\t// with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\tfirst: createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\tlast: createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\teq: createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\teven: createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\todd: createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\tlt: createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i;\n\n\t\t\tif ( argument < 0 ) {\n\t\t\t\ti = argument + length;\n\t\t\t} else if ( argument > length ) {\n\t\t\t\ti = length;\n\t\t\t} else {\n\t\t\t\ti = argument;\n\t\t\t}\n\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\tgt: createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos.nth = Expr.pseudos.eq;\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\nfunction tokenize( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rleadingCombinator.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrimCSS, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\tif ( parseOnly ) {\n\t\treturn soFar.length;\n\t}\n\n\treturn soFar ?\n\t\tfind.error( selector ) :\n\n\t\t// Cache the tokens\n\t\ttokenCache( selector, groups ).slice( 0 );\n}\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\tif ( skip && nodeName( elem, skip ) ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = outerCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\touterCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tfind( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem, matcherOut,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed ||\n\t\t\t\tmultipleContexts( selector || \"*\",\n\t\t\t\t\tcontext.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems;\n\n\t\tif ( matcher ) {\n\n\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter\n\t\t\t// or preexisting results,\n\t\t\tmatcherOut = postFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t[] :\n\n\t\t\t\t// ...otherwise use results directly\n\t\t\t\tresults;\n\n\t\t\t// Find primary matches\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t} else {\n\t\t\tmatcherOut = matcherIn;\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf.call( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf.call( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tvar ret = ( !leadingRelative && ( xml || context != outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element\n\t\t\t// (see https://github.com/jquery/sizzle/issues/299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 )\n\t\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrimCSS, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find.TAG( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: iOS <=7 - 9 only\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching\n\t\t\t// elements by id. (see trac-14142)\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tpush.call( results, elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tjQuery.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\nfunction compile( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n}\n\n/**\n * A low-level selection function that works with jQuery's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with jQuery selector compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nfunction select( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find.ID(\n\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\tcontext\n\t\t\t) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr.needsContext.test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) &&\n\t\t\t\t\t\ttestContext( context.parentNode ) || context\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n}\n\n// One-time assignments\n\n// Support: Android <=4.0 - 4.1+\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Android <=4.0 - 4.1+\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\njQuery.find = find;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.unique = jQuery.uniqueSort;\n\n// These have always been private, but they used to be documented as part of\n// Sizzle so let's maintain them for now for backwards compatibility purposes.\nfind.compile = compile;\nfind.select = select;\nfind.setDocument = setDocument;\nfind.tokenize = tokenize;\n\nfind.escape = jQuery.escapeSelector;\nfind.getText = jQuery.text;\nfind.isXML = jQuery.isXMLDoc;\nfind.selectors = jQuery.expr;\nfind.support = jQuery.support;\nfind.uniqueSort = jQuery.uniqueSort;\n\n\t/* eslint-enable */\n\n} )();\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over to avoid XSS via location.hash (trac-9521)\n\t// Strict HTML recognition (trac-11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to jQuery#find\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.error );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the error, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getErrorHook ) {\n\t\t\t\t\t\t\t\t\tprocess.error = jQuery.Deferred.getErrorHook();\n\n\t\t\t\t\t\t\t\t// The deprecated alias of the above. While the name suggests\n\t\t\t\t\t\t\t\t// returning the stack, not an error instance, jQuery just passes\n\t\t\t\t\t\t\t\t// it directly to `console.warn` so both will work; an instance\n\t\t\t\t\t\t\t\t// just better cooperates with source maps.\n\t\t\t\t\t\t\t\t} else if ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.error = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the primary Deferred\n\t\t\tprimary = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tprimary.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( primary.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn primary.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );\n\t\t}\n\n\t\treturn primary.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\n// If `jQuery.Deferred.getErrorHook` is defined, `asyncError` is an error\n// captured before the async barrier to get the original error cause\n// which may otherwise be hidden.\njQuery.Deferred.exceptionHook = function( error, asyncError ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message,\n\t\t\terror.stack, asyncError );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See trac-6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\t\tvalue :\n\t\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (trac-9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see trac-8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (trac-14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (trac-11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (trac-14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces \";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (trac-13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting or other required elements.\n\tthead: [ 1, \"\", \"
\" ],\n\tcol: [ 2, \"\", \"
\" ],\n\ttr: [ 2, \"\", \"
\" ],\n\ttd: [ 3, \"\", \"
\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (trac-15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (trac-12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (trac-13208)\n\t\t\t\t// Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (trac-13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", true );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, isSetup ) {\n\n\t// Missing `isSetup` indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !isSetup ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\tif ( !saved ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tdataPriv.set( this, type, false );\n\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering\n\t\t\t\t// the native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, jQuery.event.trigger(\n\t\t\t\t\tsaved[ 0 ],\n\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\tthis\n\t\t\t\t) );\n\n\t\t\t\t// Abort handling of the native event by all jQuery handlers while allowing\n\t\t\t\t// native handlers on the same element to run. On target, this is achieved\n\t\t\t\t// by stopping immediate propagation just on the jQuery event. However,\n\t\t\t\t// the native event is re-wrapped by a jQuery one on each level of the\n\t\t\t\t// propagation so the only way to stop it for jQuery is to stop it for\n\t\t\t\t// everyone via native `stopPropagation()`. This is not a problem for\n\t\t\t\t// focus/blur which don't bubble, but it does also stop click on checkboxes\n\t\t\t\t// and radios. We accept this limitation.\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tevent.isImmediatePropagationStopped = returnTrue;\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (trac-504, trac-13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\twhich: true\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\n\tfunction focusMappedHandler( nativeEvent ) {\n\t\tif ( document.documentMode ) {\n\n\t\t\t// Support: IE 11+\n\t\t\t// Attach a single focusin/focusout handler on the document while someone wants\n\t\t\t// focus/blur. This is because the former are synchronous in IE while the latter\n\t\t\t// are async. In other browsers, all those handlers are invoked synchronously.\n\n\t\t\t// `handle` from private data would already wrap the event, but we need\n\t\t\t// to change the `type` here.\n\t\t\tvar handle = dataPriv.get( this, \"handle\" ),\n\t\t\t\tevent = jQuery.event.fix( nativeEvent );\n\t\t\tevent.type = nativeEvent.type === \"focusin\" ? \"focus\" : \"blur\";\n\t\t\tevent.isSimulated = true;\n\n\t\t\t// First, handle focusin/focusout\n\t\t\thandle( nativeEvent );\n\n\t\t\t// ...then, handle focus/blur\n\t\t\t//\n\t\t\t// focus/blur don't bubble while focusin/focusout do; simulate the former by only\n\t\t\t// invoking the handler at the lower level.\n\t\t\tif ( event.target === event.currentTarget ) {\n\n\t\t\t\t// The setup part calls `leverageNative`, which, in turn, calls\n\t\t\t\t// `jQuery.event.add`, so event handle will already have been set\n\t\t\t\t// by this point.\n\t\t\t\thandle( event );\n\t\t\t}\n\t\t} else {\n\n\t\t\t// For non-IE browsers, attach a single capturing handler on the document\n\t\t\t// while someone wants focusin/focusout.\n\t\t\tjQuery.event.simulate( delegateType, nativeEvent.target,\n\t\t\t\tjQuery.event.fix( nativeEvent ) );\n\t\t}\n\t}\n\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\tvar attaches;\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, true );\n\n\t\t\tif ( document.documentMode ) {\n\n\t\t\t\t// Support: IE 9 - 11+\n\t\t\t\t// We use the same native handler for focusin & focus (and focusout & blur)\n\t\t\t\t// so we need to coordinate setup & teardown parts between those events.\n\t\t\t\t// Use `delegateType` as the key as `type` is already used by `leverageNative`.\n\t\t\t\tattaches = dataPriv.get( this, delegateType );\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tthis.addEventListener( delegateType, focusMappedHandler );\n\t\t\t\t}\n\t\t\t\tdataPriv.set( this, delegateType, ( attaches || 0 ) + 1 );\n\t\t\t} else {\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\tteardown: function() {\n\t\t\tvar attaches;\n\n\t\t\tif ( document.documentMode ) {\n\t\t\t\tattaches = dataPriv.get( this, delegateType ) - 1;\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tthis.removeEventListener( delegateType, focusMappedHandler );\n\t\t\t\t\tdataPriv.remove( this, delegateType );\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.set( this, delegateType, attaches );\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Return false to indicate standard teardown should be applied\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\n\t\t// Suppress native focus or blur if we're currently inside\n\t\t// a leveraged native-event stack\n\t\t_default: function( event ) {\n\t\t\treturn dataPriv.get( event.target, type );\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n\n\t// Support: Firefox <=44\n\t// Firefox doesn't have focus(in | out) events\n\t// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n\t//\n\t// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n\t// focus(in | out) events fire after focus & blur events,\n\t// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n\t// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\n\t//\n\t// Support: IE 9 - 11+\n\t// To preserve relative focusin/focus & focusout/blur event order guaranteed on the 3.x branch,\n\t// attach a single handler for both events in IE.\n\tjQuery.event.special[ delegateType ] = {\n\t\tsetup: function() {\n\n\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\tdataHolder = document.documentMode ? this : doc,\n\t\t\t\tattaches = dataPriv.get( dataHolder, delegateType );\n\n\t\t\t// Support: IE 9 - 11+\n\t\t\t// We use the same native handler for focusin & focus (and focusout & blur)\n\t\t\t// so we need to coordinate setup & teardown parts between those events.\n\t\t\t// Use `delegateType` as the key as `type` is already used by `leverageNative`.\n\t\t\tif ( !attaches ) {\n\t\t\t\tif ( document.documentMode ) {\n\t\t\t\t\tthis.addEventListener( delegateType, focusMappedHandler );\n\t\t\t\t} else {\n\t\t\t\t\tdoc.addEventListener( type, focusMappedHandler, true );\n\t\t\t\t}\n\t\t\t}\n\t\t\tdataPriv.set( dataHolder, delegateType, ( attaches || 0 ) + 1 );\n\t\t},\n\t\tteardown: function() {\n\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\tdataHolder = document.documentMode ? this : doc,\n\t\t\t\tattaches = dataPriv.get( dataHolder, delegateType ) - 1;\n\n\t\t\tif ( !attaches ) {\n\t\t\t\tif ( document.documentMode ) {\n\t\t\t\t\tthis.removeEventListener( delegateType, focusMappedHandler );\n\t\t\t\t} else {\n\t\t\t\t\tdoc.removeEventListener( type, focusMappedHandler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( dataHolder, delegateType );\n\t\t\t} else {\n\t\t\t\tdataPriv.set( dataHolder, delegateType, attaches );\n\t\t\t}\n\t\t}\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (trac-8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Re-enable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Unwrap a CDATA section containing script contents. This shouldn't be\n\t\t\t\t\t\t\t// needed as in XML documents they're already not visible when\n\t\t\t\t\t\t\t// inspecting element contents and in HTML documents they have no\n\t\t\t\t\t\t\t// meaning but we're preserving that logic for backwards compatibility.\n\t\t\t\t\t\t\t// This will be removed completely in 4.0. See gh-4904.\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew jQuery#find here for performance reasons:\n\t\t\t// https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar rcustomProp = /^--/;\n\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (trac-15098, trac-14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (trac-8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\t//\n\t\t// Support: Firefox 70+\n\t\t// Only Firefox includes border widths\n\t\t// in computed dimensions. (gh-4529)\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n\t\t\t\ttr.style.cssText = \"box-sizing:content-box;border:1px solid\";\n\n\t\t\t\t// Support: Chrome 86+\n\t\t\t\t// Height set through cssText does not get applied.\n\t\t\t\t// Computed height then comes back as 0.\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\t// Support: Android 8 Chrome 86+\n\t\t\t\t// In our bodyBackground.html iframe,\n\t\t\t\t// display for all div elements is set to \"inline\",\n\t\t\t\t// which causes a problem only in Android 8 Chrome 86.\n\t\t\t\t// Ensuring the div is `display: block`\n\t\t\t\t// gets around this issue.\n\t\t\t\ttrChild.style.display = \"block\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderTopWidth, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\t\tisCustomProp = rcustomProp.test( name ),\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t// .css('filter') (IE 9 only, trac-12537)\n\t// .css('--customProperty) (gh-3144)\n\tif ( computed ) {\n\n\t\t// Support: IE <=9 - 11+\n\t\t// IE only supports `\"float\"` in `getPropertyValue`; in computed styles\n\t\t// it's only available as `\"cssFloat\"`. We no longer modify properties\n\t\t// sent to `.css()` apart from camelCasing, so we need to check both.\n\t\t// Normally, this would create difference in behavior: if\n\t\t// `getPropertyValue` returns an empty string, the value returned\n\t\t// by `.css()` would be `undefined`. This is usually the case for\n\t\t// disconnected elements. However, in IE even disconnected elements\n\t\t// with no styles return `\"none\"` for `getPropertyValue( \"float\" )`\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( isCustomProp && ret ) {\n\n\t\t\t// Support: Firefox 105+, Chrome <=105+\n\t\t\t// Spec requires trimming whitespace for custom properties (gh-4926).\n\t\t\t// Firefox only trims leading whitespace. Chrome just collapses\n\t\t\t// both leading & trailing whitespace to a single space.\n\t\t\t//\n\t\t\t// Fall back to `undefined` if empty string returned.\n\t\t\t// This collapses a missing definition with property defined\n\t\t\t// and set to an empty string but there's no standard API\n\t\t\t// allowing us to differentiate them without a performance penalty\n\t\t\t// and returning `undefined` aligns with older jQuery.\n\t\t\t//\n\t\t\t// rtrimCSS treats U+000D CARRIAGE RETURN and U+000C FORM FEED\n\t\t\t// as whitespace while CSS does not, but this is not a problem\n\t\t\t// because CSS preprocessing replaces them with U+000A LINE FEED\n\t\t\t// (which *is* CSS whitespace)\n\t\t\t// https://www.w3.org/TR/css-syntax-3/#input-preprocessing\n\t\t\tret = ret.replace( rtrimCSS, \"$1\" ) || undefined;\n\t\t}\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0,\n\t\tmarginDelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\t// Count margin delta separately to only add it after scroll gutter adjustment.\n\t\t// This is needed to make negative margins work with `outerHeight( true )` (gh-3982).\n\t\tif ( box === \"margin\" ) {\n\t\t\tmarginDelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta + marginDelta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\tanimationIterationCount: true,\n\t\taspectRatio: true,\n\t\tborderImageSlice: true,\n\t\tcolumnCount: true,\n\t\tflexGrow: true,\n\t\tflexShrink: true,\n\t\tfontWeight: true,\n\t\tgridArea: true,\n\t\tgridColumn: true,\n\t\tgridColumnEnd: true,\n\t\tgridColumnStart: true,\n\t\tgridRow: true,\n\t\tgridRowEnd: true,\n\t\tgridRowStart: true,\n\t\tlineHeight: true,\n\t\topacity: true,\n\t\torder: true,\n\t\torphans: true,\n\t\tscale: true,\n\t\twidows: true,\n\t\tzIndex: true,\n\t\tzoom: true,\n\n\t\t// SVG-related\n\t\tfillOpacity: true,\n\t\tfloodOpacity: true,\n\t\tstopOpacity: true,\n\t\tstrokeMiterlimit: true,\n\t\tstrokeOpacity: true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (trac-7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug trac-9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (trac-7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t} ) :\n\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (trac-12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\n\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// Use proper attribute retrieval (trac-12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classNames, cur, curValue, className, i, finalValue;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + className + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += className + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\tthis.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classNames, cur, curValue, className, i, finalValue;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + className + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + className + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\tthis.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar classNames, className, i, self,\n\t\t\ttype = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\treturn this.each( function() {\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\tself = jQuery( this );\n\n\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\tclassName = classNames[ i ];\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (trac-14686, trac-14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (trac-2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\nvar location = window.location;\n\nvar nonce = { guid: Date.now() };\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml, parserErrorElem;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {}\n\n\tparserErrorElem = xml && xml.getElementsByTagName( \"parsererror\" )[ 0 ];\n\tif ( !xml || parserErrorElem ) {\n\t\tjQuery.error( \"Invalid XML: \" + (\n\t\t\tparserErrorElem ?\n\t\t\t\tjQuery.map( parserErrorElem.childNodes, function( el ) {\n\t\t\t\t\treturn el.textContent;\n\t\t\t\t} ).join( \"\\n\" ) :\n\t\t\t\tdata\n\t\t) );\n\t}\n\treturn xml;\n};\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (trac-9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || Object.create( null ) )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (trac-6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} ).filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} ).map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// trac-7653, trac-8125, trac-8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (trac-10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\noriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes trac-9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (trac-10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket trac-12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (trac-15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// trac-9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script but not if jsonp\n\t\t\tif ( !isSuccess &&\n\t\t\t\tjQuery.inArray( \"script\", s.dataTypes ) > -1 &&\n\t\t\t\tjQuery.inArray( \"json\", s.dataTypes ) < 0 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\n\njQuery._evalUrl = function( url, options, doc ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (trac-11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options, doc );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// trac-1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see trac-8605, trac-14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// trac-14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"