diff --git "a/web-build/static/js/133.507aa947.js.map" "b/web-build/static/js/133.507aa947.js.map" new file mode 100644--- /dev/null +++ "b/web-build/static/js/133.507aa947.js.map" @@ -0,0 +1 @@ +{"version":3,"file":"static/js/133.507aa947.js","mappings":"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","sources":["node_modules/@react-native-community/slider/dist/RNCSliderNativeComponent.web.js","node_modules/@react-native-community/slider/dist/Slider.js","node_modules/@react-native-community/slider/dist/components/StepNumber.js","node_modules/@react-native-community/slider/dist/components/StepsIndicator.js","node_modules/@react-native-community/slider/dist/components/TrackMark.js","node_modules/@react-native-community/slider/dist/index.js","node_modules/@react-native-community/slider/dist/utils/constants.js","node_modules/@react-native-community/slider/dist/utils/styles.js","node_modules/@react-native/assets-registry/registry.js","node_modules/expo-font/src/Font.types.ts","node_modules/expo-font/src/ExpoFontLoader.web.ts","node_modules/expo-asset/src/AssetSourceResolver.ts","node_modules/expo-asset/src/PlatformUtils.web.ts","node_modules/expo-asset/src/AssetSources.ts","node_modules/expo-asset/src/AssetUris.ts","node_modules/expo-asset/src/resolveAssetSource.ts","node_modules/expo-asset/src/Asset.ts","node_modules/expo-asset/src/LocalAssets.web.ts","node_modules/expo-asset/src/ImageAssets.ts","node_modules/expo-asset/src/ExpoAsset.web.ts","node_modules/expo-font/src/FontLoader.web.ts","node_modules/expo-font/src/memory.ts","node_modules/expo-font/src/Font.ts","node_modules/expo-font/src/FontHooks.ts","node_modules/expo-modules-core/src/PermissionsHook.ts","node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","node_modules/expo-modules-core/src/PermissionsInterface.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/environment/browser.web.ts","node_modules/expo-modules-core/src/Platform.ts","node_modules/expo-modules-core/src/errors/CodedError.ts","node_modules/expo-modules-core/src/errors/UnavailabilityError.ts","node_modules/expo-status-bar/src/ExpoStatusBar.tsx","node_modules/react-native-element-dropdown/src/toolkits/index.ts","node_modules/react-native-element-dropdown/src/useDeviceOrientation.ts","node_modules/react-native-element-dropdown/src/components/TextInput/styles.ts","node_modules/react-native-element-dropdown/src/components/TextInput/index.tsx","node_modules/react-native-element-dropdown/src/components/Dropdown/styles.ts","node_modules/react-native-element-dropdown/src/components/Dropdown/index.tsx","node_modules/react-native-element-dropdown/src/components/MultiSelect/styles.ts","node_modules/react-native-element-dropdown/src/components/MultiSelect/index.tsx","node_modules/react-native-element-dropdown/src/components/SelectCountry/styles.ts","node_modules/react-native-element-dropdown/src/components/SelectCountry/index.tsx","node_modules/react-native-web/dist/exports/ActivityIndicator/index.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/Utilities/setAndForwardRef.js","node_modules/react-native-web/dist/vendor/react-native/Animated/createAnimatedComponent.js","node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedFlatList.js","node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedImage.js","node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedScrollView.js","node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedSectionList.js","node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedText.js","node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedView.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedAddition.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedDiffClamp.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedDivision.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedModulo.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedMultiplication.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedSubtraction.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedTracking.js","node_modules/react-native-web/dist/vendor/react-native/Animated/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/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/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/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/Image/index.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/Modal/ModalPortal.js","node_modules/react-native-web/dist/exports/Modal/ModalAnimation.js","node_modules/react-native-web/dist/exports/Modal/ModalContent.js","node_modules/react-native-web/dist/exports/Modal/ModalFocusTrap.js","node_modules/react-native-web/dist/exports/Modal/index.js","node_modules/react-native-web/dist/exports/NativeModules/index.js","node_modules/react-native-web/dist/exports/PixelRatio/index.js","node_modules/react-native-web/dist/exports/Platform/index.js","node_modules/react-native-web/dist/modules/createEventHandle/index.js","node_modules/react-native-web/dist/modules/modality/index.js","node_modules/react-native-web/dist/modules/useEvent/index.js","node_modules/react-native-web/dist/modules/useHover/index.js","node_modules/react-native-web/dist/exports/Pressable/index.js","node_modules/react-native-web/dist/exports/RefreshControl/index.js","node_modules/react-native-web/dist/modules/ScrollResponder/index.js","node_modules/react-native-web/dist/exports/ScrollView/ScrollViewBase.js","node_modules/react-native-web/dist/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/exports/StatusBar/index.js","node_modules/react-native-web/dist/modules/isWebColor/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/modules/multiplyStyleLengthValue/index.js","node_modules/react-native-web/dist/exports/Switch/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/TextInput/index.js","node_modules/react-native-web/dist/exports/TouchableHighlight/index.js","node_modules/react-native-web/dist/exports/TouchableOpacity/index.js","node_modules/react-native-web/dist/exports/TouchableWithoutFeedback/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/exports/createElement/index.js","node_modules/react-native-web/dist/exports/findNodeHandle/index.js","node_modules/react-native-web/dist/exports/processColor/index.js","node_modules/react-native-web/dist/exports/useWindowDimensions/index.js","node_modules/react-native-web/dist/exports/render/index.js","node_modules/react-native-web/dist/exports/unmountComponentAtNode/index.js","node_modules/react-native-web/dist/exports/AccessibilityInfo/index.js","node_modules/react-native-web/dist/exports/Alert/index.js","node_modules/react-native-web/dist/exports/Appearance/index.js","node_modules/react-native-web/dist/exports/AppRegistry/AppContainer.js","node_modules/react-native-web/dist/exports/AppRegistry/index.js","node_modules/react-native-web/dist/exports/AppRegistry/renderApplication.js","node_modules/react-native-web/dist/exports/AppState/index.js","node_modules/react-native-web/dist/exports/BackHandler/index.js","node_modules/react-native-web/dist/exports/Clipboard/index.js","node_modules/react-native-web/dist/exports/DeviceInfo/index.js","node_modules/react-native-web/dist/vendor/react-native/LayoutAnimation/index.js","node_modules/react-native-web/dist/exports/LayoutAnimation/index.js","node_modules/react-native-web/dist/exports/Linking/index.js","node_modules/react-native-web/dist/exports/NativeEventEmitter/index.js","node_modules/react-native-web/dist/vendor/react-native/TouchHistoryMath/index.js","node_modules/react-native-web/dist/vendor/react-native/PanResponder/index.js","node_modules/react-native-web/dist/exports/PanResponder/index.js","node_modules/react-native-web/dist/exports/Share/index.js","node_modules/react-native-web/dist/exports/Vibration/index.js","node_modules/react-native-web/dist/exports/Button/index.js","node_modules/react-native-web/dist/exports/CheckBox/index.js","node_modules/react-native-web/dist/exports/ImageBackground/index.js","node_modules/react-native-web/dist/exports/KeyboardAvoidingView/index.js","node_modules/react-native-web/dist/exports/Picker/index.js","node_modules/react-native-web/dist/exports/Picker/PickerItem.js","node_modules/react-native-web/dist/exports/ProgressBar/index.js","node_modules/react-native-web/dist/exports/SafeAreaView/index.js","node_modules/react-native-web/dist/vendor/react-native/PooledClass/index.js","node_modules/react-native-web/dist/exports/Touchable/BoundingDimensions.js","node_modules/react-native-web/dist/exports/Touchable/Position.js","node_modules/react-native-web/dist/exports/Touchable/index.js","node_modules/react-native-web/dist/modules/UnimplementedView/index.js","node_modules/react-native-web/dist/exports/TouchableNativeFeedback/index.js","node_modules/react-native-web/dist/exports/VirtualizedList/index.js","node_modules/react-native-web/dist/exports/YellowBox/index.js","node_modules/react-native-web/dist/exports/LogBox/index.js","node_modules/react-native-web/dist/exports/DrawerLayoutAndroid/index.js","node_modules/react-native-web/dist/exports/InputAccessoryView/index.js","node_modules/react-native-web/dist/exports/ToastAndroid/index.js","node_modules/react-native-web/dist/exports/PermissionsAndroid/index.js","node_modules/react-native-web/dist/exports/Settings/index.js","node_modules/react-native-web/dist/exports/Systrace/index.js","node_modules/react-native-web/dist/exports/TVEventHandler/index.js","node_modules/react-native-web/dist/exports/DeviceEventEmitter/index.js","node_modules/react-native-web/dist/exports/useColorScheme/index.js","node_modules/react-native-web/dist/exports/useLocaleContext/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/createDOMProps/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/vendor/react-native/emitter/EventEmitter.js","node_modules/react-native-web/dist/vendor/react-native/NativeEventEmitter/RCTDeviceEventEmitter.js","node_modules/react-native-web/dist/vendor/react-native/NativeEventEmitter/index.js","node_modules/react-native-web/dist/vendor/react-native/VirtualizeUtils/index.js","node_modules/react-native-web/dist/vendor/react-native/Batchinator/index.js","node_modules/react-native-web/dist/vendor/react-native/FillRateHelper/index.js","node_modules/react-native-web/dist/vendor/react-native/ViewabilityHelper/index.js","node_modules/react-native-web/dist/vendor/react-native/infoLog/index.js","node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/VirtualizedListContext.js","node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/index.js","node_modules/react-native-web/dist/vendor/react-native/emitter/_EventSubscription.js","node_modules/react-native-web/dist/vendor/react-native/emitter/_EmitterSubscription.js","node_modules/react-native-web/dist/vendor/react-native/emitter/_EventSubscriptionVendor.js","node_modules/react-native-web/dist/vendor/react-native/emitter/_EventEmitter.js","node_modules/create-react-class/factory.js","node_modules/create-react-class/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/fbjs/lib/emptyFunction.js","node_modules/fbjs/lib/invariant.js","node_modules/fbjs/lib/warning.js","node_modules/fontfaceobserver/fontfaceobserver.standalone.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/lodash/lodash.js","node_modules/normalize-css-color/index.js","node_modules/object-assign/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/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/scheduler/cjs/scheduler.production.min.js","node_modules/scheduler/index.js","node_modules/styleq/dist/styleq.js","node_modules/styleq/dist/transform-localize-style.js","node_modules/@babel/runtime/helpers/arrayLikeToArray.js","node_modules/@babel/runtime/helpers/arrayWithHoles.js","node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","node_modules/@babel/runtime/helpers/interopRequireDefault.js","node_modules/@babel/runtime/helpers/iterableToArray.js","node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","node_modules/@babel/runtime/helpers/nonIterableRest.js","node_modules/@babel/runtime/helpers/nonIterableSpread.js","node_modules/@babel/runtime/helpers/objectWithoutProperties.js","node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","node_modules/@babel/runtime/helpers/slicedToArray.js","node_modules/@babel/runtime/helpers/toConsumableArray.js","node_modules/@babel/runtime/helpers/unsupportedIterableToArray.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/objectWithoutPropertiesLoose.js"],"sourcesContent":["var _interopRequireDefault=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _toConsumableArray2=_interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));var _slicedToArray2=_interopRequireDefault(require(\"@babel/runtime/helpers/slicedToArray\"));var _objectWithoutProperties2=_interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));var _reactDom=_interopRequireDefault(require(\"react-dom\"));var _react=_interopRequireWildcard(require(\"react\"));var _reactNative=require(\"react-native\");var _jsxRuntime=require(\"react/jsx-runtime\");var _excluded=[\"value\",\"minimumValue\",\"maximumValue\",\"lowerLimit\",\"upperLimit\",\"step\",\"minimumTrackTintColor\",\"maximumTrackTintColor\",\"thumbTintColor\",\"thumbStyle\",\"style\",\"inverted\",\"disabled\",\"trackHeight\",\"thumbSize\",\"thumbImage\",\"onRNCSliderSlidingStart\",\"onRNCSliderSlidingComplete\",\"onRNCSliderValueChange\"];var _this=this,_jsxFileName=\"/Users/bartoszklonowski/Desktop/Projects/react-native-slider/package/src/RNCSliderNativeComponent.web.tsx\";function _getRequireWildcardCache(e){if(\"function\"!=typeof WeakMap)return null;var r=new WeakMap(),t=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?t:r;})(e);}function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||\"object\"!=typeof e&&\"function\"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if(\"default\"!==u&&{}.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u];}return n.default=e,t&&t.set(e,n),n;}var valueToEvent=function valueToEvent(value){return{nativeEvent:{value:value}};};var RCTSliderWebComponent=_react.default.forwardRef(function(_ref,forwardedRef){var initialValue=_ref.value,_ref$minimumValue=_ref.minimumValue,minimumValue=_ref$minimumValue===void 0?0:_ref$minimumValue,_ref$maximumValue=_ref.maximumValue,maximumValue=_ref$maximumValue===void 0?0:_ref$maximumValue,_ref$lowerLimit=_ref.lowerLimit,lowerLimit=_ref$lowerLimit===void 0?0:_ref$lowerLimit,_ref$upperLimit=_ref.upperLimit,upperLimit=_ref$upperLimit===void 0?0:_ref$upperLimit,_ref$step=_ref.step,step=_ref$step===void 0?1:_ref$step,_ref$minimumTrackTint=_ref.minimumTrackTintColor,minimumTrackTintColor=_ref$minimumTrackTint===void 0?'#009688':_ref$minimumTrackTint,_ref$maximumTrackTint=_ref.maximumTrackTintColor,maximumTrackTintColor=_ref$maximumTrackTint===void 0?'#939393':_ref$maximumTrackTint,_ref$thumbTintColor=_ref.thumbTintColor,thumbTintColor=_ref$thumbTintColor===void 0?'#009688':_ref$thumbTintColor,_ref$thumbStyle=_ref.thumbStyle,thumbStyle=_ref$thumbStyle===void 0?{}:_ref$thumbStyle,_ref$style=_ref.style,style=_ref$style===void 0?{}:_ref$style,_ref$inverted=_ref.inverted,inverted=_ref$inverted===void 0?false:_ref$inverted,_ref$disabled=_ref.disabled,disabled=_ref$disabled===void 0?false:_ref$disabled,_ref$trackHeight=_ref.trackHeight,trackHeight=_ref$trackHeight===void 0?4:_ref$trackHeight,_ref$thumbSize=_ref.thumbSize,thumbSize=_ref$thumbSize===void 0?20:_ref$thumbSize,thumbImage=_ref.thumbImage,_ref$onRNCSliderSlidi=_ref.onRNCSliderSlidingStart,onRNCSliderSlidingStart=_ref$onRNCSliderSlidi===void 0?function(_){}:_ref$onRNCSliderSlidi,_ref$onRNCSliderSlidi2=_ref.onRNCSliderSlidingComplete,onRNCSliderSlidingComplete=_ref$onRNCSliderSlidi2===void 0?function(_){}:_ref$onRNCSliderSlidi2,_ref$onRNCSliderValue=_ref.onRNCSliderValueChange,onRNCSliderValueChange=_ref$onRNCSliderValue===void 0?function(_){}:_ref$onRNCSliderValue,others=(0,_objectWithoutProperties2.default)(_ref,_excluded);var containerSize=_react.default.useRef({width:0,height:0});var containerPositionX=_react.default.useRef(0);var containerRef=forwardedRef||_react.default.createRef();var containerPositionInvalidated=_react.default.useRef(false);var _React$useState=_react.default.useState(initialValue||minimumValue),_React$useState2=(0,_slicedToArray2.default)(_React$useState,2),value=_React$useState2[0],setValue=_React$useState2[1];var lastInitialValue=_react.default.useRef();var animationValues=_react.default.useRef({val:new _reactNative.Animated.Value(value),min:new _reactNative.Animated.Value(minimumValue),max:new _reactNative.Animated.Value(maximumValue),diff:new _reactNative.Animated.Value(maximumValue-minimumValue||1)}).current;_react.default.useEffect(function(){animationValues.min.setValue(minimumValue);animationValues.max.setValue(maximumValue);animationValues.diff.setValue(maximumValue-minimumValue||1);},[animationValues,minimumValue,maximumValue]);var minPercent=_react.default.useRef(_reactNative.Animated.multiply(new _reactNative.Animated.Value(100),_reactNative.Animated.divide(_reactNative.Animated.subtract(animationValues.val,animationValues.min),animationValues.diff))).current;var maxPercent=_react.default.useRef(_reactNative.Animated.subtract(new _reactNative.Animated.Value(100),minPercent)).current;var onValueChange=(0,_react.useCallback)(function(value){onRNCSliderValueChange&&onRNCSliderValueChange(valueToEvent(value));},[onRNCSliderValueChange]);var onSlidingStart=(0,_react.useCallback)(function(value){isUserInteracting.current=true;onRNCSliderSlidingStart&&onRNCSliderSlidingStart(valueToEvent(value));},[onRNCSliderSlidingStart]);var onSlidingComplete=(0,_react.useCallback)(function(value){isUserInteracting.current=false;onRNCSliderSlidingComplete&&onRNCSliderSlidingComplete(valueToEvent(value));},[onRNCSliderSlidingComplete]);var isUserInteracting=_react.default.useRef(false);var _updateValue=(0,_react.useCallback)(function(newValue){var hardRounded=decimalPrecision.current<20?Number.parseFloat(newValue.toFixed(decimalPrecision.current)):newValue;var withinBounds=Math.max(minimumValue,Math.min(hardRounded,maximumValue));if(value!==withinBounds){setValue(withinBounds);if(isUserInteracting.current){onValueChange(withinBounds);}return withinBounds;}return hardRounded;},[minimumValue,maximumValue,value,onValueChange]);_react.default.useLayoutEffect(function(){if(initialValue!==lastInitialValue.current){lastInitialValue.current=initialValue;var newValue=_updateValue(initialValue);animationValues.val.setValue(newValue);}},[initialValue,_updateValue,animationValues]);_react.default.useEffect(function(){var invalidateContainerPosition=function invalidateContainerPosition(){containerPositionInvalidated.current=true;};var onDocumentScroll=function onDocumentScroll(e){var isAlreadyInvalidated=!containerPositionInvalidated.current;if(isAlreadyInvalidated&&containerRef.current&&e.target.contains(containerRef.current)){invalidateContainerPosition();}};window.addEventListener('resize',invalidateContainerPosition);document.addEventListener('scroll',onDocumentScroll,{capture:true});return function(){window.removeEventListener('resize',invalidateContainerPosition);document.removeEventListener('scroll',onDocumentScroll,{capture:true});};},[containerRef]);var containerStyle=[{flexGrow:1,flexShrink:1,flexBasis:'auto',flexDirection:'row',alignItems:'center'},style];var trackStyle={height:trackHeight,borderRadius:trackHeight/2,userSelect:'none'};var minimumTrackStyle=Object.assign({},trackStyle,{backgroundColor:minimumTrackTintColor,flexGrow:minPercent});var maximumTrackStyle=Object.assign({},trackStyle,{backgroundColor:maximumTrackTintColor,flexGrow:maxPercent});var thumbViewStyle=[{width:thumbSize,height:thumbSize,backgroundColor:thumbTintColor,zIndex:1,borderRadius:thumbSize/2,overflow:'hidden'},thumbStyle];var decimalPrecision=_react.default.useRef(calculatePrecision(minimumValue,maximumValue,step));_react.default.useEffect(function(){decimalPrecision.current=calculatePrecision(minimumValue,maximumValue,step);},[maximumValue,minimumValue,step]);var updateContainerPositionX=function updateContainerPositionX(){var _ReactDOM$findDOMNode;var positionX=(_ReactDOM$findDOMNode=_reactDom.default.findDOMNode(containerRef.current).getBoundingClientRect())==null?void 0:_ReactDOM$findDOMNode.x;containerPositionX.current=positionX!=null?positionX:0;};var getValueFromNativeEvent=function getValueFromNativeEvent(pageX){var adjustForThumbSize=(containerSize.current.width||1)>thumbSize;var width=(containerSize.current.width||1)-(adjustForThumbSize?thumbSize:0);if(containerPositionInvalidated.current){containerPositionInvalidated.current=false;updateContainerPositionX();}var containerX=containerPositionX.current+(adjustForThumbSize?thumbSize/2:0);var lowerValue=minimumValueupperLimit?upperLimit:maximumValue;if(pageXcontainerX+width){return inverted?lowerValue:upperValue;}else{var x=pageX-containerX;var newValue=inverted?maximumValue-(maximumValue-minimumValue)*x/width:minimumValue+(maximumValue-minimumValue)*x/width;var valueAfterStep=step?Math.round(newValue/step)*step:newValue;var valueAfterLowerLimit=valueAfterStepupperLimit?upperLimit:valueAfterLowerLimit;return valueInLimitRange;}};var onTouchEnd=function onTouchEnd(_ref2){var nativeEvent=_ref2.nativeEvent;var newValue=_updateValue(getValueFromNativeEvent(nativeEvent.pageX));animationValues.val.setValue(newValue);onSlidingComplete(newValue);};var onMove=function onMove(_ref3){var nativeEvent=_ref3.nativeEvent;var newValue=getValueFromNativeEvent(nativeEvent.pageX);animationValues.val.setValue(newValue);_updateValue(newValue);};var accessibilityActions=function accessibilityActions(event){var tenth=(maximumValue-minimumValue)/10;switch(event.nativeEvent.actionName){case'increment':_updateValue(value+(step||tenth));break;case'decrement':_updateValue(value-(step||tenth));break;}};_react.default.useImperativeHandle(forwardedRef,function(){return{updateValue:function updateValue(val){_updateValue(val);}};},[_updateValue]);return(0,_jsxRuntime.jsxs)(_reactNative.View,Object.assign({ref:containerRef,onLayout:function onLayout(_ref4){var layout=_ref4.nativeEvent.layout;containerSize.current.height=layout.height;containerSize.current.width=layout.width;if(containerRef.current){updateContainerPositionX();}},accessibilityActions:[{name:'increment',label:'increment'},{name:'decrement',label:'decrement'}],onAccessibilityAction:accessibilityActions,accessible:true,accessibilityRole:'adjustable',style:containerStyle},others,{onStartShouldSetResponder:function onStartShouldSetResponder(){return!disabled;},onMoveShouldSetResponder:function onMoveShouldSetResponder(){return!disabled;},onResponderGrant:function onResponderGrant(){return onSlidingStart(value);},onResponderRelease:onTouchEnd,onResponderMove:onMove,children:[(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:\"none\",style:minimumTrackStyle}),(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:\"none\",style:thumbViewStyle,children:thumbImage!==undefined?(0,_jsxRuntime.jsx)(_reactNative.Image,{source:thumbImage,style:{width:'100%',height:'100%'}}):null}),(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:\"none\",style:maximumTrackStyle})]}));});function calculatePrecision(minimumValue,maximumValue,step){if(!step){return Infinity;}else{var decimals=[minimumValue,maximumValue,step].map(function(value){return((value+'').split('.').pop()||'').length;});return Math.max.apply(Math,(0,_toConsumableArray2.default)(decimals));}}RCTSliderWebComponent.displayName='RTCSliderWebComponent';var _default=exports.default=RCTSliderWebComponent;","var _interopRequireDefault=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _slicedToArray2=_interopRequireDefault(require(\"@babel/runtime/helpers/slicedToArray\"));var _objectWithoutProperties2=_interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));var _react=_interopRequireWildcard(require(\"react\"));var _reactNative=require(\"react-native\");var _index=_interopRequireDefault(require(\"./index\"));var _StepsIndicator=require(\"./components/StepsIndicator\");var _styles=require(\"./utils/styles\");var _constants=require(\"./utils/constants\");var _jsxRuntime=require(\"react/jsx-runtime\");var _excluded=[\"onValueChange\",\"onSlidingStart\",\"onSlidingComplete\",\"onAccessibilityAction\"];var _this=this,_jsxFileName=\"/Users/bartoszklonowski/Desktop/Projects/react-native-slider/package/src/Slider.tsx\";function _getRequireWildcardCache(e){if(\"function\"!=typeof WeakMap)return null;var r=new WeakMap(),t=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?t:r;})(e);}function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||\"object\"!=typeof e&&\"function\"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if(\"default\"!==u&&{}.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u];}return n.default=e,t&&t.set(e,n),n;}var SliderComponent=function SliderComponent(props,forwardedRef){var _props$value,_props$accessibilityS;var onValueChange=props.onValueChange,onSlidingStart=props.onSlidingStart,onSlidingComplete=props.onSlidingComplete,onAccessibilityAction=props.onAccessibilityAction,localProps=(0,_objectWithoutProperties2.default)(props,_excluded);var _useState=(0,_react.useState)((_props$value=props.value)!=null?_props$value:props.minimumValue),_useState2=(0,_slicedToArray2.default)(_useState,2),currentValue=_useState2[0],setCurrentValue=_useState2[1];var _useState3=(0,_react.useState)(0),_useState4=(0,_slicedToArray2.default)(_useState3,2),width=_useState4[0],setWidth=_useState4[1];var options=Array.from({length:(localProps.maximumValue-localProps.minimumValue)/(localProps.step?localProps.step:_constants.constants.DEFAULT_STEP_RESOLUTION)+1},function(_,index){return index;});var defaultStyle=_reactNative.Platform.OS==='ios'?_styles.styles.defaultSlideriOS:_styles.styles.defaultSlider;var sliderStyle={zIndex:1,width:width};var style=_reactNative.StyleSheet.compose(props.style,defaultStyle);var onValueChangeEvent=function onValueChangeEvent(event){onValueChange&&onValueChange(event.nativeEvent.value);setCurrentValue(event.nativeEvent.value);};var _disabled=typeof props.disabled==='boolean'?props.disabled:((_props$accessibilityS=props.accessibilityState)==null?void 0:_props$accessibilityS.disabled)===true;var _accessibilityState=typeof props.disabled==='boolean'?Object.assign({},props.accessibilityState,{disabled:props.disabled}):props.accessibilityState;var onSlidingStartEvent=onSlidingStart?function(event){onSlidingStart(event.nativeEvent.value);}:null;var onSlidingCompleteEvent=onSlidingComplete?function(event){onSlidingComplete(event.nativeEvent.value);}:null;var onAccessibilityActionEvent=onAccessibilityAction?function(event){onAccessibilityAction(event);}:null;var value=Number.isNaN(props.value)||!props.value?undefined:props.value;var lowerLimit=!!localProps.lowerLimit||localProps.lowerLimit===0?localProps.lowerLimit:_reactNative.Platform.select({web:localProps.minimumValue,default:_constants.constants.LIMIT_MIN_VALUE});var upperLimit=!!localProps.upperLimit||localProps.upperLimit===0?localProps.upperLimit:_reactNative.Platform.select({web:localProps.maximumValue,default:_constants.constants.LIMIT_MAX_VALUE});return(0,_jsxRuntime.jsxs)(_reactNative.View,{onLayout:function onLayout(event){setWidth(event.nativeEvent.layout.width);},style:[_styles.styles,style,{justifyContent:'center'}],children:[props.StepMarker||!!props.renderStepNumber?(0,_jsxRuntime.jsx)(_StepsIndicator.StepsIndicator,{options:options,sliderWidth:width,currentValue:currentValue,renderStepNumber:localProps.renderStepNumber,thumbImage:localProps.thumbImage,StepMarker:localProps.StepMarker,isLTR:localProps.inverted}):null,(0,_jsxRuntime.jsx)(_index.default,Object.assign({},localProps,{value:value,lowerLimit:lowerLimit,upperLimit:upperLimit,accessibilityState:_accessibilityState,thumbImage:_reactNative.Platform.OS==='web'?props.thumbImage:props.StepMarker?undefined:_reactNative.Image.resolveAssetSource(props.thumbImage),ref:forwardedRef,style:[sliderStyle,defaultStyle,{alignContent:'center',alignItems:'center'}],onChange:onValueChangeEvent,onRNCSliderSlidingStart:onSlidingStartEvent,onRNCSliderSlidingComplete:onSlidingCompleteEvent,onRNCSliderValueChange:onValueChangeEvent,disabled:_disabled,onStartShouldSetResponder:function onStartShouldSetResponder(){return true;},onResponderTerminationRequest:function onResponderTerminationRequest(){return false;},onRNCSliderAccessibilityAction:onAccessibilityActionEvent,thumbTintColor:props.thumbImage&&!!props.StepMarker?'transparent':props.thumbTintColor}))]});};var SliderWithRef=_react.default.forwardRef(SliderComponent);SliderWithRef.defaultProps={value:0,minimumValue:0,maximumValue:1,step:0,inverted:false,tapToSeek:false,lowerLimit:_reactNative.Platform.select({web:undefined,default:_constants.constants.LIMIT_MIN_VALUE}),upperLimit:_reactNative.Platform.select({web:undefined,default:_constants.constants.LIMIT_MAX_VALUE})};var _default=exports.default=SliderWithRef;","var _interopRequireDefault=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:true});exports.StepNumber=void 0;var _react=_interopRequireDefault(require(\"react\"));var _reactNative=require(\"react-native\");var _styles=require(\"../utils/styles\");var _jsxRuntime=require(\"react/jsx-runtime\");var _this=this,_jsxFileName=\"/Users/bartoszklonowski/Desktop/Projects/react-native-slider/package/src/components/StepNumber.tsx\";var StepNumber=exports.StepNumber=function StepNumber(_ref){var i=_ref.i,style=_ref.style;return(0,_jsxRuntime.jsx)(_reactNative.View,{style:_styles.styles.stepNumber,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:style,children:i})});};","Object.defineProperty(exports,\"__esModule\",{value:true});exports.StepsIndicator=void 0;var _react=_interopRequireWildcard(require(\"react\"));var _reactNative=require(\"react-native\");var _StepNumber=require(\"./StepNumber\");var _TrackMark=require(\"./TrackMark\");var _styles=require(\"../utils/styles\");var _constants=require(\"../utils/constants\");var _jsxRuntime=require(\"react/jsx-runtime\");var _this=this,_jsxFileName=\"/Users/bartoszklonowski/Desktop/Projects/react-native-slider/package/src/components/StepsIndicator.tsx\";function _getRequireWildcardCache(e){if(\"function\"!=typeof WeakMap)return null;var r=new WeakMap(),t=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?t:r;})(e);}function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||\"object\"!=typeof e&&\"function\"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if(\"default\"!==u&&{}.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u];}return n.default=e,t&&t.set(e,n),n;}var StepsIndicator=exports.StepsIndicator=function StepsIndicator(_ref){var options=_ref.options,sliderWidth=_ref.sliderWidth,currentValue=_ref.currentValue,StepMarker=_ref.StepMarker,renderStepNumber=_ref.renderStepNumber,thumbImage=_ref.thumbImage,isLTR=_ref.isLTR;var stepNumberFontStyle={fontSize:options.length>9?_constants.constants.STEP_NUMBER_TEXT_FONT_SMALL:_constants.constants.STEP_NUMBER_TEXT_FONT_BIG};var values=isLTR?options.reverse():options;return(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:\"none\",style:[_styles.styles.stepsIndicator,{marginHorizontal:sliderWidth*_constants.constants.MARGIN_HORIZONTAL_PADDING}],children:values.map(function(i,index){return(0,_jsxRuntime.jsx)(_react.Fragment,{children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:_styles.styles.stepIndicatorElement,children:[(0,_jsxRuntime.jsx)(_TrackMark.SliderTrackMark,{isTrue:currentValue===i,thumbImage:thumbImage,StepMarker:StepMarker},`${index}-SliderTrackMark`),renderStepNumber?(0,_jsxRuntime.jsx)(_StepNumber.StepNumber,{i:i,style:stepNumberFontStyle},`${index}th-step`):null]})},index);})});};","var _interopRequireDefault=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:true});exports.SliderTrackMark=void 0;var _react=_interopRequireDefault(require(\"react\"));var _reactNative=require(\"react-native\");var _styles=require(\"../utils/styles\");var _jsxRuntime=require(\"react/jsx-runtime\");var _this=this,_jsxFileName=\"/Users/bartoszklonowski/Desktop/Projects/react-native-slider/package/src/components/TrackMark.tsx\";var SliderTrackMark=exports.SliderTrackMark=function SliderTrackMark(_ref){var isTrue=_ref.isTrue,thumbImage=_ref.thumbImage,StepMarker=_ref.StepMarker;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:_styles.styles.trackMarkContainer,children:[StepMarker?(0,_jsxRuntime.jsx)(StepMarker,{stepMarked:isTrue}):null,thumbImage&&isTrue?(0,_jsxRuntime.jsx)(_reactNative.View,{style:_styles.styles.thumbImageContainer,children:(0,_jsxRuntime.jsx)(_reactNative.Image,{source:thumbImage,style:_styles.styles.thumbImage})}):null]});};","Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var RNCSlider=require('./RNCSliderNativeComponent').default;var _default=exports.default=RNCSlider;","Object.defineProperty(exports,\"__esModule\",{value:true});exports.constants=void 0;var constants=exports.constants={MARGIN_HORIZONTAL_PADDING:0.05,STEP_NUMBER_TEXT_FONT_SMALL:8,STEP_NUMBER_TEXT_FONT_BIG:12,LIMIT_MIN_VALUE:Number.MIN_SAFE_INTEGER,LIMIT_MAX_VALUE:Number.MAX_SAFE_INTEGER,DEFAULT_STEP_RESOLUTION:100};","Object.defineProperty(exports,\"__esModule\",{value:true});exports.styles=void 0;var _reactNative=require(\"react-native\");var styles=exports.styles=_reactNative.StyleSheet.create({stepNumber:{marginTop:20,alignItems:'center',position:'absolute'},sliderMainContainer:{zIndex:1,width:'100%'},defaultSlideriOS:{height:40},defaultSlider:{},stepsIndicator:{flex:1,flexDirection:'row',justifyContent:'space-between',top:_reactNative.Platform.OS==='ios'?10:0,zIndex:2},trackMarkContainer:{alignItems:'center',alignContent:'center',alignSelf:'center',justifyContent:'center',position:'absolute',zIndex:3},thumbImageContainer:{position:'absolute',zIndex:3,justifyContent:'center',alignItems:'center',alignContent:'center'},thumbImage:{alignContent:'center',alignItems:'center',position:'absolute'},stepIndicatorElement:{alignItems:'center',alignContent:'center'},defaultIndicatorMarked:{height:20,width:5,backgroundColor:'#CCCCCC'},defaultIndicatorIdle:{height:10,width:2,backgroundColor:'#C0C0C0'}});","/**\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 * @flow strict\n * @format\n */\n\n'use strict';\n\nexport type PackagerAsset = {\n +__packager_asset: boolean,\n +fileSystemLocation: string,\n +httpServerLocation: string,\n +width: ?number,\n +height: ?number,\n +scales: Array,\n +hash: string,\n +name: string,\n +type: string,\n ...\n};\n\nconst assets: Array = [];\n\nfunction registerAsset(asset: PackagerAsset): number {\n // `push` returns new array length, so the first asset will\n // get id 1 (not 0) to make the value truthy\n return assets.push(asset);\n}\n\nfunction getAssetByID(assetId: number): PackagerAsset {\n return assets[assetId - 1];\n}\n\nmodule.exports = {registerAsset, getAssetByID};\n","import { Asset } from 'expo-asset';\n\n// @needsAudit\n/**\n * The different types of assets you can provide to the [`loadAsync()`](#loadasyncfontfamilyorfontmap-source) function.\n * A font source can be a URI, a module ID, or an Expo Asset.\n */\nexport type FontSource = string | number | Asset | FontResource;\n\n// @needsAudit\n/**\n * An object used to dictate the resource that is loaded into the provided font namespace when used\n * with [`loadAsync`](#loadasyncfontfamilyorfontmap-source).\n */\nexport type FontResource = {\n uri?: string | number;\n /**\n * Sets the [`font-display`](#fontdisplay) property for a given typeface in the browser.\n * @platform web\n */\n display?: FontDisplay;\n default?: string;\n};\n\n// @needsAudit\n/**\n * Sets the [font-display](https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display)\n * for a given typeface. The default font value on web is `FontDisplay.AUTO`.\n * Even though setting the `fontDisplay` does nothing on native platforms, the default behavior\n * emulates `FontDisplay.SWAP` on flagship devices like iOS, Samsung, Pixel, etc. Default\n * functionality varies on One Plus devices. In the browser this value is set in the generated\n * `@font-face` CSS block and not as a style property meaning you cannot dynamically change this\n * value based on the element it's used in.\n * @platform web\n */\nexport enum FontDisplay {\n /**\n * __(Default)__ The font display strategy is defined by the user agent or platform.\n * This generally defaults to the text being invisible until the font is loaded.\n * Good for buttons or banners that require a specific treatment.\n */\n AUTO = 'auto',\n /**\n * Fallback text is rendered immediately with a default font while the desired font is loaded.\n * This is good for making the content appear to load instantly and is usually preferred.\n */\n SWAP = 'swap',\n /**\n * The text will be invisible until the font has loaded. If the font fails to load then nothing\n * will appear - it's best to turn this off when debugging missing text.\n */\n BLOCK = 'block',\n /**\n * Splits the behavior between `SWAP` and `BLOCK`.\n * There will be a [100ms timeout](https://developers.google.com/web/updates/2016/02/font-display?hl=en)\n * where the text with a custom font is invisible, after that the text will either swap to the\n * styled text or it'll show the unstyled text and continue to load the custom font. This is good\n * for buttons that need a custom font but should also be quickly available to screen-readers.\n */\n FALLBACK = 'fallback',\n /**\n * This works almost identically to `FALLBACK`, the only difference is that the browser will\n * decide to load the font based on slow connection speed or critical resource demand.\n */\n OPTIONAL = 'optional',\n}\n\n// @needsAudit\n/**\n * Object used to query fonts for unloading.\n */\nexport type UnloadFontOptions = Pick;\n","import { CodedError, Platform } from 'expo-modules-core';\nimport FontObserver from 'fontfaceobserver';\n\nimport { UnloadFontOptions } from './Font';\nimport { FontDisplay, FontResource } from './Font.types';\n\nfunction getFontFaceStyleSheet(): CSSStyleSheet | null {\n if (!Platform.isDOMAvailable) {\n return null;\n }\n const styleSheet = getStyleElement();\n return styleSheet.sheet ? (styleSheet.sheet as CSSStyleSheet) : null;\n}\n\ntype RuleItem = { rule: CSSFontFaceRule; index: number };\n\nfunction getFontFaceRules(): RuleItem[] {\n const sheet = getFontFaceStyleSheet();\n if (sheet) {\n // @ts-ignore: rule iterator\n const rules = [...sheet.cssRules];\n\n const items: RuleItem[] = [];\n\n for (let i = 0; i < rules.length; i++) {\n const rule = rules[i];\n if (rule instanceof CSSFontFaceRule) {\n items.push({ rule, index: i });\n }\n }\n return items;\n }\n return [];\n}\n\nfunction getFontFaceRulesMatchingResource(\n fontFamilyName: string,\n options?: UnloadFontOptions\n): RuleItem[] {\n const rules = getFontFaceRules();\n return rules.filter(({ rule }) => {\n return (\n rule.style.fontFamily === fontFamilyName &&\n (options && options.display ? options.display === (rule.style as any).fontDisplay : true)\n );\n });\n}\n\nconst serverContext: Set<{ name: string; css: string; resourceId: string }> = new Set();\n\nfunction getHeadElements(): {\n $$type: string;\n rel?: string;\n href?: string;\n as?: string;\n crossorigin?: string;\n children?: string;\n id?: string;\n type?: string;\n}[] {\n const entries = [...serverContext.entries()];\n if (!entries.length) {\n return [];\n }\n const css = entries.map(([{ css }]) => css).join('\\n');\n const links = entries.map(([{ resourceId }]) => resourceId);\n // TODO: Maybe return nothing if no fonts were loaded.\n return [\n {\n $$type: 'style',\n children: css,\n id: ID,\n type: 'text/css',\n },\n ...links.map((resourceId) => ({\n $$type: 'link',\n rel: 'preload',\n href: resourceId,\n as: 'font',\n crossorigin: '',\n })),\n ];\n}\n\nexport default {\n async unloadAllAsync(): Promise {\n if (!Platform.isDOMAvailable) return;\n\n const element = document.getElementById(ID);\n if (element && element instanceof HTMLStyleElement) {\n document.removeChild(element);\n }\n },\n\n async unloadAsync(fontFamilyName: string, options?: UnloadFontOptions): Promise {\n const sheet = getFontFaceStyleSheet();\n if (!sheet) return;\n const items = getFontFaceRulesMatchingResource(fontFamilyName, options);\n for (const item of items) {\n sheet.deleteRule(item.index);\n }\n },\n\n getServerResources(): string[] {\n const elements = getHeadElements();\n\n return elements\n .map((element) => {\n switch (element.$$type) {\n case 'style':\n return ``;\n case 'link':\n return ``;\n default:\n return '';\n }\n })\n .filter(Boolean);\n },\n\n resetServerContext() {\n serverContext.clear();\n },\n\n isLoaded(fontFamilyName: string, resource: UnloadFontOptions = {}): boolean {\n if (typeof window === 'undefined') {\n return !![...serverContext.values()].find((asset) => {\n return asset.name === fontFamilyName;\n });\n }\n return getFontFaceRulesMatchingResource(fontFamilyName, resource)?.length > 0;\n },\n\n // NOTE(EvanBacon): No async keyword! This cannot return a promise in Node environments.\n loadAsync(fontFamilyName: string, resource: FontResource): Promise {\n if (typeof window === 'undefined') {\n serverContext.add({\n name: fontFamilyName,\n css: _createWebFontTemplate(fontFamilyName, resource),\n // @ts-expect-error: typeof string\n resourceId: resource.uri!,\n });\n return Promise.resolve();\n }\n\n const canInjectStyle = document.head && typeof document.head.appendChild === 'function';\n if (!canInjectStyle) {\n throw new CodedError(\n 'ERR_WEB_ENVIRONMENT',\n `The browser's \\`document.head\\` element doesn't support injecting fonts.`\n );\n }\n\n const style = getStyleElement();\n document.head!.appendChild(style);\n\n const res = getFontFaceRulesMatchingResource(fontFamilyName, resource);\n if (!res.length) {\n _createWebStyle(fontFamilyName, resource);\n }\n\n if (!isFontLoadingListenerSupported()) {\n return Promise.resolve();\n }\n\n return new FontObserver(fontFamilyName, { display: resource.display }).load(null, 6000);\n },\n};\n\nconst ID = 'expo-generated-fonts';\n\nfunction getStyleElement(): HTMLStyleElement {\n const element = document.getElementById(ID);\n if (element && element instanceof HTMLStyleElement) {\n return element;\n }\n const styleElement = document.createElement('style');\n styleElement.id = ID;\n styleElement.type = 'text/css';\n return styleElement;\n}\n\nexport function _createWebFontTemplate(fontFamily: string, resource: FontResource): string {\n return `@font-face{font-family:${fontFamily};src:url(${resource.uri});font-display:${\n resource.display || FontDisplay.AUTO\n }}`;\n}\n\nfunction _createWebStyle(fontFamily: string, resource: FontResource): HTMLStyleElement {\n const fontStyle = _createWebFontTemplate(fontFamily, resource);\n\n const styleElement = getStyleElement();\n // @ts-ignore: TypeScript does not define HTMLStyleElement::styleSheet. This is just for IE and\n // possibly can be removed if it's unnecessary on IE 11.\n if (styleElement.styleSheet) {\n const styleElementIE = styleElement as any;\n styleElementIE.styleSheet.cssText = styleElementIE.styleSheet.cssText\n ? styleElementIE.styleSheet.cssText + fontStyle\n : fontStyle;\n } else {\n const textNode = document.createTextNode(fontStyle);\n styleElement.appendChild(textNode);\n }\n return styleElement;\n}\n\nfunction isFontLoadingListenerSupported(): boolean {\n const { userAgent } = window.navigator;\n // WebKit is broken https://github.com/bramstein/fontfaceobserver/issues/95\n const isIOS = !!userAgent.match(/iPad|iPhone/i);\n const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n // Edge is broken https://github.com/bramstein/fontfaceobserver/issues/109#issuecomment-333356795\n const isEdge = userAgent.includes('Edge');\n // Internet Explorer\n const isIE = userAgent.includes('Trident');\n // Firefox\n const isFirefox = userAgent.includes('Firefox');\n return !isSafari && !isIOS && !isEdge && !isIE && !isFirefox;\n}\n","import type { PackagerAsset } from '@react-native/assets-registry/registry';\nimport { Platform } from 'expo-modules-core';\nimport { PixelRatio } from 'react-native';\n\nexport type ResolvedAssetSource = {\n __packager_asset: boolean;\n width?: number;\n height?: number;\n uri: string;\n scale: number;\n};\n\n// Returns the Metro dev server-specific asset location.\nfunction getScaledAssetPath(asset): string {\n const scale = AssetSourceResolver.pickScale(asset.scales, PixelRatio.get());\n const scaleSuffix = scale === 1 ? '' : '@' + scale + 'x';\n const type = !asset.type ? '' : `.${asset.type}`;\n if (__DEV__) {\n return asset.httpServerLocation + '/' + asset.name + scaleSuffix + type;\n } else {\n return asset.httpServerLocation.replace(/\\.\\.\\//g, '_') + '/' + asset.name + scaleSuffix + type;\n }\n}\n\nexport default class AssetSourceResolver {\n private readonly serverUrl: string;\n // where the jsbundle is being run from\n // NOTE(EvanBacon): Never defined on web.\n private readonly jsbundleUrl: string | undefined | null;\n // the asset to resolve\n public readonly asset: PackagerAsset;\n\n constructor(\n serverUrl: string | undefined | null,\n jsbundleUrl: string | undefined | null,\n asset: PackagerAsset\n ) {\n this.serverUrl = serverUrl || 'https://expo.dev';\n this.jsbundleUrl = null;\n this.asset = asset;\n }\n\n // Always true for web runtimes\n isLoadedFromServer(): boolean {\n return true;\n }\n\n // Always false for web runtimes\n isLoadedFromFileSystem(): boolean {\n return false;\n }\n\n defaultAsset(): ResolvedAssetSource {\n return this.assetServerURL();\n }\n\n /**\n * @returns absolute remote URL for the hosted asset.\n */\n assetServerURL(): ResolvedAssetSource {\n const fromUrl = new URL(getScaledAssetPath(this.asset), this.serverUrl);\n fromUrl.searchParams.set('platform', Platform.OS);\n fromUrl.searchParams.set('hash', this.asset.hash);\n return this.fromSource(\n // Relative on web\n fromUrl.toString().replace(fromUrl.origin, '')\n );\n }\n\n fromSource(source: string): ResolvedAssetSource {\n return {\n __packager_asset: true,\n width: this.asset.width ?? undefined,\n height: this.asset.height ?? undefined,\n uri: source,\n scale: AssetSourceResolver.pickScale(this.asset.scales, PixelRatio.get()),\n };\n }\n\n static pickScale(scales: number[], deviceScale: number): number {\n for (let i = 0; i < scales.length; i++) {\n if (scales[i] >= deviceScale) {\n return scales[i];\n }\n }\n return scales[scales.length - 1] || 1;\n }\n}\n","export const IS_ENV_WITH_UPDATES_ENABLED = false;\n\n// Compute manifest base URL if available\nexport const manifestBaseUrl = null;\n\nexport function getManifest() {\n return {};\n}\n\nexport function getManifest2() {\n return {};\n}\n","import type { PackagerAsset } from '@react-native/assets-registry/registry';\nimport { Platform } from 'expo-modules-core';\nimport { PixelRatio, NativeModules } from 'react-native';\n\nimport AssetSourceResolver from './AssetSourceResolver';\nimport { getManifest2, manifestBaseUrl } from './PlatformUtils';\n\n// @docsMissing\nexport type AssetMetadata = Pick<\n PackagerAsset,\n 'httpServerLocation' | 'name' | 'hash' | 'type' | 'scales' | 'width' | 'height'\n> & {\n uri?: string;\n fileHashes?: string[];\n fileUris?: string[];\n};\n\nexport type AssetSource = {\n uri: string;\n hash: string;\n};\n\n/**\n * Selects the best file for the given asset (ex: choosing the best scale for images) and returns\n * a { uri, hash } pair for the specific asset file.\n *\n * If the asset isn't an image with multiple scales, the first file is selected.\n */\nexport function selectAssetSource(meta: AssetMetadata): AssetSource {\n // This logic is based on that of AssetSourceResolver, with additional support for file hashes and\n // explicitly provided URIs\n const scale = AssetSourceResolver.pickScale(meta.scales, PixelRatio.get());\n const index = meta.scales.findIndex((s) => s === scale);\n const hash = meta.fileHashes ? meta.fileHashes[index] ?? meta.fileHashes[0] : meta.hash;\n\n // Allow asset processors to directly provide the URL to load\n const uri = meta.fileUris ? meta.fileUris[index] ?? meta.fileUris[0] : meta.uri;\n if (uri) {\n return { uri: resolveUri(uri), hash };\n }\n\n const fileScale = scale === 1 ? '' : `@${scale}x`;\n const fileExtension = meta.type ? `.${encodeURIComponent(meta.type)}` : '';\n const suffix = `/${encodeURIComponent(meta.name)}${fileScale}${fileExtension}`;\n const params = new URLSearchParams({\n platform: Platform.OS,\n hash: meta.hash,\n });\n\n // For assets with a specified absolute URL, we use the existing origin instead of prepending the\n // development server or production CDN URL origin\n if (/^https?:\\/\\//.test(meta.httpServerLocation)) {\n const uri = meta.httpServerLocation + suffix + '?' + params;\n return { uri, hash };\n }\n\n // For assets during development using manifest2, we use the development server's URL origin\n const manifest2 = getManifest2();\n\n const devServerUrl = manifest2?.extra?.expoGo?.developer\n ? 'http://' + manifest2.extra.expoGo.debuggerHost\n : null;\n if (devServerUrl) {\n const baseUrl = new URL(meta.httpServerLocation + suffix, devServerUrl);\n\n baseUrl.searchParams.set('platform', Platform.OS);\n baseUrl.searchParams.set('hash', meta.hash);\n return {\n uri: baseUrl.href,\n hash,\n };\n }\n\n // Temporary fallback for loading assets in Expo Go home\n if (NativeModules.ExponentKernel) {\n return { uri: `https://classic-assets.eascdn.net/~assets/${encodeURIComponent(hash)}`, hash };\n }\n\n // In correctly configured apps, we arrive here if the asset is locally available on disk due to\n // being managed by expo-updates, and `getLocalAssetUri(hash)` must return a local URI for this\n // hash. Since the asset is local, we don't have a remote URL and specify an invalid URL (an empty\n // string) as a placeholder.\n return { uri: '', hash };\n}\n\n/**\n * Resolves the given URI to an absolute URI. If the given URI is already an absolute URI, it is\n * simply returned. Otherwise, if it is a relative URI, it is resolved relative to the manifest's\n * base URI.\n */\nexport function resolveUri(uri: string): string {\n // `manifestBaseUrl` is always an absolute URL or `null`.\n return manifestBaseUrl ? new URL(uri, manifestBaseUrl).href : uri;\n}\n\n// A very cheap path canonicalization like path.join but without depending on a `path` polyfill.\nexport function pathJoin(...paths: string[]): string {\n // Start by simply combining paths, without worrying about \"..\" or \".\"\n const combined = paths\n .map((part, index) => {\n if (index === 0) {\n return part.trim().replace(/\\/*$/, '');\n }\n return part.trim().replace(/(^\\/*|\\/*$)/g, '');\n })\n .filter((part) => part.length > 0)\n .join('/')\n .split('/');\n\n // Handle \"..\" and \".\" in paths\n const resolved: string[] = [];\n for (const part of combined) {\n if (part === '..') {\n resolved.pop(); // Remove the last element from the result\n } else if (part !== '.') {\n resolved.push(part);\n }\n }\n\n return resolved.join('/');\n}\n","export function getFilename(url: string): string {\n const { pathname, searchParams } = new URL(url, 'https://e');\n\n // When attached to a dev server, we use `unstable_path` to represent the file path. This ensures\n // the file name is not canonicalized by the browser.\n // NOTE(EvanBacon): This is technically not tied to `__DEV__` as it's possible to use this while bundling in production\n // mode.\n if (__DEV__) {\n if (searchParams.has('unstable_path')) {\n const encodedFilePath = decodeURIComponent(searchParams.get('unstable_path')!);\n return getBasename(encodedFilePath);\n }\n }\n\n return getBasename(pathname);\n}\n\nfunction getBasename(pathname: string): string {\n return pathname.substring(pathname.lastIndexOf('/') + 1);\n}\n\nexport function getFileExtension(url: string): string {\n const filename = getFilename(url);\n const dotIndex = filename.lastIndexOf('.');\n // Ignore leading dots for hidden files\n return dotIndex > 0 ? filename.substring(dotIndex) : '';\n}\n\n/**\n * Returns the base URL from a manifest's URL. For example, given a manifest hosted at\n * https://example.com/app/manifest.json, the base URL would be https://example.com/app/. Query\n * parameters and fragments also are removed.\n *\n * For an Expo-hosted project with a manifest hosted at https://exp.host/@user/project/index.exp, the\n * base URL would be https://exp.host/@user/project.\n *\n * We also normalize the \"exp\" protocol to \"http\" to handle internal URLs with the Expo schemes used\n * to tell the OS to open the URLs in the the Expo client.\n */\nexport function getManifestBaseUrl(manifestUrl: string): string {\n const urlObject = new URL(manifestUrl);\n\n let nextProtocol = urlObject.protocol;\n // Change the scheme to http(s) if it is exp(s)\n if (nextProtocol === 'exp:') {\n nextProtocol = 'http:';\n } else if (nextProtocol === 'exps:') {\n nextProtocol = 'https:';\n }\n urlObject.protocol = nextProtocol;\n\n // Trim filename, query parameters, and fragment, if any\n const directory = urlObject.pathname.substring(0, urlObject.pathname.lastIndexOf('/') + 1);\n urlObject.pathname = directory;\n urlObject.search = '';\n urlObject.hash = '';\n\n // The URL spec doesn't allow for changing the protocol to `http` or `https`\n // without a port set so instead, we'll just swap the protocol manually.\n return urlObject.protocol !== nextProtocol\n ? urlObject.href.replace(urlObject.protocol, nextProtocol)\n : urlObject.href;\n}\n","import { getAssetByID } from '@react-native/assets-registry/registry';\n\nimport AssetSourceResolver, { ResolvedAssetSource } from './AssetSourceResolver';\n\nlet _customSourceTransformer: (resolver: AssetSourceResolver) => ResolvedAssetSource;\n\nexport function setCustomSourceTransformer(\n transformer: (resolver: AssetSourceResolver) => ResolvedAssetSource\n): void {\n _customSourceTransformer = transformer;\n}\n\n/**\n * `source` is either a number (opaque type returned by require('./foo.png'))\n * or an `ImageSource` like { uri: '' }\n */\nexport default function resolveAssetSource(source: any): ResolvedAssetSource | null {\n if (typeof source === 'object') {\n return source;\n }\n\n const asset = getAssetByID(source);\n if (!asset) {\n return null;\n }\n\n const resolver = new AssetSourceResolver(\n // Doesn't matter since this is removed on web\n 'https://expo.dev',\n null,\n asset\n );\n if (_customSourceTransformer) {\n return _customSourceTransformer(resolver);\n }\n return resolver.defaultAsset();\n}\n\nObject.defineProperty(resolveAssetSource, 'setCustomSourceTransformer', {\n get() {\n return setCustomSourceTransformer;\n },\n});\n\nexport const { pickScale } = AssetSourceResolver;\n","import { getAssetByID } from '@react-native/assets-registry/registry';\nimport { Platform } from 'expo-modules-core';\n\nimport { AssetMetadata, selectAssetSource } from './AssetSources';\nimport * as AssetUris from './AssetUris';\nimport { downloadAsync } from './ExpoAsset';\nimport * as ImageAssets from './ImageAssets';\nimport { getLocalAssetUri } from './LocalAssets';\nimport { IS_ENV_WITH_LOCAL_ASSETS } from './PlatformUtils';\nimport resolveAssetSource from './resolveAssetSource';\n\n// @docsMissing\nexport type AssetDescriptor = {\n name: string;\n type: string;\n hash?: string | null;\n uri: string;\n width?: number | null;\n height?: number | null;\n};\n\ntype DownloadPromiseCallbacks = {\n resolve: () => void;\n reject: (error: Error) => void;\n};\n\nexport { AssetMetadata };\n\n/**\n * The `Asset` class represents an asset in your app. It gives metadata about the asset (such as its\n * name and type) and provides facilities to load the asset data.\n */\nexport class Asset {\n private static byHash = {};\n private static byUri = {};\n\n /**\n * The name of the asset file without the extension. Also without the part from `@` onward in the\n * filename (used to specify scale factor for images).\n */\n public name: string;\n /**\n * The extension of the asset filename.\n */\n public readonly type: string;\n /**\n * The MD5 hash of the asset's data.\n */\n public readonly hash: string | null = null;\n /**\n * A URI that points to the asset's data on the remote server. When running the published version\n * of your app, this refers to the location on Expo's asset server where Expo has stored your\n * asset. When running the app from Expo CLI during development, this URI points to Expo CLI's\n * server running on your computer and the asset is served directly from your computer. If you\n * are not using Classic Updates (legacy), this field should be ignored as we ensure your assets\n * are on device before before running your application logic.\n */\n public readonly uri: string;\n /**\n * If the asset has been downloaded (by calling [`downloadAsync()`](#downloadasync)), the\n * `file://` URI pointing to the local file on the device that contains the asset data.\n */\n public localUri: string | null = null;\n /**\n * If the asset is an image, the width of the image data divided by the scale factor. The scale\n * factor is the number after `@` in the filename, or `1` if not present.\n */\n public width: number | null = null;\n /**\n * If the asset is an image, the height of the image data divided by the scale factor. The scale factor is the number after `@` in the filename, or `1` if not present.\n */\n public height: number | null = null;\n\n private downloading: boolean = false;\n\n /**\n * Whether the asset has finished downloading from a call to [`downloadAsync()`](#downloadasync).\n */\n public downloaded: boolean = false;\n\n private _downloadCallbacks: DownloadPromiseCallbacks[] = [];\n\n constructor({ name, type, hash = null, uri, width, height }: AssetDescriptor) {\n this.name = name;\n this.type = type;\n this.hash = hash;\n this.uri = uri;\n\n if (typeof width === 'number') {\n this.width = width;\n }\n if (typeof height === 'number') {\n this.height = height;\n }\n\n if (hash) {\n this.localUri = getLocalAssetUri(hash, type);\n if (this.localUri) {\n this.downloaded = true;\n }\n }\n\n if (Platform.OS === 'web') {\n if (!name) {\n this.name = AssetUris.getFilename(uri);\n }\n if (!type) {\n this.type = AssetUris.getFileExtension(uri);\n }\n }\n }\n\n // @needsAudit\n /**\n * A helper that wraps `Asset.fromModule(module).downloadAsync` for convenience.\n * @param moduleId An array of `require('path/to/file')` or external network URLs. Can also be\n * just one module or URL without an Array.\n * @return Returns a Promise that fulfills with an array of `Asset`s when the asset(s) has been\n * saved to disk.\n * @example\n * ```ts\n * const [{ localUri }] = await Asset.loadAsync(require('./assets/snack-icon.png'));\n * ```\n */\n static loadAsync(moduleId: number | number[] | string | string[]): Promise {\n const moduleIds = Array.isArray(moduleId) ? moduleId : [moduleId];\n return Promise.all(moduleIds.map((moduleId) => Asset.fromModule(moduleId).downloadAsync()));\n }\n\n // @needsAudit\n /**\n * Returns the [`Asset`](#asset) instance representing an asset given its module or URL.\n * @param virtualAssetModule The value of `require('path/to/file')` for the asset or external\n * network URL\n * @return The [`Asset`](#asset) instance for the asset.\n */\n static fromModule(virtualAssetModule: number | string): Asset {\n if (typeof virtualAssetModule === 'string') {\n return Asset.fromURI(virtualAssetModule);\n }\n\n const meta = getAssetByID(virtualAssetModule);\n if (!meta) {\n throw new Error(`Module \"${virtualAssetModule}\" is missing from the asset registry`);\n }\n\n // Outside of the managed env we need the moduleId to initialize the asset\n // because resolveAssetSource depends on it\n if (!IS_ENV_WITH_LOCAL_ASSETS) {\n // null-check is performed above with `getAssetByID`.\n const { uri } = resolveAssetSource(virtualAssetModule)!;\n\n const asset = new Asset({\n name: meta.name,\n type: meta.type,\n hash: meta.hash,\n uri,\n width: meta.width,\n height: meta.height,\n });\n\n // For images backward compatibility,\n // keeps localUri the same as uri for React Native's Image that\n // works fine with drawable resource names.\n if (Platform.OS === 'android' && !uri.includes(':') && (meta.width || meta.height)) {\n asset.localUri = asset.uri;\n asset.downloaded = true;\n }\n\n Asset.byHash[meta.hash] = asset;\n return asset;\n }\n\n return Asset.fromMetadata(meta);\n }\n\n // @docsMissing\n static fromMetadata(meta: AssetMetadata): Asset {\n // The hash of the whole asset, not to be confused with the hash of a specific file returned\n // from `selectAssetSource`\n const metaHash = meta.hash;\n if (Asset.byHash[metaHash]) {\n return Asset.byHash[metaHash];\n }\n\n const { uri, hash } = selectAssetSource(meta);\n const asset = new Asset({\n name: meta.name,\n type: meta.type,\n hash,\n uri,\n width: meta.width,\n height: meta.height,\n });\n Asset.byHash[metaHash] = asset;\n return asset;\n }\n\n // @docsMissing\n static fromURI(uri: string): Asset {\n if (Asset.byUri[uri]) {\n return Asset.byUri[uri];\n }\n\n // Possibly a Base64-encoded URI\n let type = '';\n if (uri.indexOf(';base64') > -1) {\n type = uri.split(';')[0].split('/')[1];\n } else {\n const extension = AssetUris.getFileExtension(uri);\n type = extension.startsWith('.') ? extension.substring(1) : extension;\n }\n\n const asset = new Asset({\n name: '',\n type,\n hash: null,\n uri,\n });\n\n Asset.byUri[uri] = asset;\n\n return asset;\n }\n\n // @needsAudit\n /**\n * Downloads the asset data to a local file in the device's cache directory. Once the returned\n * promise is fulfilled without error, the [`localUri`](#localuri) field of this asset points\n * to a local file containing the asset data. The asset is only downloaded if an up-to-date local\n * file for the asset isn't already present due to an earlier download. The downloaded `Asset`\n * will be returned when the promise is resolved.\n * @return Returns a Promise which fulfills with an `Asset` instance.\n */\n async downloadAsync(): Promise {\n if (this.downloaded) {\n return this;\n }\n if (this.downloading) {\n await new Promise((resolve, reject) => {\n this._downloadCallbacks.push({ resolve, reject });\n });\n return this;\n }\n this.downloading = true;\n\n try {\n if (Platform.OS === 'web') {\n if (ImageAssets.isImageType(this.type)) {\n const { width, height, name } = await ImageAssets.getImageInfoAsync(this.uri);\n this.width = width;\n this.height = height;\n this.name = name;\n } else {\n this.name = AssetUris.getFilename(this.uri);\n }\n }\n this.localUri = await downloadAsync(this.uri, this.hash, this.type);\n\n this.downloaded = true;\n this._downloadCallbacks.forEach(({ resolve }) => resolve());\n } catch (e) {\n this._downloadCallbacks.forEach(({ reject }) => reject(e));\n throw e;\n } finally {\n this.downloading = false;\n this._downloadCallbacks = [];\n }\n return this;\n }\n}\n","export function getLocalAssetUri(hash: string, type: string | null): string | null {\n // noop on web\n return null;\n}\n","/* eslint-env browser */\nimport { Platform } from 'expo-modules-core';\n\nimport { getFilename } from './AssetUris';\n\ntype ImageInfo = {\n name: string;\n width: number;\n height: number;\n};\n\nexport function isImageType(type: string): boolean {\n return /^(jpeg|jpg|gif|png|bmp|webp|heic)$/i.test(type);\n}\n\nexport function getImageInfoAsync(url: string): Promise {\n if (!Platform.isDOMAvailable) {\n return Promise.resolve({ name: getFilename(url), width: 0, height: 0 });\n }\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.onerror = reject;\n img.onload = () => {\n resolve({\n name: getFilename(url),\n width: img.naturalWidth,\n height: img.naturalHeight,\n });\n };\n img.src = url;\n });\n}\n","export async function downloadAsync(\n url: string,\n _hash: string | null,\n _type: string\n): Promise {\n return url;\n}\n","import { Asset } from 'expo-asset';\nimport { CodedError } from 'expo-modules-core';\n\nimport ExpoFontLoader from './ExpoFontLoader';\nimport { FontResource, FontSource, FontDisplay } from './Font.types';\n\nfunction uriFromFontSource(asset: any): string | null {\n if (typeof asset === 'string') {\n return asset || null;\n } else if (typeof asset === 'object') {\n return asset.uri || asset.localUri || asset.default || null;\n } else if (typeof asset === 'number') {\n return uriFromFontSource(Asset.fromModule(asset));\n }\n return null;\n}\n\nfunction displayFromFontSource(asset: any): FontDisplay | undefined {\n return asset.display || FontDisplay.AUTO;\n}\n\nexport function fontFamilyNeedsScoping(name: string): boolean {\n return false;\n}\n\nexport function getAssetForSource(source: FontSource): Asset | FontResource {\n const uri = uriFromFontSource(source);\n const display = displayFromFontSource(source);\n\n if (!uri || typeof uri !== 'string') {\n throwInvalidSourceError(uri);\n }\n\n return {\n uri: uri!,\n display,\n };\n}\n\nfunction throwInvalidSourceError(source: any): never {\n let type: string = typeof source;\n if (type === 'object') type = JSON.stringify(source, null, 2);\n throw new CodedError(\n `ERR_FONT_SOURCE`,\n `Expected font asset of type \\`string | FontResource | Asset\\` instead got: ${type}`\n );\n}\n\n// NOTE(EvanBacon): No async keyword!\nexport function loadSingleFontAsync(name: string, input: Asset | FontResource): Promise {\n if (typeof input !== 'object' || typeof input.uri !== 'string' || (input as any).downloadAsync) {\n throwInvalidSourceError(input);\n }\n\n try {\n return ExpoFontLoader.loadAsync(name, input);\n } catch {\n // No-op.\n }\n\n return Promise.resolve();\n}\n\nexport function getNativeFontName(name: string): string {\n return name;\n}\n","export const loaded: { [name: string]: boolean } = {};\nexport const loadPromises: { [name: string]: Promise } = {};\n","import { CodedError, Platform, UnavailabilityError } from 'expo-modules-core';\n\nimport ExpoFontLoader from './ExpoFontLoader';\nimport { FontDisplay, FontSource, FontResource, UnloadFontOptions } from './Font.types';\nimport {\n getAssetForSource,\n loadSingleFontAsync,\n fontFamilyNeedsScoping,\n getNativeFontName,\n} from './FontLoader';\nimport { loaded, loadPromises } from './memory';\nimport { registerStaticFont } from './server';\n\n// @needsAudit\n// note(brentvatne): at some point we may want to warn if this is called outside of a managed app.\n/**\n * Used to transform font family names to the scoped name. This does not need to\n * be called in standalone or bare apps but it will return unscoped font family\n * names if it is called in those contexts.\n *\n * @param fontFamily Name of font to process.\n * @returns Returns a name processed for use with the [current workflow](https://docs.expo.dev/archive/managed-vs-bare/).\n */\nexport function processFontFamily(fontFamily: string | null): string | null {\n if (!fontFamily || !fontFamilyNeedsScoping(fontFamily)) {\n return fontFamily;\n }\n\n if (!isLoaded(fontFamily)) {\n if (__DEV__) {\n if (isLoading(fontFamily)) {\n console.warn(\n `You started loading the font \"${fontFamily}\", but used it before it finished loading. You need to wait for Font.loadAsync to complete before using the font.`\n );\n } else {\n console.warn(\n `fontFamily \"${fontFamily}\" is not a system font and has not been loaded through expo-font.`\n );\n }\n }\n }\n\n return `ExpoFont-${getNativeFontName(fontFamily)}`;\n}\n\n// @needsAudit\n/**\n * Synchronously detect if the font for `fontFamily` has finished loading.\n *\n * @param fontFamily The name used to load the `FontResource`.\n * @return Returns `true` if the font has fully loaded.\n */\nexport function isLoaded(fontFamily: string): boolean {\n if (Platform.OS === 'web') {\n return fontFamily in loaded || !!ExpoFontLoader.isLoaded(fontFamily);\n }\n return fontFamily in loaded || ExpoFontLoader.customNativeFonts?.includes(fontFamily);\n}\n\n// @needsAudit\n/**\n * Synchronously detect if the font for `fontFamily` is still being loaded.\n *\n * @param fontFamily The name used to load the `FontResource`.\n * @returns Returns `true` if the font is still loading.\n */\nexport function isLoading(fontFamily: string): boolean {\n return fontFamily in loadPromises;\n}\n\n// @needsAudit\n/**\n * Highly efficient method for loading fonts from static or remote resources which can then be used\n * with the platform's native text elements. In the browser this generates a `@font-face` block in\n * a shared style sheet for fonts. No CSS is needed to use this method.\n *\n * @param fontFamilyOrFontMap string or map of values that can be used as the [`fontFamily`](https://reactnative.dev/docs/text#style)\n * style prop with React Native Text elements.\n * @param source the font asset that should be loaded into the `fontFamily` namespace.\n *\n * @return Returns a promise that fulfils when the font has loaded. Often you may want to wrap the\n * method in a `try/catch/finally` to ensure the app continues if the font fails to load.\n */\nexport function loadAsync(\n fontFamilyOrFontMap: string | Record,\n source?: FontSource\n): Promise {\n // NOTE(EvanBacon): Static render pass on web must be synchronous to collect all fonts.\n // Because of this, `loadAsync` doesn't use the `async` keyword and deviates from the\n // standard Expo SDK style guide.\n const isServer = Platform.OS === 'web' && typeof window === 'undefined';\n\n if (typeof fontFamilyOrFontMap === 'object') {\n if (source) {\n return Promise.reject(\n new CodedError(\n `ERR_FONT_API`,\n `No fontFamily can be used for the provided source: ${source}. The second argument of \\`loadAsync()\\` can only be used with a \\`string\\` value as the first argument.`\n )\n );\n }\n const fontMap = fontFamilyOrFontMap;\n const names = Object.keys(fontMap);\n\n if (isServer) {\n names.map((name) => registerStaticFont(name, fontMap[name]));\n return Promise.resolve();\n }\n\n return Promise.all(names.map((name) => loadFontInNamespaceAsync(name, fontMap[name]))).then(\n () => {}\n );\n }\n\n if (isServer) {\n registerStaticFont(fontFamilyOrFontMap, source);\n return Promise.resolve();\n }\n\n return loadFontInNamespaceAsync(fontFamilyOrFontMap, source);\n}\n\nasync function loadFontInNamespaceAsync(\n fontFamily: string,\n source?: FontSource | null\n): Promise {\n if (!source) {\n throw new CodedError(\n `ERR_FONT_SOURCE`,\n `Cannot load null or undefined font source: { \"${fontFamily}\": ${source} }. Expected asset of type \\`FontSource\\` for fontFamily of name: \"${fontFamily}\"`\n );\n }\n\n if (loaded[fontFamily]) {\n return;\n }\n\n if (loadPromises.hasOwnProperty(fontFamily)) {\n return loadPromises[fontFamily];\n }\n\n // Important: we want all callers that concurrently try to load the same font to await the same\n // promise. If we're here, we haven't created the promise yet. To ensure we create only one\n // promise in the program, we need to create the promise synchronously without yielding the event\n // loop from this point.\n\n const asset = getAssetForSource(source);\n loadPromises[fontFamily] = (async () => {\n try {\n await loadSingleFontAsync(fontFamily, asset);\n loaded[fontFamily] = true;\n } finally {\n delete loadPromises[fontFamily];\n }\n })();\n\n await loadPromises[fontFamily];\n}\n\n// @needsAudit\n/**\n * Unloads all the custom fonts. This is used for testing.\n */\nexport async function unloadAllAsync(): Promise {\n if (!ExpoFontLoader.unloadAllAsync) {\n throw new UnavailabilityError('expo-font', 'unloadAllAsync');\n }\n\n if (Object.keys(loadPromises).length) {\n throw new CodedError(\n `ERR_UNLOAD`,\n `Cannot unload fonts while they're still loading: ${Object.keys(loadPromises).join(', ')}`\n );\n }\n\n for (const fontFamily of Object.keys(loaded)) {\n delete loaded[fontFamily];\n }\n\n await ExpoFontLoader.unloadAllAsync();\n}\n\n// @needsAudit\n/**\n * Unload custom fonts matching the `fontFamily`s and display values provided.\n * Because fonts are automatically unloaded on every platform this is mostly used for testing.\n *\n * @param fontFamilyOrFontMap The name or names of the custom fonts that will be unloaded.\n * @param options When `fontFamilyOrFontMap` is a string, this should be the font source used to load\n * the custom font originally.\n */\nexport async function unloadAsync(\n fontFamilyOrFontMap: string | Record,\n options?: UnloadFontOptions\n): Promise {\n if (!ExpoFontLoader.unloadAsync) {\n throw new UnavailabilityError('expo-font', 'unloadAsync');\n }\n if (typeof fontFamilyOrFontMap === 'object') {\n if (options) {\n throw new CodedError(\n `ERR_FONT_API`,\n `No fontFamily can be used for the provided options: ${options}. The second argument of \\`unloadAsync()\\` can only be used with a \\`string\\` value as the first argument.`\n );\n }\n const fontMap = fontFamilyOrFontMap;\n const names = Object.keys(fontMap);\n await Promise.all(names.map((name) => unloadFontInNamespaceAsync(name, fontMap[name])));\n return;\n }\n\n return await unloadFontInNamespaceAsync(fontFamilyOrFontMap, options);\n}\n\nasync function unloadFontInNamespaceAsync(\n fontFamily: string,\n options?: UnloadFontOptions | null\n): Promise {\n if (!loaded[fontFamily]) {\n return;\n } else {\n delete loaded[fontFamily];\n }\n\n // Important: we want all callers that concurrently try to load the same font to await the same\n // promise. If we're here, we haven't created the promise yet. To ensure we create only one\n // promise in the program, we need to create the promise synchronously without yielding the event\n // loop from this point.\n\n const nativeFontName = getNativeFontName(fontFamily);\n\n if (!nativeFontName) {\n throw new CodedError(`ERR_FONT_FAMILY`, `Cannot unload an empty name`);\n }\n\n await ExpoFontLoader.unloadAsync(nativeFontName, options);\n}\n\nexport { FontDisplay, FontSource, FontResource, UnloadFontOptions };\n","import { useEffect, useState } from 'react';\n\nimport { loadAsync, isLoaded } from './Font';\nimport { FontSource } from './Font.types';\n\nfunction isMapLoaded(map: string | Record) {\n if (typeof map === 'string') {\n return isLoaded(map);\n } else {\n return Object.keys(map).every((fontFamily) => isLoaded(fontFamily));\n }\n}\n\nfunction useRuntimeFonts(map: string | Record): [boolean, Error | null] {\n const [loaded, setLoaded] = useState(\n // For web rehydration, we need to check if the fonts are already loaded during the static render.\n // Native will also benefit from this optimization.\n isMapLoaded(map)\n );\n const [error, setError] = useState(null);\n\n useEffect(() => {\n loadAsync(map)\n .then(() => setLoaded(true))\n .catch(setError);\n }, []);\n\n return [loaded, error];\n}\n\nfunction useStaticFonts(map: string | Record): [boolean, Error | null] {\n loadAsync(map);\n return [true, null];\n}\n\n// @needsAudit\n/**\n * ```ts\n * const [loaded, error] = useFonts({ ... });\n * ```\n * Load a map of fonts with [`loadAsync`](#loadasyncfontfamilyorfontmap-source). This returns a `boolean` if the fonts are\n * loaded and ready to use. It also returns an error if something went wrong, to use in development.\n *\n * > Note, the fonts are not \"reloaded\" when you dynamically change the font map.\n *\n * @param map A map of `fontFamily`s to [`FontSource`](#fontsource)s. After loading the font you can\n * use the key in the `fontFamily` style prop of a `Text` element.\n *\n * @return\n * - __loaded__ (`boolean`) - A boolean to detect if the font for `fontFamily` has finished\n * loading.\n * - __error__ (`Error | null`) - An error encountered when loading the fonts.\n */\nexport const useFonts: (map: string | Record) => [boolean, Error | null] =\n typeof window === 'undefined' ? useStaticFonts : useRuntimeFonts;\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","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n for (r = 0; r < n.length; r++) o = n[r], t.indexOf(o) >= 0 || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","export enum PermissionStatus {\n /**\n * User has granted the permission.\n */\n GRANTED = 'granted',\n /**\n * User hasn't granted or denied the permission yet.\n */\n UNDETERMINED = 'undetermined',\n /**\n * User has denied the permission.\n */\n DENIED = 'denied',\n}\n\n/**\n * Permission expiration time. Currently, all permissions are granted permanently.\n */\nexport type PermissionExpiration = 'never' | number;\n\n/**\n * An object obtained by permissions get and request functions.\n */\nexport interface PermissionResponse {\n /**\n * Determines the status of the permission.\n */\n status: PermissionStatus;\n /**\n * Determines time when the permission expires.\n */\n expires: PermissionExpiration;\n /**\n * A convenience boolean that indicates if the permission is granted.\n */\n granted: boolean;\n /**\n * Indicates if user can be asked again for specific permission.\n * If not, one should be directed to the Settings app\n * in order to enable/disable the permission.\n */\n canAskAgain: boolean;\n}\n","import { 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","declare global {\n // Add IE-specific interface to Window\n interface Window {\n attachEvent(event: string, listener: EventListener): boolean;\n }\n}\n\n// Used for delegating node actions when browser APIs aren't available\n// like in SSR websites.\nexport const isDOMAvailable = typeof window !== 'undefined' && !!window.document?.createElement;\nexport const canUseEventListeners =\n isDOMAvailable && !!(window.addEventListener || window.attachEvent);\nexport const canUseViewport = isDOMAvailable && !!window.screen;\nexport const isAsyncDebugging = false;\n","import { Platform as ReactNativePlatform, PlatformOSType } from 'react-native';\n\nimport {\n isDOMAvailable,\n canUseEventListeners,\n canUseViewport,\n isAsyncDebugging,\n} from './environment/browser';\n\nexport type PlatformSelectOSType = PlatformOSType | 'native' | 'electron' | 'default';\n\nexport type PlatformSelect = (specifics: { [platform in PlatformSelectOSType]?: T }) => T;\n\nconst Platform = {\n /**\n * Denotes the currently running platform.\n * Can be one of ios, android, web.\n */\n OS: ReactNativePlatform.OS,\n /**\n * Returns the value with the matching platform.\n * Object keys can be any of ios, android, native, web, default.\n *\n * @ios ios, native, default\n * @android android, native, default\n * @web web, default\n */\n select: ReactNativePlatform.select as PlatformSelect,\n /**\n * Denotes if the DOM API is available in the current environment.\n * The DOM is not available in native React runtimes and Node.js.\n */\n isDOMAvailable,\n /**\n * Denotes if the current environment can attach event listeners\n * to the window. This will return false in native React\n * runtimes and Node.js.\n */\n canUseEventListeners,\n /**\n * Denotes if the current environment can inspect properties of the\n * screen on which the current window is being rendered. This will\n * return false in native React runtimes and Node.js.\n */\n canUseViewport,\n /**\n * If the JavaScript is being executed in a remote JavaScript environment.\n * When `true`, synchronous native invocations cannot be executed.\n */\n isAsyncDebugging,\n};\n\nexport default Platform;\n","/**\n * A general error class that should be used for all errors in Expo modules.\n * Guarantees a `code` field that can be used to differentiate between different\n * types of errors without further subclassing Error.\n */\nexport class CodedError extends Error {\n code: string;\n info?: any;\n\n constructor(code: string, message: string) {\n super(message);\n this.code = code;\n }\n}\n","import { 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","import { StatusBarProps } from './StatusBar.types';\n\n// @needsAudit\n/**\n * A component that allows you to configure your status bar without directly calling imperative\n * methods like `setBarStyle`.\n *\n * You will likely have multiple `StatusBar` components mounted in the same app at the same time.\n * For example, if you have multiple screens in your app, you may end up using one per screen.\n * The props of each `StatusBar` component will be merged in the order that they were mounted.\n * This component is built on top of the [StatusBar](https://reactnative.dev/docs/statusbar)\n * component exported from React Native, and it provides defaults that work better for Expo users.\n */\nexport default function ExpoStatusBar(props: StatusBarProps) {\n // StatusBar does nothing on web currently\n return null;\n}\n","import { Platform, PixelRatio, Dimensions } from 'react-native';\nimport type { IUseDetectDevice } from './model';\n\nconst { width, height } = Dimensions.get('window');\n\nconst isTablet = () => {\n let pixelDensity = PixelRatio.get();\n const adjustedWidth = width * pixelDensity;\n const adjustedHeight = height * pixelDensity;\n if (pixelDensity < 2 && (adjustedWidth >= 1000 || adjustedHeight >= 1000)) {\n return true;\n } else {\n return (\n pixelDensity === 2 && (adjustedWidth >= 1824 || adjustedHeight >= 1824)\n );\n }\n};\n\nconst useDetectDevice: IUseDetectDevice = {\n isAndroid: Platform.OS === 'android',\n isIOS: Platform.OS === 'ios',\n isTablet: isTablet(),\n};\n\nexport { useDetectDevice };\n","/* eslint-disable @typescript-eslint/no-shadow */\nimport { useEffect, useState } from 'react';\nimport { Dimensions, ScaledSize } from 'react-native';\n\nconst isOrientationPortrait = ({ width, height }: ScaledSize) =>\n height >= width;\nconst isOrientationLandscape = ({ width, height }: ScaledSize) =>\n width >= height;\n\nexport function useDeviceOrientation() {\n const screen = Dimensions.get('screen');\n const initialState = {\n portrait: isOrientationPortrait(screen),\n landscape: isOrientationLandscape(screen),\n };\n\n const [orientation, setOrientation] = useState(initialState);\n\n useEffect(() => {\n const onChange = ({ screen }: { screen: ScaledSize }) => {\n setOrientation({\n portrait: isOrientationPortrait(screen),\n landscape: isOrientationLandscape(screen),\n });\n };\n\n const subscription = Dimensions.addEventListener('change', onChange);\n\n return () => {\n if (typeof subscription?.remove === 'function') {\n subscription.remove();\n }\n };\n }, []);\n\n return orientation.portrait ? 'PORTRAIT' : 'LANDSCAPE';\n}\n","import { I18nManager, StyleSheet } from 'react-native';\n\nexport const styles = StyleSheet.create({\n container: {\n backgroundColor: 'white',\n borderRadius: 8,\n padding: 12,\n justifyContent: 'center',\n },\n textInput: {\n flexDirection: I18nManager.isRTL ? 'row-reverse' : 'row',\n alignItems: 'center',\n flex: 1,\n },\n input: {\n fontSize: 16,\n flex: 1,\n textAlign: I18nManager.isRTL ? 'right' : 'left',\n },\n label: {\n marginBottom: 4,\n fontSize: 16,\n },\n row: {\n flexDirection: I18nManager.isRTL ? 'row-reverse' : 'row',\n },\n icon: {\n width: 20,\n height: 20,\n },\n});\n","/* eslint-disable @typescript-eslint/no-shadow */\nimport React, { useEffect, useState } from 'react';\nimport {\n Image,\n TextInput,\n TouchableOpacity,\n View,\n TouchableWithoutFeedback,\n StyleSheet,\n} from 'react-native';\nimport type { CTextInput } from './model';\nimport { styles } from './styles';\n\nconst ic_close = require('../../assets/close.png');\n\nconst defaultProps = {\n style: {},\n value: '',\n showIcon: true,\n currency: false,\n numeric: false,\n};\n\nconst TextInputComponent: CTextInput = (props) => {\n const {\n fontFamily,\n style,\n value,\n placeholderTextColor = '#000',\n placeholder = '',\n showIcon,\n inputStyle,\n iconStyle,\n onChangeText = (_value: string) => {},\n renderLeftIcon,\n renderRightIcon,\n } = props;\n\n const [text, setText] = useState('');\n\n useEffect(() => {\n if (value) {\n setText(value);\n }\n }, [value]);\n\n const onChange = (text: string) => {\n setText(text);\n onChangeText(text);\n };\n\n const _renderRightIcon = () => {\n if (showIcon) {\n if (renderRightIcon) {\n return renderRightIcon();\n }\n if (text.length > 0) {\n return (\n onChange('')}>\n \n \n );\n }\n return null;\n }\n return null;\n };\n\n const font = () => {\n if (fontFamily) {\n return {\n fontFamily: fontFamily,\n };\n } else {\n return {};\n }\n };\n\n return (\n \n \n \n {renderLeftIcon?.()}\n \n {_renderRightIcon()}\n \n \n \n );\n};\n\nTextInputComponent.defaultProps = defaultProps;\n\nexport default TextInputComponent;\n","import { I18nManager, StyleSheet } from 'react-native';\n\nexport const styles = StyleSheet.create({\n mainWrap: {\n justifyContent: 'center',\n },\n container: {\n flexShrink: 1,\n borderWidth: 0.5,\n borderColor: '#EEEEEE',\n backgroundColor: 'white',\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 1,\n },\n shadowOpacity: 0.2,\n shadowRadius: 1.41,\n elevation: 2,\n },\n flex1: {\n flex: 1,\n },\n flexShrink: {\n flexShrink: 1,\n },\n wrapTop: {\n justifyContent: 'flex-end',\n },\n dropdown: {\n flexDirection: I18nManager.isRTL ? 'row-reverse' : 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n height: 35,\n },\n title: {\n marginVertical: 5,\n fontSize: 16,\n writingDirection: I18nManager.isRTL ? 'rtl' : 'ltr',\n },\n item: {\n padding: 17,\n flexDirection: I18nManager.isRTL ? 'row-reverse' : 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n textItem: {\n flex: 1,\n fontSize: 16,\n writingDirection: I18nManager.isRTL ? 'rtl' : 'ltr',\n },\n icon: {\n width: 20,\n height: 20,\n },\n input: {\n borderWidth: 0.5,\n borderColor: '#DDDDDD',\n paddingHorizontal: 8,\n marginBottom: 8,\n margin: 6,\n height: 45,\n },\n fullScreen: {\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n","/* eslint-disable @typescript-eslint/no-shadow */\nimport _ from 'lodash';\nimport React, {\n JSXElementConstructor,\n ReactElement,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport {\n Dimensions,\n FlatList,\n I18nManager,\n Image,\n Keyboard,\n KeyboardEvent,\n Modal,\n StyleSheet,\n Text,\n TouchableHighlight,\n TouchableWithoutFeedback,\n View,\n ViewStyle,\n StatusBar,\n} from 'react-native';\nimport { useDetectDevice } from '../../toolkits';\nimport { useDeviceOrientation } from '../../useDeviceOrientation';\nimport CInput from '../TextInput';\nimport { DropdownProps } from './model';\nimport { styles } from './styles';\n\nconst { isTablet } = useDetectDevice;\nconst ic_down = require('../../assets/down.png');\n\nconst statusBarHeight: number = StatusBar.currentHeight || 0;\n\nconst DropdownComponent: (\n props: DropdownProps\n) => ReactElement> | null =\n React.forwardRef((props, currentRef) => {\n const orientation = useDeviceOrientation();\n const {\n testID,\n itemTestIDField,\n onChange,\n style = {},\n containerStyle,\n placeholderStyle,\n selectedTextStyle,\n itemContainerStyle,\n itemTextStyle,\n inputSearchStyle,\n iconStyle,\n selectedTextProps = {},\n data = [],\n labelField,\n valueField,\n searchField,\n value,\n activeColor = '#F6F7F8',\n fontFamily,\n iconColor = 'gray',\n searchPlaceholder,\n placeholder = 'Select item',\n search = false,\n maxHeight = 340,\n minHeight = 0,\n disable = false,\n keyboardAvoiding = true,\n inverted = true,\n renderLeftIcon,\n renderRightIcon,\n renderItem,\n renderInputSearch,\n onFocus,\n onBlur,\n autoScroll = true,\n showsVerticalScrollIndicator = true,\n dropdownPosition = 'auto',\n flatListProps,\n searchQuery,\n backgroundColor,\n onChangeText,\n confirmSelectItem,\n onConfirmSelectItem,\n accessibilityLabel,\n itemAccessibilityLabelField,\n mode = 'default',\n closeModalWhenSelectedItem = true,\n excludeItems = [],\n excludeSearchItems = [],\n } = props;\n\n const ref = useRef(null);\n const refList = useRef(null);\n const [visible, setVisible] = useState(false);\n const [currentValue, setCurrentValue] = useState(null);\n const [listData, setListData] = useState(data);\n const [position, setPosition] = useState();\n const [keyboardHeight, setKeyboardHeight] = useState(0);\n const [searchText, setSearchText] = useState('');\n\n const { width: W, height: H } = Dimensions.get('window');\n const styleContainerVertical: ViewStyle = useMemo(() => {\n return {\n backgroundColor: 'rgba(0,0,0,0.1)',\n alignItems: 'center',\n };\n }, []);\n const styleHorizontal: ViewStyle = useMemo(() => {\n return {\n width: orientation === 'LANDSCAPE' ? W / 2 : '100%',\n alignSelf: 'center',\n };\n }, [W, orientation]);\n\n useImperativeHandle(currentRef, () => {\n return { open: eventOpen, close: eventClose };\n });\n\n useEffect(() => {\n return eventClose;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const excludeData = useCallback(\n (data: any[]) => {\n if (excludeItems.length > 0) {\n const getData = _.differenceWith(\n data,\n excludeItems,\n (obj1, obj2) => _.get(obj1, valueField) === _.get(obj2, valueField)\n );\n return getData || [];\n } else {\n return data || [];\n }\n },\n [excludeItems, valueField]\n );\n\n useEffect(() => {\n const filterData = excludeData(data);\n setListData([...filterData]);\n if (searchText) {\n onSearch(searchText);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [data, searchText]);\n\n const eventOpen = () => {\n if (!disable) {\n setVisible(true);\n if (onFocus) {\n onFocus();\n }\n\n if (searchText.length > 0) {\n onSearch(searchText);\n }\n scrollIndex();\n }\n };\n\n const eventClose = useCallback(() => {\n if (!disable) {\n setVisible(false);\n if (onBlur) {\n onBlur();\n }\n }\n }, [disable, onBlur]);\n\n const font = useCallback(() => {\n if (fontFamily) {\n return {\n fontFamily: fontFamily,\n };\n } else {\n return {};\n }\n }, [fontFamily]);\n\n const _measure = useCallback(() => {\n if (ref && ref?.current) {\n ref.current.measureInWindow((pageX, pageY, width, height) => {\n let isFull = isTablet\n ? false\n : mode === 'modal' || orientation === 'LANDSCAPE';\n\n if (mode === 'auto') {\n isFull = false;\n }\n\n const top = isFull ? 20 : height + pageY + 2;\n const bottom = H - top + height;\n const left = I18nManager.isRTL ? W - width - pageX : pageX;\n\n setPosition({\n isFull,\n width: Math.floor(width),\n top: Math.floor(top + statusBarHeight),\n bottom: Math.floor(bottom - statusBarHeight),\n left: Math.floor(left),\n height: Math.floor(height),\n });\n });\n }\n }, [H, W, orientation, mode]);\n\n const onKeyboardDidShow = useCallback(\n (e: KeyboardEvent) => {\n _measure();\n setKeyboardHeight(e.endCoordinates.height);\n },\n [_measure]\n );\n\n const onKeyboardDidHide = useCallback(() => {\n setKeyboardHeight(0);\n _measure();\n }, [_measure]);\n\n useEffect(() => {\n const susbcriptionKeyboardDidShow = Keyboard.addListener(\n 'keyboardDidShow',\n onKeyboardDidShow\n );\n const susbcriptionKeyboardDidHide = Keyboard.addListener(\n 'keyboardDidHide',\n onKeyboardDidHide\n );\n\n return () => {\n if (typeof susbcriptionKeyboardDidShow?.remove === 'function') {\n susbcriptionKeyboardDidShow.remove();\n }\n\n if (typeof susbcriptionKeyboardDidHide?.remove === 'function') {\n susbcriptionKeyboardDidHide.remove();\n }\n };\n }, [onKeyboardDidHide, onKeyboardDidShow]);\n\n const getValue = useCallback(() => {\n const defaultValue =\n typeof value === 'object' ? _.get(value, valueField) : value;\n\n const getItem = data.filter((e) =>\n _.isEqual(defaultValue, _.get(e, valueField))\n );\n\n if (getItem.length > 0) {\n setCurrentValue(getItem[0]);\n } else {\n setCurrentValue(null);\n }\n }, [data, value, valueField]);\n\n useEffect(() => {\n getValue();\n }, [value, data, getValue]);\n\n const scrollIndex = useCallback(() => {\n if (autoScroll && data.length > 0 && listData.length === data.length) {\n setTimeout(() => {\n if (refList && refList?.current) {\n const defaultValue =\n typeof value === 'object' ? _.get(value, valueField) : value;\n\n const index = _.findIndex(listData, (e: any) =>\n _.isEqual(defaultValue, _.get(e, valueField))\n );\n if (\n listData.length > 0 &&\n index > -1 &&\n index <= listData.length - 1\n ) {\n refList?.current?.scrollToIndex({\n index: index,\n animated: false,\n });\n }\n }\n }, 200);\n }\n }, [autoScroll, data.length, listData, value, valueField]);\n\n const showOrClose = useCallback(() => {\n if (!disable) {\n if (keyboardHeight > 0 && visible) {\n return Keyboard.dismiss();\n }\n\n _measure();\n setVisible(!visible);\n const filterData = excludeData(data);\n setListData(filterData);\n\n if (!visible) {\n if (onFocus) {\n onFocus();\n }\n } else {\n if (onBlur) {\n onBlur();\n }\n }\n if (searchText.length > 0) {\n onSearch(searchText);\n }\n scrollIndex();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n disable,\n keyboardHeight,\n visible,\n _measure,\n data,\n searchText,\n scrollIndex,\n onFocus,\n onBlur,\n ]);\n\n const onSearch = useCallback(\n (text: string) => {\n if (text.length > 0) {\n const defaultFilterFunction = (e: any) => {\n const item = _.get(e, searchField || labelField)\n ?.toLowerCase()\n .replace(/\\s/g, '')\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '');\n const key = text\n .toLowerCase()\n .replace(/\\s/g, '')\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '');\n\n return item.indexOf(key) >= 0;\n };\n\n const propSearchFunction = (e: any) => {\n const labelText = _.get(e, searchField || labelField);\n\n return searchQuery?.(text, labelText);\n };\n\n const dataSearch = data.filter(\n searchQuery ? propSearchFunction : defaultFilterFunction\n );\n\n if (excludeSearchItems.length > 0 || excludeItems.length > 0) {\n const excludeSearchData = _.differenceWith(\n dataSearch,\n excludeSearchItems,\n (obj1, obj2) =>\n _.get(obj1, valueField) === _.get(obj2, valueField)\n );\n\n const filterData = excludeData(excludeSearchData);\n setListData(filterData);\n } else {\n setListData(dataSearch);\n }\n } else {\n const filterData = excludeData(data);\n setListData(filterData);\n }\n },\n [\n data,\n searchQuery,\n excludeSearchItems,\n excludeItems,\n searchField,\n labelField,\n valueField,\n excludeData,\n ]\n );\n\n const onSelect = useCallback(\n (item: any) => {\n if (confirmSelectItem && onConfirmSelectItem) {\n return onConfirmSelectItem(item);\n }\n\n if (onChangeText) {\n setSearchText('');\n onChangeText('');\n }\n onSearch('');\n setCurrentValue(item);\n onChange(item);\n if (closeModalWhenSelectedItem) {\n eventClose();\n }\n },\n [\n confirmSelectItem,\n eventClose,\n onChange,\n onChangeText,\n onConfirmSelectItem,\n onSearch,\n closeModalWhenSelectedItem,\n ]\n );\n\n const _renderDropdown = () => {\n const isSelected = currentValue && _.get(currentValue, valueField);\n return (\n \n \n {renderLeftIcon?.(visible)}\n \n {isSelected !== null\n ? _.get(currentValue, labelField)\n : placeholder}\n \n {renderRightIcon ? (\n renderRightIcon(visible)\n ) : (\n \n )}\n \n \n );\n };\n\n const _renderItem = useCallback(\n ({ item, index }: { item: any; index: number }) => {\n const isSelected = currentValue && _.get(currentValue, valueField);\n const selected = _.isEqual(_.get(item, valueField), isSelected);\n _.assign(item, { _index: index });\n return (\n onSelect(item)}\n >\n \n {renderItem ? (\n renderItem(item, selected)\n ) : (\n \n \n {_.get(item, labelField)}\n \n \n )}\n \n \n );\n },\n [\n accessibilityLabel,\n activeColor,\n currentValue,\n font,\n itemAccessibilityLabelField,\n itemContainerStyle,\n itemTestIDField,\n itemTextStyle,\n labelField,\n onSelect,\n renderItem,\n valueField,\n ]\n );\n\n const renderSearch = useCallback(() => {\n if (search) {\n if (renderInputSearch) {\n return renderInputSearch((text) => {\n if (onChangeText) {\n setSearchText(text);\n onChangeText(text);\n }\n onSearch(text);\n });\n } else {\n return (\n {\n if (onChangeText) {\n setSearchText(e);\n onChangeText(e);\n }\n onSearch(e);\n }}\n placeholderTextColor=\"gray\"\n iconStyle={[{ tintColor: iconColor }, iconStyle]}\n />\n );\n }\n }\n return null;\n }, [\n accessibilityLabel,\n font,\n iconColor,\n iconStyle,\n inputSearchStyle,\n onChangeText,\n onSearch,\n renderInputSearch,\n search,\n searchPlaceholder,\n testID,\n searchText,\n ]);\n\n const _renderList = useCallback(\n (isTopPosition: boolean) => {\n const isInverted = !inverted ? false : isTopPosition;\n\n const _renderListHelper = () => {\n return (\n index.toString()}\n showsVerticalScrollIndicator={showsVerticalScrollIndicator}\n />\n );\n };\n\n return (\n \n \n {isInverted && _renderListHelper()}\n {renderSearch()}\n {!isInverted && _renderListHelper()}\n \n \n );\n },\n [\n _renderItem,\n accessibilityLabel,\n flatListProps,\n listData,\n inverted,\n renderSearch,\n scrollIndex,\n showsVerticalScrollIndicator,\n testID,\n ]\n );\n\n const _renderModal = useCallback(() => {\n if (visible && position) {\n const { isFull, width, height, top, bottom, left } = position;\n\n const onAutoPosition = () => {\n if (keyboardHeight > 0) {\n return bottom < keyboardHeight + height;\n }\n\n return bottom < (search ? 150 : 100);\n };\n\n if (width && top && bottom) {\n const styleVertical: ViewStyle = {\n left: left,\n maxHeight: maxHeight,\n minHeight: minHeight,\n };\n const isTopPosition =\n dropdownPosition === 'auto'\n ? onAutoPosition()\n : dropdownPosition === 'top';\n\n let keyboardStyle: ViewStyle = {};\n\n let extendHeight = !isTopPosition ? top : bottom;\n if (\n keyboardAvoiding &&\n keyboardHeight > 0 &&\n isTopPosition &&\n dropdownPosition === 'auto'\n ) {\n extendHeight = keyboardHeight;\n }\n\n return (\n \n \n \n \n \n {_renderList(isTopPosition)}\n \n \n \n \n \n );\n }\n return null;\n }\n return null;\n }, [\n visible,\n search,\n position,\n keyboardHeight,\n maxHeight,\n minHeight,\n dropdownPosition,\n keyboardAvoiding,\n showOrClose,\n styleContainerVertical,\n backgroundColor,\n containerStyle,\n styleHorizontal,\n _renderList,\n ]);\n\n return (\n \n {_renderDropdown()}\n {_renderModal()}\n \n );\n });\n\nexport default DropdownComponent;\n","import { I18nManager, StyleSheet } from 'react-native';\n\nexport const styles = StyleSheet.create({\n mainWrap: {\n justifyContent: 'center',\n },\n container: {\n flexShrink: 1,\n backgroundColor: 'white',\n borderWidth: 0.5,\n borderColor: '#EEEEEE',\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 1,\n },\n shadowOpacity: 0.2,\n shadowRadius: 1.41,\n elevation: 2,\n },\n flex1: {\n flex: 1,\n },\n flexShrink: {\n flexShrink: 1,\n },\n wrapTop: {\n justifyContent: 'flex-end',\n },\n dropdown: {\n flexDirection: I18nManager.isRTL ? 'row-reverse' : 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n height: 35,\n },\n dropdownInside: {\n flexDirection: I18nManager.isRTL ? 'row-reverse' : 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n minHeight: 35,\n },\n title: {\n marginVertical: 5,\n fontSize: 16,\n writingDirection: I18nManager.isRTL ? 'rtl' : 'ltr',\n },\n wrapItem: {\n marginBottom: 0.5,\n },\n item: {\n padding: 17,\n flexDirection: I18nManager.isRTL ? 'row-reverse' : 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n textItem: {\n flex: 1,\n fontSize: 16,\n writingDirection: I18nManager.isRTL ? 'rtl' : 'ltr',\n },\n icon: {\n width: 20,\n height: 20,\n },\n input: {\n borderWidth: 0.5,\n borderColor: '#DDDDDD',\n paddingHorizontal: 8,\n marginBottom: 8,\n margin: 6,\n height: 45,\n },\n rowSelectedItem: {\n flexDirection: I18nManager.isRTL ? 'row-reverse' : 'row',\n flexWrap: 'wrap',\n },\n selectedItem: {\n padding: 8,\n alignItems: 'center',\n justifyContent: 'center',\n borderWidth: 0.5,\n borderColor: 'gray',\n paddingHorizontal: 8,\n marginVertical: 6,\n marginRight: 8,\n flexDirection: I18nManager.isRTL ? 'row-reverse' : 'row',\n },\n selectedTextItem: {\n marginLeft: 5,\n color: 'gray',\n fontSize: 16,\n writingDirection: I18nManager.isRTL ? 'rtl' : 'ltr',\n },\n selectedTextLeftItem: {\n fontSize: 12,\n color: 'gray',\n writingDirection: I18nManager.isRTL ? 'rtl' : 'ltr',\n },\n fullScreen: {\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n","/* eslint-disable @typescript-eslint/no-shadow */\nimport _ from 'lodash';\nimport React, {\n JSXElementConstructor,\n ReactElement,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport {\n Dimensions,\n FlatList,\n I18nManager,\n Image,\n Keyboard,\n KeyboardEvent,\n Modal,\n StyleSheet,\n Text,\n TouchableHighlight,\n TouchableWithoutFeedback,\n View,\n ViewStyle,\n StatusBar,\n} from 'react-native';\nimport { useDetectDevice } from '../../toolkits';\nimport { useDeviceOrientation } from '../../useDeviceOrientation';\nimport CInput from '../TextInput';\nimport { MultiSelectProps } from './model';\nimport { styles } from './styles';\n\nconst { isTablet } = useDetectDevice;\nconst ic_down = require('../../assets/down.png');\nconst statusBarHeight: number = StatusBar.currentHeight || 0;\n\nconst MultiSelectComponent: (\n props: MultiSelectProps\n) => ReactElement> | null =\n React.forwardRef((props, currentRef) => {\n const orientation = useDeviceOrientation();\n const {\n testID,\n itemTestIDField,\n onChange,\n data = [],\n value,\n style = {},\n labelField,\n valueField,\n searchField,\n selectedStyle,\n selectedTextStyle,\n itemContainerStyle,\n itemTextStyle,\n iconStyle,\n activeColor = '#F6F7F8',\n containerStyle,\n fontFamily,\n placeholderStyle,\n iconColor = 'gray',\n inputSearchStyle,\n searchPlaceholder,\n placeholder = 'Select item',\n search = false,\n maxHeight = 340,\n minHeight = 0,\n maxSelect,\n disable = false,\n keyboardAvoiding = true,\n inside = false,\n inverted = true,\n renderItem,\n renderLeftIcon,\n renderRightIcon,\n renderSelectedItem,\n renderInputSearch,\n onFocus,\n onBlur,\n showsVerticalScrollIndicator = true,\n dropdownPosition = 'auto',\n flatListProps,\n alwaysRenderSelectedItem = false,\n searchQuery,\n backgroundColor,\n onChangeText,\n confirmSelectItem,\n confirmUnSelectItem,\n onConfirmSelectItem,\n accessibilityLabel,\n itemAccessibilityLabelField,\n visibleSelectedItem = true,\n mode = 'default',\n excludeItems = [],\n excludeSearchItems = [],\n } = props;\n\n const ref = useRef(null);\n const [visible, setVisible] = useState(false);\n const [currentValue, setCurrentValue] = useState([]);\n const [listData, setListData] = useState(data);\n const [, setKey] = useState(Math.random());\n const [position, setPosition] = useState();\n const [keyboardHeight, setKeyboardHeight] = useState(0);\n const [searchText, setSearchText] = useState('');\n\n const { width: W, height: H } = Dimensions.get('window');\n const styleContainerVertical: ViewStyle = useMemo(() => {\n return {\n backgroundColor: 'rgba(0,0,0,0.1)',\n alignItems: 'center',\n };\n }, []);\n const styleHorizontal: ViewStyle = useMemo(() => {\n return {\n width: orientation === 'LANDSCAPE' ? W / 2 : '100%',\n alignSelf: 'center',\n };\n }, [W, orientation]);\n\n useImperativeHandle(currentRef, () => {\n return { open: eventOpen, close: eventClose };\n });\n\n useEffect(() => {\n return eventClose;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const excludeData = useCallback(\n (data: any[]) => {\n if (excludeItems.length > 0) {\n const getData = _.differenceWith(\n data,\n excludeItems,\n (obj1, obj2) => _.get(obj1, valueField) === _.get(obj2, valueField)\n );\n return getData || [];\n } else {\n return data || [];\n }\n },\n [excludeItems, valueField]\n );\n\n useEffect(() => {\n const filterData = excludeData(data);\n setListData([...filterData]);\n\n if (searchText) {\n onSearch(searchText);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [data, searchText]);\n\n const eventOpen = () => {\n if (!disable) {\n setVisible(true);\n if (onFocus) {\n onFocus();\n }\n\n if (searchText.length > 0) {\n onSearch(searchText);\n }\n }\n };\n\n const eventClose = () => {\n if (!disable) {\n setVisible(false);\n if (onBlur) {\n onBlur();\n }\n }\n };\n\n const font = useCallback(() => {\n if (fontFamily) {\n return {\n fontFamily: fontFamily,\n };\n } else {\n return {};\n }\n }, [fontFamily]);\n\n const getValue = useCallback(() => {\n setCurrentValue(value ? [...value] : []);\n }, [value]);\n\n const _measure = useCallback(() => {\n if (ref && ref?.current) {\n ref.current.measureInWindow((pageX, pageY, width, height) => {\n let isFull = isTablet\n ? false\n : mode === 'modal' || orientation === 'LANDSCAPE';\n\n if (mode === 'auto') {\n isFull = false;\n }\n\n const top = isFull ? 20 : height + pageY + 2;\n const bottom = H - top + height;\n const left = I18nManager.isRTL ? W - width - pageX : pageX;\n\n setPosition({\n isFull,\n width: Math.floor(width),\n top: Math.floor(top + statusBarHeight),\n bottom: Math.floor(bottom - statusBarHeight),\n left: Math.floor(left),\n height: Math.floor(height),\n });\n });\n }\n }, [H, W, orientation, mode]);\n\n const onKeyboardDidShow = useCallback(\n (e: KeyboardEvent) => {\n _measure();\n setKeyboardHeight(e.endCoordinates.height);\n },\n [_measure]\n );\n\n const onKeyboardDidHide = useCallback(() => {\n setKeyboardHeight(0);\n _measure();\n }, [_measure]);\n\n useEffect(() => {\n const susbcriptionKeyboardDidShow = Keyboard.addListener(\n 'keyboardDidShow',\n onKeyboardDidShow\n );\n const susbcriptionKeyboardDidHide = Keyboard.addListener(\n 'keyboardDidHide',\n onKeyboardDidHide\n );\n\n return () => {\n if (typeof susbcriptionKeyboardDidShow?.remove === 'function') {\n susbcriptionKeyboardDidShow.remove();\n }\n\n if (typeof susbcriptionKeyboardDidHide?.remove === 'function') {\n susbcriptionKeyboardDidHide.remove();\n }\n };\n }, [onKeyboardDidHide, onKeyboardDidShow]);\n\n useEffect(() => {\n getValue();\n }, [getValue, value]);\n\n const showOrClose = useCallback(() => {\n if (!disable) {\n if (keyboardHeight > 0 && visible) {\n return Keyboard.dismiss();\n }\n\n _measure();\n setVisible(!visible);\n const filterData = excludeData(data);\n setListData(filterData);\n\n if (!visible) {\n if (onFocus) {\n onFocus();\n }\n } else {\n if (onBlur) {\n onBlur();\n }\n }\n\n if (searchText.length > 0) {\n onSearch(searchText);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n disable,\n keyboardHeight,\n visible,\n _measure,\n data,\n searchText,\n onFocus,\n onBlur,\n ]);\n\n const onSearch = useCallback(\n (text: string) => {\n if (text.length > 0) {\n const defaultFilterFunction = (e: any) => {\n const item = _.get(e, searchField || labelField)\n ?.toLowerCase()\n .replace(/\\s/g, '')\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '');\n const key = text\n .toLowerCase()\n .replace(/\\s/g, '')\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '');\n\n return item.indexOf(key) >= 0;\n };\n\n const propSearchFunction = (e: any) => {\n const labelText = _.get(e, searchField || labelField);\n\n return searchQuery?.(text, labelText);\n };\n\n const dataSearch = data.filter(\n searchQuery ? propSearchFunction : defaultFilterFunction\n );\n\n if (excludeSearchItems.length > 0 || excludeItems.length > 0) {\n const excludeSearchData = _.differenceWith(\n dataSearch,\n excludeSearchItems,\n (obj1, obj2) =>\n _.get(obj1, valueField) === _.get(obj2, valueField)\n );\n\n const filterData = excludeData(excludeSearchData);\n setListData(filterData);\n } else {\n setListData(dataSearch);\n }\n } else {\n const filterData = excludeData(data);\n setListData(filterData);\n }\n },\n [\n data,\n searchQuery,\n excludeSearchItems,\n excludeItems,\n searchField,\n labelField,\n valueField,\n excludeData,\n ]\n );\n\n const onSelect = useCallback(\n (item: any) => {\n const newCurrentValue = [...currentValue];\n const index = newCurrentValue.findIndex(\n (e) => e === _.get(item, valueField)\n );\n if (index > -1) {\n newCurrentValue.splice(index, 1);\n } else {\n if (maxSelect) {\n if (newCurrentValue.length < maxSelect) {\n newCurrentValue.push(_.get(item, valueField));\n }\n } else {\n newCurrentValue.push(_.get(item, valueField));\n }\n }\n\n if (onConfirmSelectItem) {\n if (index > -1) {\n if (confirmUnSelectItem) {\n onConfirmSelectItem(newCurrentValue);\n } else {\n onChange(newCurrentValue);\n }\n } else {\n if (confirmSelectItem) {\n onConfirmSelectItem(newCurrentValue);\n } else {\n onChange(newCurrentValue);\n }\n }\n } else {\n onChange(newCurrentValue);\n }\n\n setKey(Math.random());\n },\n [\n confirmSelectItem,\n confirmUnSelectItem,\n currentValue,\n maxSelect,\n onChange,\n onConfirmSelectItem,\n valueField,\n ]\n );\n\n const _renderDropdown = () => {\n return (\n \n \n {renderLeftIcon?.(visible)}\n \n {placeholder}\n \n {renderRightIcon ? (\n renderRightIcon(visible)\n ) : (\n \n )}\n \n \n );\n };\n\n const checkSelected = useCallback(\n (item: any) => {\n const index = currentValue.findIndex(\n (e) => e === _.get(item, valueField)\n );\n return index > -1;\n },\n [currentValue, valueField]\n );\n\n const _renderItem = useCallback(\n ({ item, index }: { item: any; index: number }) => {\n const selected = checkSelected(item);\n _.assign(item, { _index: index });\n return (\n onSelect(item)}\n >\n \n {renderItem ? (\n renderItem(item, selected)\n ) : (\n \n \n {_.get(item, labelField)}\n \n \n )}\n \n \n );\n },\n [\n accessibilityLabel,\n activeColor,\n checkSelected,\n font,\n itemAccessibilityLabelField,\n itemContainerStyle,\n itemTestIDField,\n itemTextStyle,\n labelField,\n onSelect,\n renderItem,\n ]\n );\n\n const renderSearch = useCallback(() => {\n if (search) {\n if (renderInputSearch) {\n return renderInputSearch((text) => {\n if (onChangeText) {\n setSearchText(text);\n onChangeText(text);\n }\n onSearch(text);\n });\n } else {\n return (\n {\n if (onChangeText) {\n setSearchText(e);\n onChangeText(e);\n }\n onSearch(e);\n }}\n placeholderTextColor=\"gray\"\n iconStyle={[{ tintColor: iconColor }, iconStyle]}\n />\n );\n }\n }\n return null;\n }, [\n accessibilityLabel,\n font,\n iconColor,\n iconStyle,\n inputSearchStyle,\n onChangeText,\n onSearch,\n renderInputSearch,\n search,\n searchPlaceholder,\n testID,\n ]);\n\n const _renderList = useCallback(\n (isTopPosition: boolean) => {\n const isInverted = !inverted ? false : isTopPosition;\n\n const _renderListHelper = () => {\n return (\n index.toString()}\n showsVerticalScrollIndicator={showsVerticalScrollIndicator}\n />\n );\n };\n\n return (\n \n \n {isInverted && _renderListHelper()}\n {renderSearch()}\n {!isInverted && _renderListHelper()}\n \n \n );\n },\n [\n _renderItem,\n accessibilityLabel,\n flatListProps,\n listData,\n inverted,\n renderSearch,\n showsVerticalScrollIndicator,\n testID,\n ]\n );\n\n const _renderModal = useCallback(() => {\n if (visible && position) {\n const { isFull, width, height, top, bottom, left } = position;\n\n const onAutoPosition = () => {\n if (keyboardHeight > 0) {\n return bottom < keyboardHeight + height;\n }\n\n return bottom < (search ? 150 : 100);\n };\n\n if (width && top && bottom) {\n const styleVertical: ViewStyle = {\n left: left,\n maxHeight: maxHeight,\n minHeight: minHeight,\n };\n const isTopPosition =\n dropdownPosition === 'auto'\n ? onAutoPosition()\n : dropdownPosition === 'top';\n\n let keyboardStyle: ViewStyle = {};\n\n let extendHeight = !isTopPosition ? top : bottom;\n if (\n keyboardAvoiding &&\n keyboardHeight > 0 &&\n isTopPosition &&\n dropdownPosition === 'auto'\n ) {\n extendHeight = keyboardHeight;\n }\n\n return (\n \n \n \n \n \n {_renderList(isTopPosition)}\n \n \n \n \n \n );\n }\n return null;\n }\n return null;\n }, [\n visible,\n search,\n position,\n keyboardHeight,\n maxHeight,\n minHeight,\n dropdownPosition,\n keyboardAvoiding,\n showOrClose,\n styleContainerVertical,\n backgroundColor,\n containerStyle,\n styleHorizontal,\n _renderList,\n ]);\n\n const unSelect = (item: any) => {\n if (!disable) {\n onSelect(item);\n }\n };\n\n const _renderItemSelected = (inside: boolean) => {\n const list = data.filter((e: any) => {\n const check = value?.indexOf(_.get(e, valueField));\n if (check !== -1) {\n return e;\n }\n });\n\n return (\n \n {list.map((e) => {\n if (renderSelectedItem) {\n return (\n unSelect(e)}\n >\n {renderSelectedItem(e, () => {\n unSelect(e);\n })}\n \n );\n } else {\n return (\n unSelect(e)}\n >\n \n \n {_.get(e, labelField)}\n \n \n ⓧ\n \n \n \n );\n }\n })}\n \n );\n };\n\n const _renderInside = () => {\n return (\n \n {_renderDropdownInside()}\n {_renderModal()}\n \n );\n };\n\n const _renderDropdownInside = () => {\n return (\n \n \n {renderLeftIcon?.()}\n {value && value?.length > 0 ? (\n _renderItemSelected(true)\n ) : (\n \n {placeholder}\n \n )}\n {renderRightIcon ? (\n renderRightIcon()\n ) : (\n \n )}\n \n \n );\n };\n\n if (inside) {\n return _renderInside();\n }\n\n return (\n <>\n \n {_renderDropdown()}\n {_renderModal()}\n \n {(!visible || alwaysRenderSelectedItem) &&\n visibleSelectedItem &&\n _renderItemSelected(false)}\n \n );\n });\n\nexport default MultiSelectComponent;\n","import { I18nManager, StyleSheet } from 'react-native';\n\nexport const styles = StyleSheet.create({\n dropdown: {\n width: 58,\n paddingHorizontal: 6,\n height: 26,\n },\n container: {\n width: 60,\n },\n item: {\n flexDirection: I18nManager.isRTL ? 'row-reverse' : 'row',\n padding: 6,\n alignItems: 'center',\n },\n image: {\n width: 20,\n height: 20,\n marginRight: 3,\n marginVertical: 4,\n },\n selectedTextStyle: {\n flex: 1,\n fontSize: 12,\n writingDirection: I18nManager.isRTL ? 'rtl' : 'ltr',\n },\n});\n","import React, {\n useImperativeHandle,\n useMemo,\n useRef,\n ReactElement,\n JSXElementConstructor,\n} from 'react';\nimport { Image, View, Text } from 'react-native';\nimport Dropdown from '../Dropdown';\nimport { SelectCountryProps } from './model';\nimport { styles } from './styles';\n\nconst SelectCountryComponent: (\n props: SelectCountryProps\n) => ReactElement> | null =\n React.forwardRef((props, currentRef) => {\n const {\n data,\n value,\n valueField,\n labelField,\n imageField,\n selectedTextStyle,\n imageStyle,\n } = props;\n const ref: any = useRef(null);\n\n useImperativeHandle(currentRef, () => {\n return { open: eventOpen, close: eventClose };\n });\n\n const eventOpen = () => {\n ref.current.open();\n };\n\n const eventClose = () => {\n ref.current.close();\n };\n\n const _renderItem = (item: any) => {\n return (\n \n \n \n {item[labelField]}\n \n \n );\n };\n\n const selectItem: any = useMemo(() => {\n const index = data.findIndex((e: any) => e[valueField] === value);\n return data[index];\n }, [data, valueField, value]);\n\n return (\n {\n if (selectItem?.image) {\n return (\n \n );\n } else {\n return null;\n }\n }}\n />\n );\n });\n\nexport default SelectCountryComponent;\n","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"animating\", \"color\", \"hidesWhenStopped\", \"size\", \"style\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\n\nvar createSvgCircle = style => /*#__PURE__*/React.createElement(\"circle\", {\n cx: \"16\",\n cy: \"16\",\n fill: \"none\",\n r: \"14\",\n strokeWidth: \"4\",\n style: style\n});\n\nvar ActivityIndicator = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var _props$animating = props.animating,\n animating = _props$animating === void 0 ? true : _props$animating,\n _props$color = props.color,\n color = _props$color === void 0 ? '#1976D2' : _props$color,\n _props$hidesWhenStopp = props.hidesWhenStopped,\n hidesWhenStopped = _props$hidesWhenStopp === void 0 ? true : _props$hidesWhenStopp,\n _props$size = props.size,\n size = _props$size === void 0 ? 'small' : _props$size,\n style = props.style,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n var svg = /*#__PURE__*/React.createElement(\"svg\", {\n height: \"100%\",\n viewBox: \"0 0 32 32\",\n width: \"100%\"\n }, createSvgCircle({\n stroke: color,\n opacity: 0.2\n }), createSvgCircle({\n stroke: color,\n strokeDasharray: 80,\n strokeDashoffset: 60\n }));\n return /*#__PURE__*/React.createElement(View, _extends({}, other, {\n accessibilityRole: \"progressbar\",\n accessibilityValueMax: 1,\n accessibilityValueMin: 0,\n ref: forwardedRef,\n style: [styles.container, style]\n }), /*#__PURE__*/React.createElement(View, {\n children: svg,\n style: [typeof size === 'number' ? {\n height: size,\n width: size\n } : indicatorSizes[size], styles.animation, !animating && styles.animationPause, !animating && hidesWhenStopped && styles.hidesWhenStopped]\n }));\n});\nActivityIndicator.displayName = 'ActivityIndicator';\nvar styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n justifyContent: 'center'\n },\n hidesWhenStopped: {\n visibility: 'hidden'\n },\n animation: {\n animationDuration: '0.75s',\n animationKeyframes: [{\n '0%': {\n transform: [{\n rotate: '0deg'\n }]\n },\n '100%': {\n transform: [{\n rotate: '360deg'\n }]\n }\n }],\n animationTimingFunction: 'linear',\n animationIterationCount: 'infinite'\n },\n animationPause: {\n animationPlayState: 'paused'\n }\n});\nvar indicatorSizes = StyleSheet.create({\n small: {\n width: 20,\n height: 20\n },\n large: {\n width: 36,\n height: 36\n }\n});\nexport default ActivityIndicator;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\nimport NativeAnimatedNonTurboModule from './NativeAnimatedModule';\nimport NativeAnimatedTurboModule from './NativeAnimatedTurboModule';\nimport NativeEventEmitter from '../NativeEventEmitter';\nimport Platform from '../../../exports/Platform';\nimport invariant from 'fbjs/lib/invariant'; // TODO T69437152 @petetheheat - Delete this fork when Fabric ships to 100%.\n\nvar NativeAnimatedModule = Platform.OS === 'ios' && global.RN$Bridgeless ? NativeAnimatedTurboModule : NativeAnimatedNonTurboModule;\nvar __nativeAnimatedNodeTagCount = 1;\n/* used for animated nodes */\n\nvar __nativeAnimationIdCount = 1;\n/* used for started animations */\n\nvar nativeEventEmitter;\nvar waitingForQueuedOperations = new Set();\nvar queueOperations = false;\nvar queue = [];\n/**\n * Simple wrappers around NativeAnimatedModule to provide flow and autocomplete support for\n * the native module methods\n */\n\nvar API = {\n getValue: function getValue(tag, saveValueCallback) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n\n if (NativeAnimatedModule.getValue) {\n NativeAnimatedModule.getValue(tag, saveValueCallback);\n }\n },\n setWaitingForIdentifier: function setWaitingForIdentifier(id) {\n waitingForQueuedOperations.add(id);\n queueOperations = true;\n },\n unsetWaitingForIdentifier: function unsetWaitingForIdentifier(id) {\n waitingForQueuedOperations.delete(id);\n\n if (waitingForQueuedOperations.size === 0) {\n queueOperations = false;\n API.disableQueue();\n }\n },\n disableQueue: function disableQueue() {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n\n if (Platform.OS === 'android') {\n NativeAnimatedModule.startOperationBatch();\n }\n\n for (var q = 0, l = queue.length; q < l; q++) {\n queue[q]();\n }\n\n queue.length = 0;\n\n if (Platform.OS === 'android') {\n NativeAnimatedModule.finishOperationBatch();\n }\n },\n queueOperation: fn => {\n if (queueOperations) {\n queue.push(fn);\n } else {\n fn();\n }\n },\n createAnimatedNode: function createAnimatedNode(tag, config) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.createAnimatedNode(tag, config));\n },\n startListeningToAnimatedNodeValue: function startListeningToAnimatedNodeValue(tag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.startListeningToAnimatedNodeValue(tag));\n },\n stopListeningToAnimatedNodeValue: function stopListeningToAnimatedNodeValue(tag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.stopListeningToAnimatedNodeValue(tag));\n },\n connectAnimatedNodes: function connectAnimatedNodes(parentTag, childTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.connectAnimatedNodes(parentTag, childTag));\n },\n disconnectAnimatedNodes: function disconnectAnimatedNodes(parentTag, childTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.disconnectAnimatedNodes(parentTag, childTag));\n },\n startAnimatingNode: function startAnimatingNode(animationId, nodeTag, config, endCallback) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.startAnimatingNode(animationId, nodeTag, config, endCallback));\n },\n stopAnimation: function stopAnimation(animationId) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.stopAnimation(animationId));\n },\n setAnimatedNodeValue: function setAnimatedNodeValue(nodeTag, value) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.setAnimatedNodeValue(nodeTag, value));\n },\n setAnimatedNodeOffset: function setAnimatedNodeOffset(nodeTag, offset) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.setAnimatedNodeOffset(nodeTag, offset));\n },\n flattenAnimatedNodeOffset: function flattenAnimatedNodeOffset(nodeTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.flattenAnimatedNodeOffset(nodeTag));\n },\n extractAnimatedNodeOffset: function extractAnimatedNodeOffset(nodeTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.extractAnimatedNodeOffset(nodeTag));\n },\n connectAnimatedNodeToView: function connectAnimatedNodeToView(nodeTag, viewTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.connectAnimatedNodeToView(nodeTag, viewTag));\n },\n disconnectAnimatedNodeFromView: function disconnectAnimatedNodeFromView(nodeTag, viewTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.disconnectAnimatedNodeFromView(nodeTag, viewTag));\n },\n restoreDefaultValues: function restoreDefaultValues(nodeTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available'); // Backwards compat with older native runtimes, can be removed later.\n\n if (NativeAnimatedModule.restoreDefaultValues != null) {\n API.queueOperation(() => NativeAnimatedModule.restoreDefaultValues(nodeTag));\n }\n },\n dropAnimatedNode: function dropAnimatedNode(tag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.dropAnimatedNode(tag));\n },\n addAnimatedEventToView: function addAnimatedEventToView(viewTag, eventName, eventMapping) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.addAnimatedEventToView(viewTag, eventName, eventMapping));\n },\n\n removeAnimatedEventFromView(viewTag, eventName, animatedNodeTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(() => NativeAnimatedModule.removeAnimatedEventFromView(viewTag, eventName, animatedNodeTag));\n }\n\n};\n/**\n * Styles allowed by the native animated implementation.\n *\n * In general native animated implementation should support any numeric property that doesn't need\n * to be updated through the shadow view hierarchy (all non-layout properties).\n */\n\nvar SUPPORTED_STYLES = {\n opacity: true,\n transform: true,\n borderRadius: true,\n borderBottomEndRadius: true,\n borderBottomLeftRadius: true,\n borderBottomRightRadius: true,\n borderBottomStartRadius: true,\n borderTopEndRadius: true,\n borderTopLeftRadius: true,\n borderTopRightRadius: true,\n borderTopStartRadius: true,\n elevation: true,\n zIndex: true,\n\n /* ios styles */\n shadowOpacity: true,\n shadowRadius: true,\n\n /* legacy android transform properties */\n scaleX: true,\n scaleY: true,\n translateX: true,\n translateY: true\n};\nvar SUPPORTED_TRANSFORMS = {\n translateX: true,\n translateY: true,\n scale: true,\n scaleX: true,\n scaleY: true,\n rotate: true,\n rotateX: true,\n rotateY: true,\n rotateZ: true,\n perspective: true\n};\nvar SUPPORTED_INTERPOLATION_PARAMS = {\n inputRange: true,\n outputRange: true,\n extrapolate: true,\n extrapolateRight: true,\n extrapolateLeft: true\n};\n\nfunction addWhitelistedStyleProp(prop) {\n SUPPORTED_STYLES[prop] = true;\n}\n\nfunction addWhitelistedTransformProp(prop) {\n SUPPORTED_TRANSFORMS[prop] = true;\n}\n\nfunction addWhitelistedInterpolationParam(param) {\n SUPPORTED_INTERPOLATION_PARAMS[param] = true;\n}\n\nfunction validateTransform(configs) {\n configs.forEach(config => {\n if (!SUPPORTED_TRANSFORMS.hasOwnProperty(config.property)) {\n throw new Error(\"Property '\" + config.property + \"' is not supported by native animated module\");\n }\n });\n}\n\nfunction validateStyles(styles) {\n for (var _key in styles) {\n if (!SUPPORTED_STYLES.hasOwnProperty(_key)) {\n throw new Error(\"Style property '\" + _key + \"' is not supported by native animated module\");\n }\n }\n}\n\nfunction validateInterpolation(config) {\n for (var _key2 in config) {\n if (!SUPPORTED_INTERPOLATION_PARAMS.hasOwnProperty(_key2)) {\n throw new Error(\"Interpolation property '\" + _key2 + \"' is not supported by native animated module\");\n }\n }\n}\n\nfunction generateNewNodeTag() {\n return __nativeAnimatedNodeTagCount++;\n}\n\nexport function generateNewAnimationId() {\n return __nativeAnimationIdCount++;\n}\n\nfunction assertNativeAnimatedModule() {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n}\n\nvar _warnedMissingNativeAnimated = false;\nexport function shouldUseNativeDriver(config) {\n if (config.useNativeDriver == null) {\n console.warn('Animated: `useNativeDriver` was not specified. This is a required ' + 'option and must be explicitly set to `true` or `false`');\n }\n\n if (config.useNativeDriver === true && !NativeAnimatedModule) {\n if (!_warnedMissingNativeAnimated) {\n console.warn('Animated: `useNativeDriver` is not supported because the native ' + 'animated module is missing. Falling back to JS-based animation. To ' + 'resolve this, add `RCTAnimation` module to this app, or remove ' + '`useNativeDriver`. ' + 'Make sure to run `pod install` first. Read more about autolinking: https://github.com/react-native-community/cli/blob/master/docs/autolinking.md');\n _warnedMissingNativeAnimated = true;\n }\n\n return false;\n }\n\n return config.useNativeDriver || false;\n}\n\nfunction transformDataType(value) {\n // Change the string type to number type so we can reuse the same logic in\n // iOS and Android platform\n if (typeof value !== 'string') {\n return value;\n }\n\n if (/deg$/.test(value)) {\n var degrees = parseFloat(value) || 0;\n var radians = degrees * Math.PI / 180.0;\n return radians;\n } else {\n return value;\n }\n}\n\nexport default {\n API,\n addWhitelistedStyleProp,\n addWhitelistedTransformProp,\n addWhitelistedInterpolationParam,\n validateStyles,\n validateTransform,\n validateInterpolation,\n generateNewNodeTag,\n generateNewAnimationId,\n assertNativeAnimatedModule,\n shouldUseNativeDriver,\n transformDataType,\n\n // $FlowExpectedError - unsafe getter lint suppresion\n get nativeEventEmitter() {\n if (!nativeEventEmitter) {\n nativeEventEmitter = new NativeEventEmitter(NativeAnimatedModule);\n }\n\n return nativeEventEmitter;\n }\n\n};","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport invariant from 'fbjs/lib/invariant';\nexport function get(name) {\n return null;\n}\nexport function getEnforcing(name) {\n var module = get(name);\n invariant(module != null, \"TurboModuleRegistry.getEnforcing(...): '\" + name + \"' could not be found. \" + 'Verify that a module by this name is registered in the native binary.');\n return module;\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nvar NativeAnimatedAPI = NativeAnimatedHelper.API;\nimport invariant from 'fbjs/lib/invariant';\nvar _uniqueId = 1; // Note(vjeux): this would be better as an interface but flow doesn't\n// support them yet\n\nclass AnimatedNode {\n __attach() {}\n\n __detach() {\n if (this.__isNative && this.__nativeTag != null) {\n NativeAnimatedHelper.API.dropAnimatedNode(this.__nativeTag);\n this.__nativeTag = undefined;\n }\n }\n\n __getValue() {}\n\n __getAnimatedValue() {\n return this.__getValue();\n }\n\n __addChild(child) {}\n\n __removeChild(child) {}\n\n __getChildren() {\n return [];\n }\n /* Methods and props used by native Animated impl */\n\n\n constructor() {\n this._listeners = {};\n }\n\n __makeNative() {\n if (!this.__isNative) {\n throw new Error('This node cannot be made a \"native\" animated node');\n }\n\n if (this.hasListeners()) {\n this._startListeningToNativeValueUpdates();\n }\n }\n /**\n * Adds an asynchronous listener to the value so you can observe updates from\n * animations. This is useful because there is no way to\n * synchronously read the value because it might be driven natively.\n *\n * See https://reactnative.dev/docs/animatedvalue.html#addlistener\n */\n\n\n addListener(callback) {\n var id = String(_uniqueId++);\n this._listeners[id] = callback;\n\n if (this.__isNative) {\n this._startListeningToNativeValueUpdates();\n }\n\n return id;\n }\n /**\n * Unregister a listener. The `id` param shall match the identifier\n * previously returned by `addListener()`.\n *\n * See https://reactnative.dev/docs/animatedvalue.html#removelistener\n */\n\n\n removeListener(id) {\n delete this._listeners[id];\n\n if (this.__isNative && !this.hasListeners()) {\n this._stopListeningForNativeValueUpdates();\n }\n }\n /**\n * Remove all registered listeners.\n *\n * See https://reactnative.dev/docs/animatedvalue.html#removealllisteners\n */\n\n\n removeAllListeners() {\n this._listeners = {};\n\n if (this.__isNative) {\n this._stopListeningForNativeValueUpdates();\n }\n }\n\n hasListeners() {\n return !!Object.keys(this._listeners).length;\n }\n\n _startListeningToNativeValueUpdates() {\n if (this.__nativeAnimatedValueListener && !this.__shouldUpdateListenersForNewNativeTag) {\n return;\n }\n\n if (this.__shouldUpdateListenersForNewNativeTag) {\n this.__shouldUpdateListenersForNewNativeTag = false;\n\n this._stopListeningForNativeValueUpdates();\n }\n\n NativeAnimatedAPI.startListeningToAnimatedNodeValue(this.__getNativeTag());\n this.__nativeAnimatedValueListener = NativeAnimatedHelper.nativeEventEmitter.addListener('onAnimatedValueUpdate', data => {\n if (data.tag !== this.__getNativeTag()) {\n return;\n }\n\n this._onAnimatedValueUpdateReceived(data.value);\n });\n }\n\n _onAnimatedValueUpdateReceived(value) {\n this.__callListeners(value);\n }\n\n __callListeners(value) {\n for (var _key in this._listeners) {\n this._listeners[_key]({\n value\n });\n }\n }\n\n _stopListeningForNativeValueUpdates() {\n if (!this.__nativeAnimatedValueListener) {\n return;\n }\n\n this.__nativeAnimatedValueListener.remove();\n\n this.__nativeAnimatedValueListener = null;\n NativeAnimatedAPI.stopListeningToAnimatedNodeValue(this.__getNativeTag());\n }\n\n __getNativeTag() {\n var _this$__nativeTag;\n\n NativeAnimatedHelper.assertNativeAnimatedModule();\n invariant(this.__isNative, 'Attempt to get native tag from node not marked as \"native\"');\n var nativeTag = (_this$__nativeTag = this.__nativeTag) !== null && _this$__nativeTag !== void 0 ? _this$__nativeTag : NativeAnimatedHelper.generateNewNodeTag();\n\n if (this.__nativeTag == null) {\n this.__nativeTag = nativeTag;\n NativeAnimatedHelper.API.createAnimatedNode(nativeTag, this.__getNativeConfig());\n this.__shouldUpdateListenersForNewNativeTag = true;\n }\n\n return nativeTag;\n }\n\n __getNativeConfig() {\n throw new Error('This JS animated node type cannot be used as native animated node');\n }\n\n toJSON() {\n return this.__getValue();\n }\n\n}\n\nexport default AnimatedNode;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport _createForOfIteratorHelperLoose from \"@babel/runtime/helpers/createForOfIteratorHelperLoose\";\nimport AnimatedNode from './AnimatedNode';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\n\nclass AnimatedWithChildren extends AnimatedNode {\n constructor() {\n super();\n this._children = [];\n }\n\n __makeNative() {\n if (!this.__isNative) {\n this.__isNative = true;\n\n for (var _iterator = _createForOfIteratorHelperLoose(this._children), _step; !(_step = _iterator()).done;) {\n var child = _step.value;\n\n child.__makeNative();\n\n NativeAnimatedHelper.API.connectAnimatedNodes(this.__getNativeTag(), child.__getNativeTag());\n }\n }\n\n super.__makeNative();\n }\n\n __addChild(child) {\n if (this._children.length === 0) {\n this.__attach();\n }\n\n this._children.push(child);\n\n if (this.__isNative) {\n // Only accept \"native\" animated nodes as children\n child.__makeNative();\n\n NativeAnimatedHelper.API.connectAnimatedNodes(this.__getNativeTag(), child.__getNativeTag());\n }\n }\n\n __removeChild(child) {\n var index = this._children.indexOf(child);\n\n if (index === -1) {\n console.warn(\"Trying to remove a child that doesn't exist\");\n return;\n }\n\n if (this.__isNative && child.__isNative) {\n NativeAnimatedHelper.API.disconnectAnimatedNodes(this.__getNativeTag(), child.__getNativeTag());\n }\n\n this._children.splice(index, 1);\n\n if (this._children.length === 0) {\n this.__detach();\n }\n }\n\n __getChildren() {\n return this._children;\n }\n\n __callListeners(value) {\n super.__callListeners(value);\n\n if (!this.__isNative) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(this._children), _step2; !(_step2 = _iterator2()).done;) {\n var child = _step2.value;\n\n if (child.__getValue) {\n child.__callListeners(child.__getValue());\n }\n }\n }\n }\n\n}\n\nexport default AnimatedWithChildren;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n/* eslint no-bitwise: 0 */\n'use strict';\n\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport invariant from 'fbjs/lib/invariant';\nimport normalizeColor from 'normalize-css-color';\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar linear = t => t;\n/**\n * Very handy helper to map input ranges to output ranges with an easing\n * function and custom behavior outside of the ranges.\n */\n\n\nfunction createInterpolation(config) {\n if (config.outputRange && typeof config.outputRange[0] === 'string') {\n return createInterpolationFromStringOutputRange(config);\n }\n\n var outputRange = config.outputRange;\n checkInfiniteRange('outputRange', outputRange);\n var inputRange = config.inputRange;\n checkInfiniteRange('inputRange', inputRange);\n checkValidInputRange(inputRange);\n invariant(inputRange.length === outputRange.length, 'inputRange (' + inputRange.length + ') and outputRange (' + outputRange.length + ') must have the same length');\n var easing = config.easing || linear;\n var extrapolateLeft = 'extend';\n\n if (config.extrapolateLeft !== undefined) {\n extrapolateLeft = config.extrapolateLeft;\n } else if (config.extrapolate !== undefined) {\n extrapolateLeft = config.extrapolate;\n }\n\n var extrapolateRight = 'extend';\n\n if (config.extrapolateRight !== undefined) {\n extrapolateRight = config.extrapolateRight;\n } else if (config.extrapolate !== undefined) {\n extrapolateRight = config.extrapolate;\n }\n\n return input => {\n invariant(typeof input === 'number', 'Cannot interpolation an input which is not a number');\n var range = findRange(input, inputRange);\n return interpolate(input, inputRange[range], inputRange[range + 1], outputRange[range], outputRange[range + 1], easing, extrapolateLeft, extrapolateRight);\n };\n}\n\nfunction interpolate(input, inputMin, inputMax, outputMin, outputMax, easing, extrapolateLeft, extrapolateRight) {\n var result = input; // Extrapolate\n\n if (result < inputMin) {\n if (extrapolateLeft === 'identity') {\n return result;\n } else if (extrapolateLeft === 'clamp') {\n result = inputMin;\n } else if (extrapolateLeft === 'extend') {// noop\n }\n }\n\n if (result > inputMax) {\n if (extrapolateRight === 'identity') {\n return result;\n } else if (extrapolateRight === 'clamp') {\n result = inputMax;\n } else if (extrapolateRight === 'extend') {// noop\n }\n }\n\n if (outputMin === outputMax) {\n return outputMin;\n }\n\n if (inputMin === inputMax) {\n if (input <= inputMin) {\n return outputMin;\n }\n\n return outputMax;\n } // Input Range\n\n\n if (inputMin === -Infinity) {\n result = -result;\n } else if (inputMax === Infinity) {\n result = result - inputMin;\n } else {\n result = (result - inputMin) / (inputMax - inputMin);\n } // Easing\n\n\n result = easing(result); // Output Range\n\n if (outputMin === -Infinity) {\n result = -result;\n } else if (outputMax === Infinity) {\n result = result + outputMin;\n } else {\n result = result * (outputMax - outputMin) + outputMin;\n }\n\n return result;\n}\n\nfunction colorToRgba(input) {\n var normalizedColor = normalizeColor(input);\n\n if (normalizedColor === null || typeof normalizedColor !== 'number') {\n return input;\n }\n\n normalizedColor = normalizedColor || 0;\n var r = (normalizedColor & 0xff000000) >>> 24;\n var g = (normalizedColor & 0x00ff0000) >>> 16;\n var b = (normalizedColor & 0x0000ff00) >>> 8;\n var a = (normalizedColor & 0x000000ff) / 255;\n return \"rgba(\" + r + \", \" + g + \", \" + b + \", \" + a + \")\";\n}\n\nvar stringShapeRegex = /[+-]?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][+-]?\\d+)?/g;\n/**\n * Supports string shapes by extracting numbers so new values can be computed,\n * and recombines those values into new strings of the same shape. Supports\n * things like:\n *\n * rgba(123, 42, 99, 0.36) // colors\n * -45deg // values with units\n */\n\nfunction createInterpolationFromStringOutputRange(config) {\n var outputRange = config.outputRange;\n invariant(outputRange.length >= 2, 'Bad output range');\n outputRange = outputRange.map(colorToRgba);\n checkPattern(outputRange); // ['rgba(0, 100, 200, 0)', 'rgba(50, 150, 250, 0.5)']\n // ->\n // [\n // [0, 50],\n // [100, 150],\n // [200, 250],\n // [0, 0.5],\n // ]\n\n /* $FlowFixMe(>=0.18.0): `outputRange[0].match()` can return `null`. Need to\n * guard against this possibility.\n */\n\n var outputRanges = outputRange[0].match(stringShapeRegex).map(() => []);\n outputRange.forEach(value => {\n /* $FlowFixMe(>=0.18.0): `value.match()` can return `null`. Need to guard\n * against this possibility.\n */\n value.match(stringShapeRegex).forEach((number, i) => {\n outputRanges[i].push(+number);\n });\n });\n var interpolations = outputRange[0].match(stringShapeRegex)\n /* $FlowFixMe(>=0.18.0): `outputRange[0].match()` can return `null`. Need\n * to guard against this possibility. */\n .map((value, i) => {\n return createInterpolation(_objectSpread(_objectSpread({}, config), {}, {\n outputRange: outputRanges[i]\n }));\n }); // rgba requires that the r,g,b are integers.... so we want to round them, but we *dont* want to\n // round the opacity (4th column).\n\n var shouldRound = isRgbOrRgba(outputRange[0]);\n return input => {\n var i = 0; // 'rgba(0, 100, 200, 0)'\n // ->\n // 'rgba(${interpolations[0](input)}, ${interpolations[1](input)}, ...'\n\n return outputRange[0].replace(stringShapeRegex, () => {\n var val = +interpolations[i++](input);\n\n if (shouldRound) {\n val = i < 4 ? Math.round(val) : Math.round(val * 1000) / 1000;\n }\n\n return String(val);\n });\n };\n}\n\nfunction isRgbOrRgba(range) {\n return typeof range === 'string' && range.startsWith('rgb');\n}\n\nfunction checkPattern(arr) {\n var pattern = arr[0].replace(stringShapeRegex, '');\n\n for (var i = 1; i < arr.length; ++i) {\n invariant(pattern === arr[i].replace(stringShapeRegex, ''), 'invalid pattern ' + arr[0] + ' and ' + arr[i]);\n }\n}\n\nfunction findRange(input, inputRange) {\n var i;\n\n for (i = 1; i < inputRange.length - 1; ++i) {\n if (inputRange[i] >= input) {\n break;\n }\n }\n\n return i - 1;\n}\n\nfunction checkValidInputRange(arr) {\n invariant(arr.length >= 2, 'inputRange must have at least 2 elements');\n\n for (var i = 1; i < arr.length; ++i) {\n invariant(arr[i] >= arr[i - 1],\n /* $FlowFixMe(>=0.13.0) - In the addition expression below this comment,\n * one or both of the operands may be something that doesn't cleanly\n * convert to a string, like undefined, null, and object, etc. If you really\n * mean this implicit string conversion, you can do something like\n * String(myThing)\n */\n 'inputRange must be monotonically non-decreasing ' + arr);\n }\n}\n\nfunction checkInfiniteRange(name, arr) {\n invariant(arr.length >= 2, name + ' must have at least 2 elements');\n invariant(arr.length !== 2 || arr[0] !== -Infinity || arr[1] !== Infinity,\n /* $FlowFixMe(>=0.13.0) - In the addition expression below this comment,\n * one or both of the operands may be something that doesn't cleanly convert\n * to a string, like undefined, null, and object, etc. If you really mean\n * this implicit string conversion, you can do something like\n * String(myThing)\n */\n name + 'cannot be ]-infinity;+infinity[ ' + arr);\n}\n\nclass AnimatedInterpolation extends AnimatedWithChildren {\n // Export for testing.\n constructor(parent, config) {\n super();\n this._parent = parent;\n this._config = config;\n this._interpolation = createInterpolation(config);\n }\n\n __makeNative() {\n this._parent.__makeNative();\n\n super.__makeNative();\n }\n\n __getValue() {\n var parentValue = this._parent.__getValue();\n\n invariant(typeof parentValue === 'number', 'Cannot interpolate an input which is not a number.');\n return this._interpolation(parentValue);\n }\n\n interpolate(config) {\n return new AnimatedInterpolation(this, config);\n }\n\n __attach() {\n this._parent.__addChild(this);\n }\n\n __detach() {\n this._parent.__removeChild(this);\n\n super.__detach();\n }\n\n __transformDataType(range) {\n return range.map(NativeAnimatedHelper.transformDataType);\n }\n\n __getNativeConfig() {\n if (__DEV__) {\n NativeAnimatedHelper.validateInterpolation(this._config);\n }\n\n return {\n inputRange: this._config.inputRange,\n // Only the `outputRange` can contain strings so we don't need to transform `inputRange` here\n\n /* $FlowFixMe(>=0.38.0) - Flow error detected during the deployment of\n * v0.38.0. To see the error, remove this comment and run flow */\n outputRange: this.__transformDataType(this._config.outputRange),\n extrapolateLeft: this._config.extrapolateLeft || this._config.extrapolate || 'extend',\n extrapolateRight: this._config.extrapolateRight || this._config.extrapolate || 'extend',\n type: 'interpolation'\n };\n }\n\n}\n\nAnimatedInterpolation.__createInterpolation = createInterpolation;\nexport default AnimatedInterpolation;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport InteractionManager from '../../../../exports/InteractionManager';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nvar NativeAnimatedAPI = NativeAnimatedHelper.API;\n/**\n * Animated works by building a directed acyclic graph of dependencies\n * transparently when you render your Animated components.\n *\n * new Animated.Value(0)\n * .interpolate() .interpolate() new Animated.Value(1)\n * opacity translateY scale\n * style transform\n * View#234 style\n * View#123\n *\n * A) Top Down phase\n * When an Animated.Value is updated, we recursively go down through this\n * graph in order to find leaf nodes: the views that we flag as needing\n * an update.\n *\n * B) Bottom Up phase\n * When a view is flagged as needing an update, we recursively go back up\n * in order to build the new value that it needs. The reason why we need\n * this two-phases process is to deal with composite props such as\n * transform which can receive values from multiple parents.\n */\n\nfunction _flush(rootNode) {\n var animatedStyles = new Set();\n\n function findAnimatedStyles(node) {\n /* $FlowFixMe(>=0.68.0 site=react_native_fb) This comment suppresses an\n * error found when Flow v0.68 was deployed. To see the error delete this\n * comment and run Flow. */\n if (typeof node.update === 'function') {\n animatedStyles.add(node);\n } else {\n node.__getChildren().forEach(findAnimatedStyles);\n }\n }\n\n findAnimatedStyles(rootNode);\n /* $FlowFixMe */\n\n animatedStyles.forEach(animatedStyle => animatedStyle.update());\n}\n/**\n * Standard value for driving animations. One `Animated.Value` can drive\n * multiple properties in a synchronized fashion, but can only be driven by one\n * mechanism at a time. Using a new mechanism (e.g. starting a new animation,\n * or calling `setValue`) will stop any previous ones.\n *\n * See https://reactnative.dev/docs/animatedvalue.html\n */\n\n\nclass AnimatedValue extends AnimatedWithChildren {\n constructor(value) {\n super();\n\n if (typeof value !== 'number') {\n throw new Error('AnimatedValue: Attempting to set value to undefined');\n }\n\n this._startingValue = this._value = value;\n this._offset = 0;\n this._animation = null;\n }\n\n __detach() {\n if (this.__isNative) {\n NativeAnimatedAPI.getValue(this.__getNativeTag(), value => {\n this._value = value;\n });\n }\n\n this.stopAnimation();\n\n super.__detach();\n }\n\n __getValue() {\n return this._value + this._offset;\n }\n /**\n * Directly set the value. This will stop any animations running on the value\n * and update all the bound properties.\n *\n * See https://reactnative.dev/docs/animatedvalue.html#setvalue\n */\n\n\n setValue(value) {\n if (this._animation) {\n this._animation.stop();\n\n this._animation = null;\n }\n\n this._updateValue(value, !this.__isNative\n /* don't perform a flush for natively driven values */\n );\n\n if (this.__isNative) {\n NativeAnimatedAPI.setAnimatedNodeValue(this.__getNativeTag(), value);\n }\n }\n /**\n * Sets an offset that is applied on top of whatever value is set, whether via\n * `setValue`, an animation, or `Animated.event`. Useful for compensating\n * things like the start of a pan gesture.\n *\n * See https://reactnative.dev/docs/animatedvalue.html#setoffset\n */\n\n\n setOffset(offset) {\n this._offset = offset;\n\n if (this.__isNative) {\n NativeAnimatedAPI.setAnimatedNodeOffset(this.__getNativeTag(), offset);\n }\n }\n /**\n * Merges the offset value into the base value and resets the offset to zero.\n * The final output of the value is unchanged.\n *\n * See https://reactnative.dev/docs/animatedvalue.html#flattenoffset\n */\n\n\n flattenOffset() {\n this._value += this._offset;\n this._offset = 0;\n\n if (this.__isNative) {\n NativeAnimatedAPI.flattenAnimatedNodeOffset(this.__getNativeTag());\n }\n }\n /**\n * Sets the offset value to the base value, and resets the base value to zero.\n * The final output of the value is unchanged.\n *\n * See https://reactnative.dev/docs/animatedvalue.html#extractoffset\n */\n\n\n extractOffset() {\n this._offset += this._value;\n this._value = 0;\n\n if (this.__isNative) {\n NativeAnimatedAPI.extractAnimatedNodeOffset(this.__getNativeTag());\n }\n }\n /**\n * Stops any running animation or tracking. `callback` is invoked with the\n * final value after stopping the animation, which is useful for updating\n * state to match the animation position with layout.\n *\n * See https://reactnative.dev/docs/animatedvalue.html#stopanimation\n */\n\n\n stopAnimation(callback) {\n this.stopTracking();\n this._animation && this._animation.stop();\n this._animation = null;\n callback && callback(this.__getValue());\n }\n /**\n * Stops any animation and resets the value to its original.\n *\n * See https://reactnative.dev/docs/animatedvalue.html#resetanimation\n */\n\n\n resetAnimation(callback) {\n this.stopAnimation(callback);\n this._value = this._startingValue;\n }\n\n _onAnimatedValueUpdateReceived(value) {\n this._updateValue(value, false\n /*flush*/\n );\n }\n /**\n * Interpolates the value before updating the property, e.g. mapping 0-1 to\n * 0-10.\n */\n\n\n interpolate(config) {\n return new AnimatedInterpolation(this, config);\n }\n /**\n * Typically only used internally, but could be used by a custom Animation\n * class.\n *\n * See https://reactnative.dev/docs/animatedvalue.html#animate\n */\n\n\n animate(animation, callback) {\n var handle = null;\n\n if (animation.__isInteraction) {\n handle = InteractionManager.createInteractionHandle();\n }\n\n var previousAnimation = this._animation;\n this._animation && this._animation.stop();\n this._animation = animation;\n animation.start(this._value, value => {\n // Natively driven animations will never call into that callback, therefore we can always\n // pass flush = true to allow the updated value to propagate to native with setNativeProps\n this._updateValue(value, true\n /* flush */\n );\n }, result => {\n this._animation = null;\n\n if (handle !== null) {\n InteractionManager.clearInteractionHandle(handle);\n }\n\n callback && callback(result);\n }, previousAnimation, this);\n }\n /**\n * Typically only used internally.\n */\n\n\n stopTracking() {\n this._tracking && this._tracking.__detach();\n this._tracking = null;\n }\n /**\n * Typically only used internally.\n */\n\n\n track(tracking) {\n this.stopTracking();\n this._tracking = tracking;\n }\n\n _updateValue(value, flush) {\n if (value === undefined) {\n throw new Error('AnimatedValue: Attempting to set value to undefined');\n }\n\n this._value = value;\n\n if (flush) {\n _flush(this);\n }\n\n super.__callListeners(this.__getValue());\n }\n\n __getNativeConfig() {\n return {\n type: 'value',\n value: this._value,\n offset: this._offset\n };\n }\n\n}\n\nexport default AnimatedValue;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport AnimatedValue from './nodes/AnimatedValue';\nimport NativeAnimatedHelper from './NativeAnimatedHelper';\nimport findNodeHandle from '../../../exports/findNodeHandle';\nimport invariant from 'fbjs/lib/invariant';\nimport { shouldUseNativeDriver } from './NativeAnimatedHelper';\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nexport function attachNativeEvent(viewRef, eventName, argMapping) {\n // Find animated values in `argMapping` and create an array representing their\n // key path inside the `nativeEvent` object. Ex.: ['contentOffset', 'x'].\n var eventMappings = [];\n\n var traverse = (value, path) => {\n if (value instanceof AnimatedValue) {\n value.__makeNative();\n\n eventMappings.push({\n nativeEventPath: path,\n animatedValueTag: value.__getNativeTag()\n });\n } else if (typeof value === 'object') {\n for (var _key in value) {\n traverse(value[_key], path.concat(_key));\n }\n }\n };\n\n invariant(argMapping[0] && argMapping[0].nativeEvent, 'Native driven events only support animated values contained inside `nativeEvent`.'); // Assume that the event containing `nativeEvent` is always the first argument.\n\n traverse(argMapping[0].nativeEvent, []);\n var viewTag = findNodeHandle(viewRef);\n\n if (viewTag != null) {\n eventMappings.forEach(mapping => {\n NativeAnimatedHelper.API.addAnimatedEventToView(viewTag, eventName, mapping);\n });\n }\n\n return {\n detach() {\n if (viewTag != null) {\n eventMappings.forEach(mapping => {\n NativeAnimatedHelper.API.removeAnimatedEventFromView(viewTag, eventName, // $FlowFixMe[incompatible-call]\n mapping.animatedValueTag);\n });\n }\n }\n\n };\n}\n\nfunction validateMapping(argMapping, args) {\n var validate = (recMapping, recEvt, key) => {\n if (recMapping instanceof AnimatedValue) {\n invariant(typeof recEvt === 'number', 'Bad mapping of event key ' + key + ', should be number but got ' + typeof recEvt);\n return;\n }\n\n if (typeof recEvt === 'number') {\n invariant(recMapping instanceof AnimatedValue, 'Bad mapping of type ' + typeof recMapping + ' for key ' + key + ', event value must map to AnimatedValue');\n return;\n }\n\n invariant(typeof recMapping === 'object', 'Bad mapping of type ' + typeof recMapping + ' for key ' + key);\n invariant(typeof recEvt === 'object', 'Bad event of type ' + typeof recEvt + ' for key ' + key);\n\n for (var mappingKey in recMapping) {\n validate(recMapping[mappingKey], recEvt[mappingKey], mappingKey);\n }\n };\n\n invariant(args.length >= argMapping.length, 'Event has less arguments than mapping');\n argMapping.forEach((mapping, idx) => {\n validate(mapping, args[idx], 'arg' + idx);\n });\n}\n\nexport class AnimatedEvent {\n constructor(argMapping, config) {\n this._listeners = [];\n this._argMapping = argMapping;\n\n if (config == null) {\n console.warn('Animated.event now requires a second argument for options');\n config = {\n useNativeDriver: false\n };\n }\n\n if (config.listener) {\n this.__addListener(config.listener);\n }\n\n this._callListeners = this._callListeners.bind(this);\n this._attachedEvent = null;\n this.__isNative = shouldUseNativeDriver(config);\n }\n\n __addListener(callback) {\n this._listeners.push(callback);\n }\n\n __removeListener(callback) {\n this._listeners = this._listeners.filter(listener => listener !== callback);\n }\n\n __attach(viewRef, eventName) {\n invariant(this.__isNative, 'Only native driven events need to be attached.');\n this._attachedEvent = attachNativeEvent(viewRef, eventName, this._argMapping);\n }\n\n __detach(viewTag, eventName) {\n invariant(this.__isNative, 'Only native driven events need to be detached.');\n this._attachedEvent && this._attachedEvent.detach();\n }\n\n __getHandler() {\n var _this = this;\n\n if (this.__isNative) {\n if (__DEV__) {\n var _validatedMapping = false;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key2 = 0; _key2 < _len; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (!_validatedMapping) {\n validateMapping(_this._argMapping, args);\n _validatedMapping = true;\n }\n\n _this._callListeners(...args);\n };\n } else {\n return this._callListeners;\n }\n }\n\n var validatedMapping = false;\n return function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key3 = 0; _key3 < _len2; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n if (__DEV__ && !validatedMapping) {\n validateMapping(_this._argMapping, args);\n validatedMapping = true;\n }\n\n var traverse = (recMapping, recEvt, key) => {\n if (recMapping instanceof AnimatedValue) {\n if (typeof recEvt === 'number') {\n recMapping.setValue(recEvt);\n }\n } else if (typeof recMapping === 'object') {\n for (var mappingKey in recMapping) {\n /* $FlowFixMe(>=0.120.0) This comment suppresses an error found\n * when Flow v0.120 was deployed. To see the error, delete this\n * comment and run Flow. */\n traverse(recMapping[mappingKey], recEvt[mappingKey], mappingKey);\n }\n }\n };\n\n _this._argMapping.forEach((mapping, idx) => {\n traverse(mapping, args[idx], 'arg' + idx);\n });\n\n _this._callListeners(...args);\n };\n }\n\n _callListeners() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key4 = 0; _key4 < _len3; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n this._listeners.forEach(listener => listener(...args));\n }\n\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\n\nclass AnimatedTransform extends AnimatedWithChildren {\n constructor(transforms) {\n super();\n this._transforms = transforms;\n }\n\n __makeNative() {\n this._transforms.forEach(transform => {\n for (var key in transform) {\n var value = transform[key];\n\n if (value instanceof AnimatedNode) {\n value.__makeNative();\n }\n }\n });\n\n super.__makeNative();\n }\n\n __getValue() {\n return this._transforms.map(transform => {\n var result = {};\n\n for (var key in transform) {\n var value = transform[key];\n\n if (value instanceof AnimatedNode) {\n result[key] = value.__getValue();\n } else {\n result[key] = value;\n }\n }\n\n return result;\n });\n }\n\n __getAnimatedValue() {\n return this._transforms.map(transform => {\n var result = {};\n\n for (var key in transform) {\n var value = transform[key];\n\n if (value instanceof AnimatedNode) {\n result[key] = value.__getAnimatedValue();\n } else {\n // All transform components needed to recompose matrix\n result[key] = value;\n }\n }\n\n return result;\n });\n }\n\n __attach() {\n this._transforms.forEach(transform => {\n for (var key in transform) {\n var value = transform[key];\n\n if (value instanceof AnimatedNode) {\n value.__addChild(this);\n }\n }\n });\n }\n\n __detach() {\n this._transforms.forEach(transform => {\n for (var key in transform) {\n var value = transform[key];\n\n if (value instanceof AnimatedNode) {\n value.__removeChild(this);\n }\n }\n });\n\n super.__detach();\n }\n\n __getNativeConfig() {\n var transConfigs = [];\n\n this._transforms.forEach(transform => {\n for (var key in transform) {\n var value = transform[key];\n\n if (value instanceof AnimatedNode) {\n transConfigs.push({\n type: 'animated',\n property: key,\n nodeTag: value.__getNativeTag()\n });\n } else {\n transConfigs.push({\n type: 'static',\n property: key,\n value: NativeAnimatedHelper.transformDataType(value)\n });\n }\n }\n });\n\n NativeAnimatedHelper.validateTransform(transConfigs);\n return {\n type: 'transform',\n transforms: transConfigs\n };\n }\n\n}\n\nexport default AnimatedTransform;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedTransform from './AnimatedTransform';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport StyleSheet from '../../../../exports/StyleSheet';\nvar flattenStyle = StyleSheet.flatten;\n\nclass AnimatedStyle extends AnimatedWithChildren {\n constructor(style) {\n super();\n style = flattenStyle(style) || {};\n\n if (style.transform) {\n style = _objectSpread(_objectSpread({}, style), {}, {\n transform: new AnimatedTransform(style.transform)\n });\n }\n\n this._style = style;\n } // Recursively get values for nested styles (like iOS's shadowOffset)\n\n\n _walkStyleAndGetValues(style) {\n var updatedStyle = {};\n\n for (var key in style) {\n var value = style[key];\n\n if (value instanceof AnimatedNode) {\n if (!value.__isNative) {\n // We cannot use value of natively driven nodes this way as the value we have access from\n // JS may not be up to date.\n updatedStyle[key] = value.__getValue();\n }\n } else if (value && !Array.isArray(value) && typeof value === 'object') {\n // Support animating nested values (for example: shadowOffset.height)\n updatedStyle[key] = this._walkStyleAndGetValues(value);\n } else {\n updatedStyle[key] = value;\n }\n }\n\n return updatedStyle;\n }\n\n __getValue() {\n return this._walkStyleAndGetValues(this._style);\n } // Recursively get animated values for nested styles (like iOS's shadowOffset)\n\n\n _walkStyleAndGetAnimatedValues(style) {\n var updatedStyle = {};\n\n for (var key in style) {\n var value = style[key];\n\n if (value instanceof AnimatedNode) {\n updatedStyle[key] = value.__getAnimatedValue();\n } else if (value && !Array.isArray(value) && typeof value === 'object') {\n // Support animating nested values (for example: shadowOffset.height)\n updatedStyle[key] = this._walkStyleAndGetAnimatedValues(value);\n }\n }\n\n return updatedStyle;\n }\n\n __getAnimatedValue() {\n return this._walkStyleAndGetAnimatedValues(this._style);\n }\n\n __attach() {\n for (var key in this._style) {\n var value = this._style[key];\n\n if (value instanceof AnimatedNode) {\n value.__addChild(this);\n }\n }\n }\n\n __detach() {\n for (var key in this._style) {\n var value = this._style[key];\n\n if (value instanceof AnimatedNode) {\n value.__removeChild(this);\n }\n }\n\n super.__detach();\n }\n\n __makeNative() {\n for (var key in this._style) {\n var value = this._style[key];\n\n if (value instanceof AnimatedNode) {\n value.__makeNative();\n }\n }\n\n super.__makeNative();\n }\n\n __getNativeConfig() {\n var styleConfig = {};\n\n for (var styleKey in this._style) {\n if (this._style[styleKey] instanceof AnimatedNode) {\n var style = this._style[styleKey];\n\n style.__makeNative();\n\n styleConfig[styleKey] = style.__getNativeTag();\n } // Non-animated styles are set using `setNativeProps`, no need\n // to pass those as a part of the node config\n\n }\n\n NativeAnimatedHelper.validateStyles(styleConfig);\n return {\n type: 'style',\n style: styleConfig\n };\n }\n\n}\n\nexport default AnimatedStyle;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport { AnimatedEvent } from '../AnimatedEvent';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedStyle from './AnimatedStyle';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport findNodeHandle from '../../../../exports/findNodeHandle';\nimport invariant from 'fbjs/lib/invariant';\n\nclass AnimatedProps extends AnimatedNode {\n constructor(props, callback) {\n super();\n\n if (props.style) {\n props = _objectSpread(_objectSpread({}, props), {}, {\n style: new AnimatedStyle(props.style)\n });\n }\n\n this._props = props;\n this._callback = callback;\n\n this.__attach();\n }\n\n __getValue() {\n var props = {};\n\n for (var key in this._props) {\n var value = this._props[key];\n\n if (value instanceof AnimatedNode) {\n if (!value.__isNative || value instanceof AnimatedStyle) {\n // We cannot use value of natively driven nodes this way as the value we have access from\n // JS may not be up to date.\n props[key] = value.__getValue();\n }\n } else if (value instanceof AnimatedEvent) {\n props[key] = value.__getHandler();\n } else {\n props[key] = value;\n }\n }\n\n return props;\n }\n\n __getAnimatedValue() {\n var props = {};\n\n for (var key in this._props) {\n var value = this._props[key];\n\n if (value instanceof AnimatedNode) {\n props[key] = value.__getAnimatedValue();\n }\n }\n\n return props;\n }\n\n __attach() {\n for (var key in this._props) {\n var value = this._props[key];\n\n if (value instanceof AnimatedNode) {\n value.__addChild(this);\n }\n }\n }\n\n __detach() {\n if (this.__isNative && this._animatedView) {\n this.__disconnectAnimatedView();\n }\n\n for (var key in this._props) {\n var value = this._props[key];\n\n if (value instanceof AnimatedNode) {\n value.__removeChild(this);\n }\n }\n\n super.__detach();\n }\n\n update() {\n this._callback();\n }\n\n __makeNative() {\n if (!this.__isNative) {\n this.__isNative = true;\n\n for (var key in this._props) {\n var value = this._props[key];\n\n if (value instanceof AnimatedNode) {\n value.__makeNative();\n }\n }\n\n if (this._animatedView) {\n this.__connectAnimatedView();\n }\n }\n }\n\n setNativeView(animatedView) {\n if (this._animatedView === animatedView) {\n return;\n }\n\n this._animatedView = animatedView;\n\n if (this.__isNative) {\n this.__connectAnimatedView();\n }\n }\n\n __connectAnimatedView() {\n invariant(this.__isNative, 'Expected node to be marked as \"native\"');\n var nativeViewTag = findNodeHandle(this._animatedView);\n invariant(nativeViewTag != null, 'Unable to locate attached view in the native tree');\n NativeAnimatedHelper.API.connectAnimatedNodeToView(this.__getNativeTag(), nativeViewTag);\n }\n\n __disconnectAnimatedView() {\n invariant(this.__isNative, 'Expected node to be marked as \"native\"');\n var nativeViewTag = findNodeHandle(this._animatedView);\n invariant(nativeViewTag != null, 'Unable to locate attached view in the native tree');\n NativeAnimatedHelper.API.disconnectAnimatedNodeFromView(this.__getNativeTag(), nativeViewTag);\n }\n\n __restoreDefaultValues() {\n // When using the native driver, view properties need to be restored to\n // their default values manually since react no longer tracks them. This\n // is needed to handle cases where a prop driven by native animated is removed\n // after having been changed natively by an animation.\n if (this.__isNative) {\n NativeAnimatedHelper.API.restoreDefaultValues(this.__getNativeTag());\n }\n }\n\n __getNativeConfig() {\n var propsConfig = {};\n\n for (var propKey in this._props) {\n var value = this._props[propKey];\n\n if (value instanceof AnimatedNode) {\n value.__makeNative();\n\n propsConfig[propKey] = value.__getNativeTag();\n }\n }\n\n return {\n type: 'props',\n props: propsConfig\n };\n }\n\n}\n\nexport default AnimatedProps;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n'use strict';\n\n/**\n * This is a helper function for when a component needs to be able to forward a ref\n * to a child component, but still needs to have access to that component as part of\n * its implementation.\n *\n * Its main use case is in wrappers for native components.\n *\n * Usage:\n *\n * class MyView extends React.Component {\n * _nativeRef = null;\n *\n * _setNativeRef = setAndForwardRef({\n * getForwardedRef: () => this.props.forwardedRef,\n * setLocalRef: ref => {\n * this._nativeRef = ref;\n * },\n * });\n *\n * render() {\n * return ;\n * }\n * }\n *\n * const MyViewWithRef = React.forwardRef((props, ref) => (\n * \n * ));\n *\n * module.exports = MyViewWithRef;\n */\nfunction setAndForwardRef(_ref) {\n var getForwardedRef = _ref.getForwardedRef,\n setLocalRef = _ref.setLocalRef;\n return function forwardRef(ref) {\n var forwardedRef = getForwardedRef();\n setLocalRef(ref); // Forward to user ref prop (if one has been specified)\n\n if (typeof forwardedRef === 'function') {\n // Handle function-based refs. String-based refs are handled as functions.\n forwardedRef(ref);\n } else if (typeof forwardedRef === 'object' && forwardedRef != null) {\n // Handle createRef-based refs\n forwardedRef.current = ref;\n }\n };\n}\n\nexport default setAndForwardRef;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"style\"],\n _excluded2 = [\"style\"];\nimport View from '../../../exports/View';\nimport { AnimatedEvent } from './AnimatedEvent';\nimport AnimatedProps from './nodes/AnimatedProps';\nimport * as React from 'react';\nimport NativeAnimatedHelper from './NativeAnimatedHelper';\nimport invariant from 'fbjs/lib/invariant';\nimport setAndForwardRef from '../Utilities/setAndForwardRef';\nvar animatedComponentNextId = 1;\n\nfunction createAnimatedComponent(Component, options) {\n invariant(typeof Component !== 'function' || Component.prototype && Component.prototype.isReactComponent, '`createAnimatedComponent` does not support stateless functional components; ' + 'use a class component instead.');\n\n class AnimatedComponent extends React.Component {\n constructor() {\n super(...arguments);\n this._invokeAnimatedPropsCallbackOnMount = false;\n this._eventDetachers = [];\n this._animatedComponentId = animatedComponentNextId++ + \":animatedComponent\";\n\n this._isFabric = () => {\n var _this$_component$_int, _this$_component$_int2, _this$_component$getN, _this$_component$getN2, _this$_component$getS, _this$_component$getS2;\n\n // When called during the first render, `_component` is always null.\n // Therefore, even if a component is rendered in Fabric, we can't detect\n // that until ref is set, which happens sometime after the first render.\n // In cases where this value switching between \"false\" and \"true\" on Fabric\n // causes issues, add an additional check for _component nullity.\n if (this._component == null) {\n return false;\n }\n\n return (// eslint-disable-next-line dot-notation\n ((_this$_component$_int = this._component['_internalInstanceHandle']) == null ? void 0 : (_this$_component$_int2 = _this$_component$_int.stateNode) == null ? void 0 : _this$_component$_int2.canonical) != null || // Some components have a setNativeProps function but aren't a host component\n // such as lists like FlatList and SectionList. These should also use\n // forceUpdate in Fabric since setNativeProps doesn't exist on the underlying\n // host component. This crazy hack is essentially special casing those lists and\n // ScrollView itself to use forceUpdate in Fabric.\n // If these components end up using forwardRef then these hacks can go away\n // as this._component would actually be the underlying host component and the above check\n // would be sufficient.\n this._component.getNativeScrollRef != null && this._component.getNativeScrollRef() != null && // eslint-disable-next-line dot-notation\n ((_this$_component$getN = this._component.getNativeScrollRef()['_internalInstanceHandle']) == null ? void 0 : (_this$_component$getN2 = _this$_component$getN.stateNode) == null ? void 0 : _this$_component$getN2.canonical) != null || this._component.getScrollResponder != null && this._component.getScrollResponder() != null && this._component.getScrollResponder().getNativeScrollRef != null && this._component.getScrollResponder().getNativeScrollRef() != null && ((_this$_component$getS = this._component.getScrollResponder().getNativeScrollRef()[// eslint-disable-next-line dot-notation\n '_internalInstanceHandle']) == null ? void 0 : (_this$_component$getS2 = _this$_component$getS.stateNode) == null ? void 0 : _this$_component$getS2.canonical) != null\n );\n };\n\n this._waitForUpdate = () => {\n if (this._isFabric()) {\n NativeAnimatedHelper.API.setWaitingForIdentifier(this._animatedComponentId);\n }\n };\n\n this._markUpdateComplete = () => {\n if (this._isFabric()) {\n NativeAnimatedHelper.API.unsetWaitingForIdentifier(this._animatedComponentId);\n }\n };\n\n this._animatedPropsCallback = () => {\n if (this._component == null) {\n // AnimatedProps is created in will-mount because it's used in render.\n // But this callback may be invoked before mount in async mode,\n // In which case we should defer the setNativeProps() call.\n // React may throw away uncommitted work in async mode,\n // So a deferred call won't always be invoked.\n this._invokeAnimatedPropsCallbackOnMount = true;\n } else if (process.env.NODE_ENV === 'test' || // For animating properties of non-leaf/non-native components\n typeof this._component.setNativeProps !== 'function' || // In Fabric, force animations to go through forceUpdate and skip setNativeProps\n this._isFabric()) {\n this.forceUpdate();\n } else if (!this._propsAnimated.__isNative) {\n this._component.setNativeProps(this._propsAnimated.__getAnimatedValue());\n } else {\n throw new Error('Attempting to run JS driven animation on animated ' + 'node that has been moved to \"native\" earlier by starting an ' + 'animation with `useNativeDriver: true`');\n }\n };\n\n this._setComponentRef = setAndForwardRef({\n getForwardedRef: () => this.props.forwardedRef,\n setLocalRef: ref => {\n this._prevComponent = this._component;\n this._component = ref; // TODO: Delete this in a future release.\n\n if (ref != null && ref.getNode == null) {\n ref.getNode = () => {\n var _ref$constructor$name;\n\n console.warn('%s: Calling `getNode()` on the ref of an Animated component ' + 'is no longer necessary. You can now directly use the ref ' + 'instead. This method will be removed in a future release.', (_ref$constructor$name = ref.constructor.name) !== null && _ref$constructor$name !== void 0 ? _ref$constructor$name : '<>');\n return ref;\n };\n }\n }\n });\n }\n\n _attachNativeEvents() {\n var _this$_component,\n _this = this;\n\n // Make sure to get the scrollable node for components that implement\n // `ScrollResponder.Mixin`.\n var scrollableNode = (_this$_component = this._component) != null && _this$_component.getScrollableNode ? this._component.getScrollableNode() : this._component;\n\n var _loop = function _loop(key) {\n var prop = _this.props[key];\n\n if (prop instanceof AnimatedEvent && prop.__isNative) {\n prop.__attach(scrollableNode, key);\n\n _this._eventDetachers.push(() => prop.__detach(scrollableNode, key));\n }\n };\n\n for (var key in this.props) {\n _loop(key);\n }\n }\n\n _detachNativeEvents() {\n this._eventDetachers.forEach(remove => remove());\n\n this._eventDetachers = [];\n }\n\n _attachProps(nextProps) {\n var oldPropsAnimated = this._propsAnimated;\n\n if (nextProps === oldPropsAnimated) {\n return;\n }\n\n this._propsAnimated = new AnimatedProps(nextProps, this._animatedPropsCallback); // When you call detach, it removes the element from the parent list\n // of children. If it goes to 0, then the parent also detaches itself\n // and so on.\n // An optimization is to attach the new elements and THEN detach the old\n // ones instead of detaching and THEN attaching.\n // This way the intermediate state isn't to go to 0 and trigger\n // this expensive recursive detaching to then re-attach everything on\n // the very next operation.\n\n if (oldPropsAnimated) {\n oldPropsAnimated.__restoreDefaultValues();\n\n oldPropsAnimated.__detach();\n }\n }\n\n render() {\n var _ref = this._propsAnimated.__getValue() || {},\n _ref$style = _ref.style,\n style = _ref$style === void 0 ? {} : _ref$style,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n var _ref2 = this.props.passthroughAnimatedPropExplicitValues || {},\n _ref2$style = _ref2.style,\n passthruStyle = _ref2$style === void 0 ? {} : _ref2$style,\n passthruProps = _objectWithoutPropertiesLoose(_ref2, _excluded2);\n\n var mergedStyle = _objectSpread(_objectSpread({}, style), passthruStyle);\n\n return /*#__PURE__*/React.createElement(Component, _extends({}, props, passthruProps, {\n style: mergedStyle,\n ref: this._setComponentRef\n }));\n }\n\n UNSAFE_componentWillMount() {\n this._waitForUpdate();\n\n this._attachProps(this.props);\n }\n\n componentDidMount() {\n if (this._invokeAnimatedPropsCallbackOnMount) {\n this._invokeAnimatedPropsCallbackOnMount = false;\n\n this._animatedPropsCallback();\n }\n\n this._propsAnimated.setNativeView(this._component);\n\n this._attachNativeEvents();\n\n this._markUpdateComplete();\n }\n\n UNSAFE_componentWillReceiveProps(newProps) {\n this._waitForUpdate();\n\n this._attachProps(newProps);\n }\n\n componentDidUpdate(prevProps) {\n if (this._component !== this._prevComponent) {\n this._propsAnimated.setNativeView(this._component);\n }\n\n if (this._component !== this._prevComponent || prevProps !== this.props) {\n this._detachNativeEvents();\n\n this._attachNativeEvents();\n }\n\n this._markUpdateComplete();\n }\n\n componentWillUnmount() {\n this._propsAnimated && this._propsAnimated.__detach();\n\n this._detachNativeEvents();\n\n this._markUpdateComplete();\n\n this._component = null;\n this._prevComponent = null;\n }\n\n }\n\n return /*#__PURE__*/React.forwardRef(function AnimatedComponentWrapper(props, ref) {\n return /*#__PURE__*/React.createElement(AnimatedComponent, _extends({}, props, ref == null ? null : {\n forwardedRef: ref\n }));\n });\n}\n\nexport default createAnimatedComponent;","import _extends from \"@babel/runtime/helpers/extends\";\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\nimport * as React from 'react';\nimport FlatList from '../../../../exports/FlatList';\nimport createAnimatedComponent from '../createAnimatedComponent';\n\n/**\n * @see https://github.com/facebook/react-native/commit/b8c8562\n */\nvar FlatListWithEventThrottle = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(FlatList, _extends({\n scrollEventThrottle: 0.0001\n}, props, {\n ref: ref\n})));\nexport default createAnimatedComponent(FlatListWithEventThrottle);","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\nimport * as React from 'react';\nimport Image from '../../../../exports/Image';\nimport createAnimatedComponent from '../createAnimatedComponent';\nexport default createAnimatedComponent(Image, {\n collapsable: false\n});","import _extends from \"@babel/runtime/helpers/extends\";\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\nimport * as React from 'react';\nimport ScrollView from '../../../../exports/ScrollView';\nimport createAnimatedComponent from '../createAnimatedComponent';\n\n/**\n * @see https://github.com/facebook/react-native/commit/b8c8562\n */\nvar ScrollViewWithEventThrottle = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(ScrollView, _extends({\n scrollEventThrottle: 0.0001\n}, props, {\n ref: ref\n})));\nexport default createAnimatedComponent(ScrollViewWithEventThrottle, {\n collapsable: false\n});","import _extends from \"@babel/runtime/helpers/extends\";\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\nimport * as React from 'react';\nimport SectionList from '../../../../exports/SectionList';\nimport createAnimatedComponent from '../createAnimatedComponent';\n\n/**\n * @see https://github.com/facebook/react-native/commit/b8c8562\n */\nvar SectionListWithEventThrottle = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SectionList, _extends({\n scrollEventThrottle: 0.0001\n}, props, {\n ref: ref\n})));\nexport default createAnimatedComponent(SectionListWithEventThrottle);","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\nimport * as React from 'react';\nimport Text from '../../../../exports/Text';\nimport createAnimatedComponent from '../createAnimatedComponent';\nexport default createAnimatedComponent(Text, {\n collapsable: false\n});","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\nimport * as React from 'react';\nimport View from '../../../../exports/View';\nimport createAnimatedComponent from '../createAnimatedComponent';\nexport default createAnimatedComponent(View, {\n collapsable: true\n});","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nclass AnimatedAddition extends AnimatedWithChildren {\n constructor(a, b) {\n super();\n this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n }\n\n __makeNative() {\n this._a.__makeNative();\n\n this._b.__makeNative();\n\n super.__makeNative();\n }\n\n __getValue() {\n return this._a.__getValue() + this._b.__getValue();\n }\n\n interpolate(config) {\n return new AnimatedInterpolation(this, config);\n }\n\n __attach() {\n this._a.__addChild(this);\n\n this._b.__addChild(this);\n }\n\n __detach() {\n this._a.__removeChild(this);\n\n this._b.__removeChild(this);\n\n super.__detach();\n }\n\n __getNativeConfig() {\n return {\n type: 'addition',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()]\n };\n }\n\n}\n\nexport default AnimatedAddition;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nclass AnimatedDiffClamp extends AnimatedWithChildren {\n constructor(a, min, max) {\n super();\n this._a = a;\n this._min = min;\n this._max = max;\n this._value = this._lastValue = this._a.__getValue();\n }\n\n __makeNative() {\n this._a.__makeNative();\n\n super.__makeNative();\n }\n\n interpolate(config) {\n return new AnimatedInterpolation(this, config);\n }\n\n __getValue() {\n var value = this._a.__getValue();\n\n var diff = value - this._lastValue;\n this._lastValue = value;\n this._value = Math.min(Math.max(this._value + diff, this._min), this._max);\n return this._value;\n }\n\n __attach() {\n this._a.__addChild(this);\n }\n\n __detach() {\n this._a.__removeChild(this);\n\n super.__detach();\n }\n\n __getNativeConfig() {\n return {\n type: 'diffclamp',\n input: this._a.__getNativeTag(),\n min: this._min,\n max: this._max\n };\n }\n\n}\n\nexport default AnimatedDiffClamp;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nclass AnimatedDivision extends AnimatedWithChildren {\n constructor(a, b) {\n super();\n this._warnedAboutDivideByZero = false;\n\n if (b === 0 || b instanceof AnimatedNode && b.__getValue() === 0) {\n console.error('Detected potential division by zero in AnimatedDivision');\n }\n\n this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n }\n\n __makeNative() {\n this._a.__makeNative();\n\n this._b.__makeNative();\n\n super.__makeNative();\n }\n\n __getValue() {\n var a = this._a.__getValue();\n\n var b = this._b.__getValue();\n\n if (b === 0) {\n // Prevent spamming the console/LogBox\n if (!this._warnedAboutDivideByZero) {\n console.error('Detected division by zero in AnimatedDivision');\n this._warnedAboutDivideByZero = true;\n } // Passing infinity/NaN to Fabric will cause a native crash\n\n\n return 0;\n }\n\n this._warnedAboutDivideByZero = false;\n return a / b;\n }\n\n interpolate(config) {\n return new AnimatedInterpolation(this, config);\n }\n\n __attach() {\n this._a.__addChild(this);\n\n this._b.__addChild(this);\n }\n\n __detach() {\n this._a.__removeChild(this);\n\n this._b.__removeChild(this);\n\n super.__detach();\n }\n\n __getNativeConfig() {\n return {\n type: 'division',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()]\n };\n }\n\n}\n\nexport default AnimatedDivision;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nclass AnimatedModulo extends AnimatedWithChildren {\n constructor(a, modulus) {\n super();\n this._a = a;\n this._modulus = modulus;\n }\n\n __makeNative() {\n this._a.__makeNative();\n\n super.__makeNative();\n }\n\n __getValue() {\n return (this._a.__getValue() % this._modulus + this._modulus) % this._modulus;\n }\n\n interpolate(config) {\n return new AnimatedInterpolation(this, config);\n }\n\n __attach() {\n this._a.__addChild(this);\n }\n\n __detach() {\n this._a.__removeChild(this);\n\n super.__detach();\n }\n\n __getNativeConfig() {\n return {\n type: 'modulus',\n input: this._a.__getNativeTag(),\n modulus: this._modulus\n };\n }\n\n}\n\nexport default AnimatedModulo;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nclass AnimatedMultiplication extends AnimatedWithChildren {\n constructor(a, b) {\n super();\n this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n }\n\n __makeNative() {\n this._a.__makeNative();\n\n this._b.__makeNative();\n\n super.__makeNative();\n }\n\n __getValue() {\n return this._a.__getValue() * this._b.__getValue();\n }\n\n interpolate(config) {\n return new AnimatedInterpolation(this, config);\n }\n\n __attach() {\n this._a.__addChild(this);\n\n this._b.__addChild(this);\n }\n\n __detach() {\n this._a.__removeChild(this);\n\n this._b.__removeChild(this);\n\n super.__detach();\n }\n\n __getNativeConfig() {\n return {\n type: 'multiplication',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()]\n };\n }\n\n}\n\nexport default AnimatedMultiplication;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nclass AnimatedSubtraction extends AnimatedWithChildren {\n constructor(a, b) {\n super();\n this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n }\n\n __makeNative() {\n this._a.__makeNative();\n\n this._b.__makeNative();\n\n super.__makeNative();\n }\n\n __getValue() {\n return this._a.__getValue() - this._b.__getValue();\n }\n\n interpolate(config) {\n return new AnimatedInterpolation(this, config);\n }\n\n __attach() {\n this._a.__addChild(this);\n\n this._b.__addChild(this);\n }\n\n __detach() {\n this._a.__removeChild(this);\n\n this._b.__removeChild(this);\n\n super.__detach();\n }\n\n __getNativeConfig() {\n return {\n type: 'subtraction',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()]\n };\n }\n\n}\n\nexport default AnimatedSubtraction;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedNode from './AnimatedNode';\nimport { generateNewAnimationId, shouldUseNativeDriver } from '../NativeAnimatedHelper';\n\nclass AnimatedTracking extends AnimatedNode {\n constructor(value, parent, animationClass, animationConfig, callback) {\n super();\n this._value = value;\n this._parent = parent;\n this._animationClass = animationClass;\n this._animationConfig = animationConfig;\n this._useNativeDriver = shouldUseNativeDriver(animationConfig);\n this._callback = callback;\n\n this.__attach();\n }\n\n __makeNative() {\n this.__isNative = true;\n\n this._parent.__makeNative();\n\n super.__makeNative();\n\n this._value.__makeNative();\n }\n\n __getValue() {\n return this._parent.__getValue();\n }\n\n __attach() {\n this._parent.__addChild(this);\n\n if (this._useNativeDriver) {\n // when the tracking starts we need to convert this node to a \"native node\"\n // so that the parent node will be made \"native\" too. This is necessary as\n // if we don't do this `update` method will get called. At that point it\n // may be too late as it would mean the JS driver has already started\n // updating node values\n this.__makeNative();\n }\n }\n\n __detach() {\n this._parent.__removeChild(this);\n\n super.__detach();\n }\n\n update() {\n this._value.animate(new this._animationClass(_objectSpread(_objectSpread({}, this._animationConfig), {}, {\n toValue: this._animationConfig.toValue.__getValue()\n })), this._callback);\n }\n\n __getNativeConfig() {\n var animation = new this._animationClass(_objectSpread(_objectSpread({}, this._animationConfig), {}, {\n // remove toValue from the config as it's a ref to Animated.Value\n toValue: undefined\n }));\n\n var animationConfig = animation.__getNativeAnimationConfig();\n\n return {\n type: 'tracking',\n animationId: generateNewAnimationId(),\n animationConfig,\n toValue: this._parent.__getNativeTag(),\n value: this._value.__getNativeTag()\n };\n }\n\n}\n\nexport default AnimatedTracking;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport invariant from 'fbjs/lib/invariant';\nvar _uniqueId = 1;\n/**\n * 2D Value for driving 2D animations, such as pan gestures. Almost identical\n * API to normal `Animated.Value`, but multiplexed.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html\n */\n\nclass AnimatedValueXY extends AnimatedWithChildren {\n constructor(valueIn) {\n super();\n var value = valueIn || {\n x: 0,\n y: 0\n }; // fixme: shouldn't need `: any`\n\n if (typeof value.x === 'number' && typeof value.y === 'number') {\n this.x = new AnimatedValue(value.x);\n this.y = new AnimatedValue(value.y);\n } else {\n invariant(value.x instanceof AnimatedValue && value.y instanceof AnimatedValue, 'AnimatedValueXY must be initialized with an object of numbers or ' + 'AnimatedValues.');\n this.x = value.x;\n this.y = value.y;\n }\n\n this._listeners = {};\n }\n /**\n * Directly set the value. This will stop any animations running on the value\n * and update all the bound properties.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#setvalue\n */\n\n\n setValue(value) {\n this.x.setValue(value.x);\n this.y.setValue(value.y);\n }\n /**\n * Sets an offset that is applied on top of whatever value is set, whether\n * via `setValue`, an animation, or `Animated.event`. Useful for compensating\n * things like the start of a pan gesture.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#setoffset\n */\n\n\n setOffset(offset) {\n this.x.setOffset(offset.x);\n this.y.setOffset(offset.y);\n }\n /**\n * Merges the offset value into the base value and resets the offset to zero.\n * The final output of the value is unchanged.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#flattenoffset\n */\n\n\n flattenOffset() {\n this.x.flattenOffset();\n this.y.flattenOffset();\n }\n /**\n * Sets the offset value to the base value, and resets the base value to\n * zero. The final output of the value is unchanged.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#extractoffset\n */\n\n\n extractOffset() {\n this.x.extractOffset();\n this.y.extractOffset();\n }\n\n __getValue() {\n return {\n x: this.x.__getValue(),\n y: this.y.__getValue()\n };\n }\n /**\n * Stops any animation and resets the value to its original.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#resetanimation\n */\n\n\n resetAnimation(callback) {\n this.x.resetAnimation();\n this.y.resetAnimation();\n callback && callback(this.__getValue());\n }\n /**\n * Stops any running animation or tracking. `callback` is invoked with the\n * final value after stopping the animation, which is useful for updating\n * state to match the animation position with layout.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#stopanimation\n */\n\n\n stopAnimation(callback) {\n this.x.stopAnimation();\n this.y.stopAnimation();\n callback && callback(this.__getValue());\n }\n /**\n * Adds an asynchronous listener to the value so you can observe updates from\n * animations. This is useful because there is no way to synchronously read\n * the value because it might be driven natively.\n *\n * Returns a string that serves as an identifier for the listener.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#addlistener\n */\n\n\n addListener(callback) {\n var id = String(_uniqueId++);\n\n var jointCallback = _ref => {\n var number = _ref.value;\n callback(this.__getValue());\n };\n\n this._listeners[id] = {\n x: this.x.addListener(jointCallback),\n y: this.y.addListener(jointCallback)\n };\n return id;\n }\n /**\n * Unregister a listener. The `id` param shall match the identifier\n * previously returned by `addListener()`.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#removelistener\n */\n\n\n removeListener(id) {\n this.x.removeListener(this._listeners[id].x);\n this.y.removeListener(this._listeners[id].y);\n delete this._listeners[id];\n }\n /**\n * Remove all registered listeners.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#removealllisteners\n */\n\n\n removeAllListeners() {\n this.x.removeAllListeners();\n this.y.removeAllListeners();\n this._listeners = {};\n }\n /**\n * Converts `{x, y}` into `{left, top}` for use in style.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#getlayout\n */\n\n\n getLayout() {\n return {\n left: this.x,\n top: this.y\n };\n }\n /**\n * Converts `{x, y}` into a useable translation transform.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#gettranslatetransform\n */\n\n\n getTranslateTransform() {\n return [{\n translateX: this.x\n }, {\n translateY: this.y\n }];\n }\n\n}\n\nexport default AnimatedValueXY;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nvar startNativeAnimationNextId = 1; // Important note: start() and stop() will only be called at most once.\n// Once an animation has been stopped or finished its course, it will\n// not be reused.\n\nclass Animation {\n start(fromValue, onUpdate, onEnd, previousAnimation, animatedValue) {}\n\n stop() {\n if (this.__nativeId) {\n NativeAnimatedHelper.API.stopAnimation(this.__nativeId);\n }\n }\n\n __getNativeAnimationConfig() {\n // Subclasses that have corresponding animation implementation done in native\n // should override this method\n throw new Error('This animation type cannot be offloaded to native');\n } // Helper function for subclasses to make sure onEnd is only called once.\n\n\n __debouncedOnEnd(result) {\n var onEnd = this.__onEnd;\n this.__onEnd = null;\n onEnd && onEnd(result);\n }\n\n __startNativeAnimation(animatedValue) {\n var startNativeAnimationWaitId = startNativeAnimationNextId + \":startAnimation\";\n startNativeAnimationNextId += 1;\n NativeAnimatedHelper.API.setWaitingForIdentifier(startNativeAnimationWaitId);\n\n try {\n animatedValue.__makeNative();\n\n this.__nativeId = NativeAnimatedHelper.generateNewAnimationId();\n NativeAnimatedHelper.API.startAnimatingNode(this.__nativeId, animatedValue.__getNativeTag(), this.__getNativeAnimationConfig(), this.__debouncedOnEnd.bind(this));\n } catch (e) {\n throw e;\n } finally {\n NativeAnimatedHelper.API.unsetWaitingForIdentifier(startNativeAnimationWaitId);\n }\n }\n\n}\n\nexport default Animation;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport Animation from './Animation';\nimport { shouldUseNativeDriver } from '../NativeAnimatedHelper';\n\nclass DecayAnimation extends Animation {\n constructor(config) {\n var _config$deceleration, _config$isInteraction, _config$iterations;\n\n super();\n this._deceleration = (_config$deceleration = config.deceleration) !== null && _config$deceleration !== void 0 ? _config$deceleration : 0.998;\n this._velocity = config.velocity;\n this._useNativeDriver = shouldUseNativeDriver(config);\n this.__isInteraction = (_config$isInteraction = config.isInteraction) !== null && _config$isInteraction !== void 0 ? _config$isInteraction : !this._useNativeDriver;\n this.__iterations = (_config$iterations = config.iterations) !== null && _config$iterations !== void 0 ? _config$iterations : 1;\n }\n\n __getNativeAnimationConfig() {\n return {\n type: 'decay',\n deceleration: this._deceleration,\n velocity: this._velocity,\n iterations: this.__iterations\n };\n }\n\n start(fromValue, onUpdate, onEnd, previousAnimation, animatedValue) {\n this.__active = true;\n this._lastValue = fromValue;\n this._fromValue = fromValue;\n this._onUpdate = onUpdate;\n this.__onEnd = onEnd;\n this._startTime = Date.now();\n\n if (this._useNativeDriver) {\n this.__startNativeAnimation(animatedValue);\n } else {\n this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n }\n }\n\n onUpdate() {\n var now = Date.now();\n var value = this._fromValue + this._velocity / (1 - this._deceleration) * (1 - Math.exp(-(1 - this._deceleration) * (now - this._startTime)));\n\n this._onUpdate(value);\n\n if (Math.abs(this._lastValue - value) < 0.1) {\n this.__debouncedOnEnd({\n finished: true\n });\n\n return;\n }\n\n this._lastValue = value;\n\n if (this.__active) {\n this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n }\n }\n\n stop() {\n super.stop();\n this.__active = false;\n global.cancelAnimationFrame(this._animationFrame);\n\n this.__debouncedOnEnd({\n finished: false\n });\n }\n\n}\n\nexport default DecayAnimation;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n'use strict';\n\nfunction stiffnessFromOrigamiValue(oValue) {\n return (oValue - 30) * 3.62 + 194;\n}\n\nfunction dampingFromOrigamiValue(oValue) {\n return (oValue - 8) * 3 + 25;\n}\n\nfunction fromOrigamiTensionAndFriction(tension, friction) {\n return {\n stiffness: stiffnessFromOrigamiValue(tension),\n damping: dampingFromOrigamiValue(friction)\n };\n}\n\nfunction fromBouncinessAndSpeed(bounciness, speed) {\n function normalize(value, startValue, endValue) {\n return (value - startValue) / (endValue - startValue);\n }\n\n function projectNormal(n, start, end) {\n return start + n * (end - start);\n }\n\n function linearInterpolation(t, start, end) {\n return t * end + (1 - t) * start;\n }\n\n function quadraticOutInterpolation(t, start, end) {\n return linearInterpolation(2 * t - t * t, start, end);\n }\n\n function b3Friction1(x) {\n return 0.0007 * Math.pow(x, 3) - 0.031 * Math.pow(x, 2) + 0.64 * x + 1.28;\n }\n\n function b3Friction2(x) {\n return 0.000044 * Math.pow(x, 3) - 0.006 * Math.pow(x, 2) + 0.36 * x + 2;\n }\n\n function b3Friction3(x) {\n return 0.00000045 * Math.pow(x, 3) - 0.000332 * Math.pow(x, 2) + 0.1078 * x + 5.84;\n }\n\n function b3Nobounce(tension) {\n if (tension <= 18) {\n return b3Friction1(tension);\n } else if (tension > 18 && tension <= 44) {\n return b3Friction2(tension);\n } else {\n return b3Friction3(tension);\n }\n }\n\n var b = normalize(bounciness / 1.7, 0, 20);\n b = projectNormal(b, 0, 0.8);\n var s = normalize(speed / 1.7, 0, 20);\n var bouncyTension = projectNormal(s, 0.5, 200);\n var bouncyFriction = quadraticOutInterpolation(b, b3Nobounce(bouncyTension), 0.01);\n return {\n stiffness: stiffnessFromOrigamiValue(bouncyTension),\n damping: dampingFromOrigamiValue(bouncyFriction)\n };\n}\n\nexport default {\n fromOrigamiTensionAndFriction,\n fromBouncinessAndSpeed\n};","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport AnimatedValue from '../nodes/AnimatedValue';\nimport AnimatedValueXY from '../nodes/AnimatedValueXY';\nimport AnimatedInterpolation from '../nodes/AnimatedInterpolation';\nimport Animation from './Animation';\nimport SpringConfig from '../SpringConfig';\nimport invariant from 'fbjs/lib/invariant';\nimport { shouldUseNativeDriver } from '../NativeAnimatedHelper';\n\nclass SpringAnimation extends Animation {\n constructor(config) {\n var _config$overshootClam, _config$restDisplacem, _config$restSpeedThre, _config$velocity, _config$velocity2, _config$delay, _config$isInteraction, _config$iterations;\n\n super();\n this._overshootClamping = (_config$overshootClam = config.overshootClamping) !== null && _config$overshootClam !== void 0 ? _config$overshootClam : false;\n this._restDisplacementThreshold = (_config$restDisplacem = config.restDisplacementThreshold) !== null && _config$restDisplacem !== void 0 ? _config$restDisplacem : 0.001;\n this._restSpeedThreshold = (_config$restSpeedThre = config.restSpeedThreshold) !== null && _config$restSpeedThre !== void 0 ? _config$restSpeedThre : 0.001;\n this._initialVelocity = (_config$velocity = config.velocity) !== null && _config$velocity !== void 0 ? _config$velocity : 0;\n this._lastVelocity = (_config$velocity2 = config.velocity) !== null && _config$velocity2 !== void 0 ? _config$velocity2 : 0;\n this._toValue = config.toValue;\n this._delay = (_config$delay = config.delay) !== null && _config$delay !== void 0 ? _config$delay : 0;\n this._useNativeDriver = shouldUseNativeDriver(config);\n this.__isInteraction = (_config$isInteraction = config.isInteraction) !== null && _config$isInteraction !== void 0 ? _config$isInteraction : !this._useNativeDriver;\n this.__iterations = (_config$iterations = config.iterations) !== null && _config$iterations !== void 0 ? _config$iterations : 1;\n\n if (config.stiffness !== undefined || config.damping !== undefined || config.mass !== undefined) {\n var _config$stiffness, _config$damping, _config$mass;\n\n invariant(config.bounciness === undefined && config.speed === undefined && config.tension === undefined && config.friction === undefined, 'You can define one of bounciness/speed, tension/friction, or stiffness/damping/mass, but not more than one');\n this._stiffness = (_config$stiffness = config.stiffness) !== null && _config$stiffness !== void 0 ? _config$stiffness : 100;\n this._damping = (_config$damping = config.damping) !== null && _config$damping !== void 0 ? _config$damping : 10;\n this._mass = (_config$mass = config.mass) !== null && _config$mass !== void 0 ? _config$mass : 1;\n } else if (config.bounciness !== undefined || config.speed !== undefined) {\n var _config$bounciness, _config$speed;\n\n // Convert the origami bounciness/speed values to stiffness/damping\n // We assume mass is 1.\n invariant(config.tension === undefined && config.friction === undefined && config.stiffness === undefined && config.damping === undefined && config.mass === undefined, 'You can define one of bounciness/speed, tension/friction, or stiffness/damping/mass, but not more than one');\n var springConfig = SpringConfig.fromBouncinessAndSpeed((_config$bounciness = config.bounciness) !== null && _config$bounciness !== void 0 ? _config$bounciness : 8, (_config$speed = config.speed) !== null && _config$speed !== void 0 ? _config$speed : 12);\n this._stiffness = springConfig.stiffness;\n this._damping = springConfig.damping;\n this._mass = 1;\n } else {\n var _config$tension, _config$friction;\n\n // Convert the origami tension/friction values to stiffness/damping\n // We assume mass is 1.\n var _springConfig = SpringConfig.fromOrigamiTensionAndFriction((_config$tension = config.tension) !== null && _config$tension !== void 0 ? _config$tension : 40, (_config$friction = config.friction) !== null && _config$friction !== void 0 ? _config$friction : 7);\n\n this._stiffness = _springConfig.stiffness;\n this._damping = _springConfig.damping;\n this._mass = 1;\n }\n\n invariant(this._stiffness > 0, 'Stiffness value must be greater than 0');\n invariant(this._damping > 0, 'Damping value must be greater than 0');\n invariant(this._mass > 0, 'Mass value must be greater than 0');\n }\n\n __getNativeAnimationConfig() {\n var _this$_initialVelocit;\n\n return {\n type: 'spring',\n overshootClamping: this._overshootClamping,\n restDisplacementThreshold: this._restDisplacementThreshold,\n restSpeedThreshold: this._restSpeedThreshold,\n stiffness: this._stiffness,\n damping: this._damping,\n mass: this._mass,\n initialVelocity: (_this$_initialVelocit = this._initialVelocity) !== null && _this$_initialVelocit !== void 0 ? _this$_initialVelocit : this._lastVelocity,\n toValue: this._toValue,\n iterations: this.__iterations\n };\n }\n\n start(fromValue, onUpdate, onEnd, previousAnimation, animatedValue) {\n this.__active = true;\n this._startPosition = fromValue;\n this._lastPosition = this._startPosition;\n this._onUpdate = onUpdate;\n this.__onEnd = onEnd;\n this._lastTime = Date.now();\n this._frameTime = 0.0;\n\n if (previousAnimation instanceof SpringAnimation) {\n var internalState = previousAnimation.getInternalState();\n this._lastPosition = internalState.lastPosition;\n this._lastVelocity = internalState.lastVelocity; // Set the initial velocity to the last velocity\n\n this._initialVelocity = this._lastVelocity;\n this._lastTime = internalState.lastTime;\n }\n\n var start = () => {\n if (this._useNativeDriver) {\n this.__startNativeAnimation(animatedValue);\n } else {\n this.onUpdate();\n }\n }; // If this._delay is more than 0, we start after the timeout.\n\n\n if (this._delay) {\n this._timeout = setTimeout(start, this._delay);\n } else {\n start();\n }\n }\n\n getInternalState() {\n return {\n lastPosition: this._lastPosition,\n lastVelocity: this._lastVelocity,\n lastTime: this._lastTime\n };\n }\n /**\n * This spring model is based off of a damped harmonic oscillator\n * (https://en.wikipedia.org/wiki/Harmonic_oscillator#Damped_harmonic_oscillator).\n *\n * We use the closed form of the second order differential equation:\n *\n * x'' + (2ζ⍵_0)x' + ⍵^2x = 0\n *\n * where\n * ⍵_0 = √(k / m) (undamped angular frequency of the oscillator),\n * ζ = c / 2√mk (damping ratio),\n * c = damping constant\n * k = stiffness\n * m = mass\n *\n * The derivation of the closed form is described in detail here:\n * http://planetmath.org/sites/default/files/texpdf/39745.pdf\n *\n * This algorithm happens to match the algorithm used by CASpringAnimation,\n * a QuartzCore (iOS) API that creates spring animations.\n */\n\n\n onUpdate() {\n // If for some reason we lost a lot of frames (e.g. process large payload or\n // stopped in the debugger), we only advance by 4 frames worth of\n // computation and will continue on the next frame. It's better to have it\n // running at faster speed than jumping to the end.\n var MAX_STEPS = 64;\n var now = Date.now();\n\n if (now > this._lastTime + MAX_STEPS) {\n now = this._lastTime + MAX_STEPS;\n }\n\n var deltaTime = (now - this._lastTime) / 1000;\n this._frameTime += deltaTime;\n var c = this._damping;\n var m = this._mass;\n var k = this._stiffness;\n var v0 = -this._initialVelocity;\n var zeta = c / (2 * Math.sqrt(k * m)); // damping ratio\n\n var omega0 = Math.sqrt(k / m); // undamped angular frequency of the oscillator (rad/ms)\n\n var omega1 = omega0 * Math.sqrt(1.0 - zeta * zeta); // exponential decay\n\n var x0 = this._toValue - this._startPosition; // calculate the oscillation from x0 = 1 to x = 0\n\n var position = 0.0;\n var velocity = 0.0;\n var t = this._frameTime;\n\n if (zeta < 1) {\n // Under damped\n var envelope = Math.exp(-zeta * omega0 * t);\n position = this._toValue - envelope * ((v0 + zeta * omega0 * x0) / omega1 * Math.sin(omega1 * t) + x0 * Math.cos(omega1 * t)); // This looks crazy -- it's actually just the derivative of the\n // oscillation function\n\n velocity = zeta * omega0 * envelope * (Math.sin(omega1 * t) * (v0 + zeta * omega0 * x0) / omega1 + x0 * Math.cos(omega1 * t)) - envelope * (Math.cos(omega1 * t) * (v0 + zeta * omega0 * x0) - omega1 * x0 * Math.sin(omega1 * t));\n } else {\n // Critically damped\n var _envelope = Math.exp(-omega0 * t);\n\n position = this._toValue - _envelope * (x0 + (v0 + omega0 * x0) * t);\n velocity = _envelope * (v0 * (t * omega0 - 1) + t * x0 * (omega0 * omega0));\n }\n\n this._lastTime = now;\n this._lastPosition = position;\n this._lastVelocity = velocity;\n\n this._onUpdate(position);\n\n if (!this.__active) {\n // a listener might have stopped us in _onUpdate\n return;\n } // Conditions for stopping the spring animation\n\n\n var isOvershooting = false;\n\n if (this._overshootClamping && this._stiffness !== 0) {\n if (this._startPosition < this._toValue) {\n isOvershooting = position > this._toValue;\n } else {\n isOvershooting = position < this._toValue;\n }\n }\n\n var isVelocity = Math.abs(velocity) <= this._restSpeedThreshold;\n\n var isDisplacement = true;\n\n if (this._stiffness !== 0) {\n isDisplacement = Math.abs(this._toValue - position) <= this._restDisplacementThreshold;\n }\n\n if (isOvershooting || isVelocity && isDisplacement) {\n if (this._stiffness !== 0) {\n // Ensure that we end up with a round value\n this._lastPosition = this._toValue;\n this._lastVelocity = 0;\n\n this._onUpdate(this._toValue);\n }\n\n this.__debouncedOnEnd({\n finished: true\n });\n\n return;\n }\n\n this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n }\n\n stop() {\n super.stop();\n this.__active = false;\n clearTimeout(this._timeout);\n global.cancelAnimationFrame(this._animationFrame);\n\n this.__debouncedOnEnd({\n finished: false\n });\n }\n\n}\n\nexport default SpringAnimation;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport AnimatedValue from '../nodes/AnimatedValue';\nimport AnimatedValueXY from '../nodes/AnimatedValueXY';\nimport AnimatedInterpolation from '../nodes/AnimatedInterpolation';\nimport Animation from './Animation';\nimport { shouldUseNativeDriver } from '../NativeAnimatedHelper';\nimport Easing from '../../../../exports/Easing';\n\nvar _easeInOut;\n\nfunction easeInOut() {\n if (!_easeInOut) {\n _easeInOut = Easing.inOut(Easing.ease);\n }\n\n return _easeInOut;\n}\n\nclass TimingAnimation extends Animation {\n constructor(config) {\n var _config$easing, _config$duration, _config$delay, _config$iterations, _config$isInteraction;\n\n super();\n this._toValue = config.toValue;\n this._easing = (_config$easing = config.easing) !== null && _config$easing !== void 0 ? _config$easing : easeInOut();\n this._duration = (_config$duration = config.duration) !== null && _config$duration !== void 0 ? _config$duration : 500;\n this._delay = (_config$delay = config.delay) !== null && _config$delay !== void 0 ? _config$delay : 0;\n this.__iterations = (_config$iterations = config.iterations) !== null && _config$iterations !== void 0 ? _config$iterations : 1;\n this._useNativeDriver = shouldUseNativeDriver(config);\n this.__isInteraction = (_config$isInteraction = config.isInteraction) !== null && _config$isInteraction !== void 0 ? _config$isInteraction : !this._useNativeDriver;\n }\n\n __getNativeAnimationConfig() {\n var frameDuration = 1000.0 / 60.0;\n var frames = [];\n var numFrames = Math.round(this._duration / frameDuration);\n\n for (var frame = 0; frame < numFrames; frame++) {\n frames.push(this._easing(frame / numFrames));\n }\n\n frames.push(this._easing(1));\n return {\n type: 'frames',\n frames,\n toValue: this._toValue,\n iterations: this.__iterations\n };\n }\n\n start(fromValue, onUpdate, onEnd, previousAnimation, animatedValue) {\n this.__active = true;\n this._fromValue = fromValue;\n this._onUpdate = onUpdate;\n this.__onEnd = onEnd;\n\n var start = () => {\n // Animations that sometimes have 0 duration and sometimes do not\n // still need to use the native driver when duration is 0 so as to\n // not cause intermixed JS and native animations.\n if (this._duration === 0 && !this._useNativeDriver) {\n this._onUpdate(this._toValue);\n\n this.__debouncedOnEnd({\n finished: true\n });\n } else {\n this._startTime = Date.now();\n\n if (this._useNativeDriver) {\n this.__startNativeAnimation(animatedValue);\n } else {\n this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n }\n }\n };\n\n if (this._delay) {\n this._timeout = setTimeout(start, this._delay);\n } else {\n start();\n }\n }\n\n onUpdate() {\n var now = Date.now();\n\n if (now >= this._startTime + this._duration) {\n if (this._duration === 0) {\n this._onUpdate(this._toValue);\n } else {\n this._onUpdate(this._fromValue + this._easing(1) * (this._toValue - this._fromValue));\n }\n\n this.__debouncedOnEnd({\n finished: true\n });\n\n return;\n }\n\n this._onUpdate(this._fromValue + this._easing((now - this._startTime) / this._duration) * (this._toValue - this._fromValue));\n\n if (this.__active) {\n this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n }\n }\n\n stop() {\n super.stop();\n this.__active = false;\n clearTimeout(this._timeout);\n global.cancelAnimationFrame(this._animationFrame);\n\n this.__debouncedOnEnd({\n finished: false\n });\n }\n\n}\n\nexport default TimingAnimation;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport { AnimatedEvent, attachNativeEvent } from './AnimatedEvent';\nimport AnimatedAddition from './nodes/AnimatedAddition';\nimport AnimatedDiffClamp from './nodes/AnimatedDiffClamp';\nimport AnimatedDivision from './nodes/AnimatedDivision';\nimport AnimatedInterpolation from './nodes/AnimatedInterpolation';\nimport AnimatedModulo from './nodes/AnimatedModulo';\nimport AnimatedMultiplication from './nodes/AnimatedMultiplication';\nimport AnimatedNode from './nodes/AnimatedNode';\nimport AnimatedProps from './nodes/AnimatedProps';\nimport AnimatedSubtraction from './nodes/AnimatedSubtraction';\nimport AnimatedTracking from './nodes/AnimatedTracking';\nimport AnimatedValue from './nodes/AnimatedValue';\nimport AnimatedValueXY from './nodes/AnimatedValueXY';\nimport DecayAnimation from './animations/DecayAnimation';\nimport SpringAnimation from './animations/SpringAnimation';\nimport TimingAnimation from './animations/TimingAnimation';\nimport createAnimatedComponent from './createAnimatedComponent';\n\nvar add = function add(a, b) {\n return new AnimatedAddition(a, b);\n};\n\nvar subtract = function subtract(a, b) {\n return new AnimatedSubtraction(a, b);\n};\n\nvar divide = function divide(a, b) {\n return new AnimatedDivision(a, b);\n};\n\nvar multiply = function multiply(a, b) {\n return new AnimatedMultiplication(a, b);\n};\n\nvar modulo = function modulo(a, modulus) {\n return new AnimatedModulo(a, modulus);\n};\n\nvar diffClamp = function diffClamp(a, min, max) {\n return new AnimatedDiffClamp(a, min, max);\n};\n\nvar _combineCallbacks = function _combineCallbacks(callback, config) {\n if (callback && config.onComplete) {\n return function () {\n config.onComplete && config.onComplete(...arguments);\n callback && callback(...arguments);\n };\n } else {\n return callback || config.onComplete;\n }\n};\n\nvar maybeVectorAnim = function maybeVectorAnim(value, config, anim) {\n if (value instanceof AnimatedValueXY) {\n var configX = _objectSpread({}, config);\n\n var configY = _objectSpread({}, config);\n\n for (var key in config) {\n var _config$key = config[key],\n x = _config$key.x,\n y = _config$key.y;\n\n if (x !== undefined && y !== undefined) {\n configX[key] = x;\n configY[key] = y;\n }\n }\n\n var aX = anim(value.x, configX);\n var aY = anim(value.y, configY); // We use `stopTogether: false` here because otherwise tracking will break\n // because the second animation will get stopped before it can update.\n\n return parallel([aX, aY], {\n stopTogether: false\n });\n }\n\n return null;\n};\n\nvar spring = function spring(value, config) {\n var _start = function start(animatedValue, configuration, callback) {\n callback = _combineCallbacks(callback, configuration);\n var singleValue = animatedValue;\n var singleConfig = configuration;\n singleValue.stopTracking();\n\n if (configuration.toValue instanceof AnimatedNode) {\n singleValue.track(new AnimatedTracking(singleValue, configuration.toValue, SpringAnimation, singleConfig, callback));\n } else {\n singleValue.animate(new SpringAnimation(singleConfig), callback);\n }\n };\n\n return maybeVectorAnim(value, config, spring) || {\n start: function start(callback) {\n _start(value, config, callback);\n },\n stop: function stop() {\n value.stopAnimation();\n },\n reset: function reset() {\n value.resetAnimation();\n },\n _startNativeLoop: function _startNativeLoop(iterations) {\n var singleConfig = _objectSpread(_objectSpread({}, config), {}, {\n iterations\n });\n\n _start(value, singleConfig);\n },\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return config.useNativeDriver || false;\n }\n };\n};\n\nvar timing = function timing(value, config) {\n var _start2 = function start(animatedValue, configuration, callback) {\n callback = _combineCallbacks(callback, configuration);\n var singleValue = animatedValue;\n var singleConfig = configuration;\n singleValue.stopTracking();\n\n if (configuration.toValue instanceof AnimatedNode) {\n singleValue.track(new AnimatedTracking(singleValue, configuration.toValue, TimingAnimation, singleConfig, callback));\n } else {\n singleValue.animate(new TimingAnimation(singleConfig), callback);\n }\n };\n\n return maybeVectorAnim(value, config, timing) || {\n start: function start(callback) {\n _start2(value, config, callback);\n },\n stop: function stop() {\n value.stopAnimation();\n },\n reset: function reset() {\n value.resetAnimation();\n },\n _startNativeLoop: function _startNativeLoop(iterations) {\n var singleConfig = _objectSpread(_objectSpread({}, config), {}, {\n iterations\n });\n\n _start2(value, singleConfig);\n },\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return config.useNativeDriver || false;\n }\n };\n};\n\nvar decay = function decay(value, config) {\n var _start3 = function start(animatedValue, configuration, callback) {\n callback = _combineCallbacks(callback, configuration);\n var singleValue = animatedValue;\n var singleConfig = configuration;\n singleValue.stopTracking();\n singleValue.animate(new DecayAnimation(singleConfig), callback);\n };\n\n return maybeVectorAnim(value, config, decay) || {\n start: function start(callback) {\n _start3(value, config, callback);\n },\n stop: function stop() {\n value.stopAnimation();\n },\n reset: function reset() {\n value.resetAnimation();\n },\n _startNativeLoop: function _startNativeLoop(iterations) {\n var singleConfig = _objectSpread(_objectSpread({}, config), {}, {\n iterations\n });\n\n _start3(value, singleConfig);\n },\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return config.useNativeDriver || false;\n }\n };\n};\n\nvar sequence = function sequence(animations) {\n var current = 0;\n return {\n start: function start(callback) {\n var onComplete = function onComplete(result) {\n if (!result.finished) {\n callback && callback(result);\n return;\n }\n\n current++;\n\n if (current === animations.length) {\n callback && callback(result);\n return;\n }\n\n animations[current].start(onComplete);\n };\n\n if (animations.length === 0) {\n callback && callback({\n finished: true\n });\n } else {\n animations[current].start(onComplete);\n }\n },\n stop: function stop() {\n if (current < animations.length) {\n animations[current].stop();\n }\n },\n reset: function reset() {\n animations.forEach((animation, idx) => {\n if (idx <= current) {\n animation.reset();\n }\n });\n current = 0;\n },\n _startNativeLoop: function _startNativeLoop() {\n throw new Error('Loops run using the native driver cannot contain Animated.sequence animations');\n },\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return false;\n }\n };\n};\n\nvar parallel = function parallel(animations, config) {\n var doneCount = 0; // Make sure we only call stop() at most once for each animation\n\n var hasEnded = {};\n var stopTogether = !(config && config.stopTogether === false);\n var result = {\n start: function start(callback) {\n if (doneCount === animations.length) {\n callback && callback({\n finished: true\n });\n return;\n }\n\n animations.forEach((animation, idx) => {\n var cb = function cb(endResult) {\n hasEnded[idx] = true;\n doneCount++;\n\n if (doneCount === animations.length) {\n doneCount = 0;\n callback && callback(endResult);\n return;\n }\n\n if (!endResult.finished && stopTogether) {\n result.stop();\n }\n };\n\n if (!animation) {\n cb({\n finished: true\n });\n } else {\n animation.start(cb);\n }\n });\n },\n stop: function stop() {\n animations.forEach((animation, idx) => {\n !hasEnded[idx] && animation.stop();\n hasEnded[idx] = true;\n });\n },\n reset: function reset() {\n animations.forEach((animation, idx) => {\n animation.reset();\n hasEnded[idx] = false;\n doneCount = 0;\n });\n },\n _startNativeLoop: function _startNativeLoop() {\n throw new Error('Loops run using the native driver cannot contain Animated.parallel animations');\n },\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return false;\n }\n };\n return result;\n};\n\nvar delay = function delay(time) {\n // Would be nice to make a specialized implementation\n return timing(new AnimatedValue(0), {\n toValue: 0,\n delay: time,\n duration: 0,\n useNativeDriver: false\n });\n};\n\nvar stagger = function stagger(time, animations) {\n return parallel(animations.map((animation, i) => {\n return sequence([delay(time * i), animation]);\n }));\n};\n\nvar loop = function loop(animation, _temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$iterations = _ref.iterations,\n iterations = _ref$iterations === void 0 ? -1 : _ref$iterations,\n _ref$resetBeforeItera = _ref.resetBeforeIteration,\n resetBeforeIteration = _ref$resetBeforeItera === void 0 ? true : _ref$resetBeforeItera;\n\n var isFinished = false;\n var iterationsSoFar = 0;\n return {\n start: function start(callback) {\n var restart = function restart(result) {\n if (result === void 0) {\n result = {\n finished: true\n };\n }\n\n if (isFinished || iterationsSoFar === iterations || result.finished === false) {\n callback && callback(result);\n } else {\n iterationsSoFar++;\n resetBeforeIteration && animation.reset();\n animation.start(restart);\n }\n };\n\n if (!animation || iterations === 0) {\n callback && callback({\n finished: true\n });\n } else {\n if (animation._isUsingNativeDriver()) {\n animation._startNativeLoop(iterations);\n } else {\n restart(); // Start looping recursively on the js thread\n }\n }\n },\n stop: function stop() {\n isFinished = true;\n animation.stop();\n },\n reset: function reset() {\n iterationsSoFar = 0;\n isFinished = false;\n animation.reset();\n },\n _startNativeLoop: function _startNativeLoop() {\n throw new Error('Loops run using the native driver cannot contain Animated.loop animations');\n },\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return animation._isUsingNativeDriver();\n }\n };\n};\n\nfunction forkEvent(event, listener) {\n if (!event) {\n return listener;\n } else if (event instanceof AnimatedEvent) {\n event.__addListener(listener);\n\n return event;\n } else {\n return function () {\n typeof event === 'function' && event(...arguments);\n listener(...arguments);\n };\n }\n}\n\nfunction unforkEvent(event, listener) {\n if (event && event instanceof AnimatedEvent) {\n event.__removeListener(listener);\n }\n}\n\nvar event = function event(argMapping, config) {\n var animatedEvent = new AnimatedEvent(argMapping, config);\n\n if (animatedEvent.__isNative) {\n return animatedEvent;\n } else {\n return animatedEvent.__getHandler();\n }\n};\n/**\n * The `Animated` library is designed to make animations fluid, powerful, and\n * easy to build and maintain. `Animated` focuses on declarative relationships\n * between inputs and outputs, with configurable transforms in between, and\n * simple `start`/`stop` methods to control time-based animation execution.\n * If additional transforms are added, be sure to include them in\n * AnimatedMock.js as well.\n *\n * See https://reactnative.dev/docs/animated.html\n */\n\n\nexport default {\n /**\n * Standard value class for driving animations. Typically initialized with\n * `new Animated.Value(0);`\n *\n * See https://reactnative.dev/docs/animated.html#value\n */\n Value: AnimatedValue,\n\n /**\n * 2D value class for driving 2D animations, such as pan gestures.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html\n */\n ValueXY: AnimatedValueXY,\n\n /**\n * Exported to use the Interpolation type in flow.\n *\n * See https://reactnative.dev/docs/animated.html#interpolation\n */\n Interpolation: AnimatedInterpolation,\n\n /**\n * Exported for ease of type checking. All animated values derive from this\n * class.\n *\n * See https://reactnative.dev/docs/animated.html#node\n */\n Node: AnimatedNode,\n\n /**\n * Animates a value from an initial velocity to zero based on a decay\n * coefficient.\n *\n * See https://reactnative.dev/docs/animated.html#decay\n */\n decay,\n\n /**\n * Animates a value along a timed easing curve. The Easing module has tons of\n * predefined curves, or you can use your own function.\n *\n * See https://reactnative.dev/docs/animated.html#timing\n */\n timing,\n\n /**\n * Animates a value according to an analytical spring model based on\n * damped harmonic oscillation.\n *\n * See https://reactnative.dev/docs/animated.html#spring\n */\n spring,\n\n /**\n * Creates a new Animated value composed from two Animated values added\n * together.\n *\n * See https://reactnative.dev/docs/animated.html#add\n */\n add,\n\n /**\n * Creates a new Animated value composed by subtracting the second Animated\n * value from the first Animated value.\n *\n * See https://reactnative.dev/docs/animated.html#subtract\n */\n subtract,\n\n /**\n * Creates a new Animated value composed by dividing the first Animated value\n * by the second Animated value.\n *\n * See https://reactnative.dev/docs/animated.html#divide\n */\n divide,\n\n /**\n * Creates a new Animated value composed from two Animated values multiplied\n * together.\n *\n * See https://reactnative.dev/docs/animated.html#multiply\n */\n multiply,\n\n /**\n * Creates a new Animated value that is the (non-negative) modulo of the\n * provided Animated value.\n *\n * See https://reactnative.dev/docs/animated.html#modulo\n */\n modulo,\n\n /**\n * Create a new Animated value that is limited between 2 values. It uses the\n * difference between the last value so even if the value is far from the\n * bounds it will start changing when the value starts getting closer again.\n *\n * See https://reactnative.dev/docs/animated.html#diffclamp\n */\n diffClamp,\n\n /**\n * Starts an animation after the given delay.\n *\n * See https://reactnative.dev/docs/animated.html#delay\n */\n delay,\n\n /**\n * Starts an array of animations in order, waiting for each to complete\n * before starting the next. If the current running animation is stopped, no\n * following animations will be started.\n *\n * See https://reactnative.dev/docs/animated.html#sequence\n */\n sequence,\n\n /**\n * Starts an array of animations all at the same time. By default, if one\n * of the animations is stopped, they will all be stopped. You can override\n * this with the `stopTogether` flag.\n *\n * See https://reactnative.dev/docs/animated.html#parallel\n */\n parallel,\n\n /**\n * Array of animations may run in parallel (overlap), but are started in\n * sequence with successive delays. Nice for doing trailing effects.\n *\n * See https://reactnative.dev/docs/animated.html#stagger\n */\n stagger,\n\n /**\n * Loops a given animation continuously, so that each time it reaches the\n * end, it resets and begins again from the start.\n *\n * See https://reactnative.dev/docs/animated.html#loop\n */\n loop,\n\n /**\n * Takes an array of mappings and extracts values from each arg accordingly,\n * then calls `setValue` on the mapped outputs.\n *\n * See https://reactnative.dev/docs/animated.html#event\n */\n event,\n\n /**\n * Make any React component Animatable. Used to create `Animated.View`, etc.\n *\n * See https://reactnative.dev/docs/animated.html#createanimatedcomponent\n */\n createAnimatedComponent,\n\n /**\n * Imperative API to attach an animated value to an event on a view. Prefer\n * using `Animated.event` with `useNativeDrive: true` if possible.\n *\n * See https://reactnative.dev/docs/animated.html#attachnativeevent\n */\n attachNativeEvent,\n\n /**\n * Advanced imperative API for snooping on animated events that are passed in\n * through props. Use values directly where possible.\n *\n * See https://reactnative.dev/docs/animated.html#forkevent\n */\n forkEvent,\n unforkEvent,\n\n /**\n * Expose Event class, so it can be used as a type for type checkers.\n */\n Event: AnimatedEvent,\n __PropsOnlyForTests: AnimatedProps\n};","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport { AnimatedEvent, attachNativeEvent } from './AnimatedEvent';\nimport AnimatedImplementation from './AnimatedImplementation';\nimport AnimatedInterpolation from './nodes/AnimatedInterpolation';\nimport AnimatedNode from './nodes/AnimatedNode';\nimport AnimatedProps from './nodes/AnimatedProps';\nimport AnimatedValue from './nodes/AnimatedValue';\nimport AnimatedValueXY from './nodes/AnimatedValueXY';\nimport createAnimatedComponent from './createAnimatedComponent';\nvar emptyAnimation = {\n start: () => {},\n stop: () => {},\n reset: () => {},\n _startNativeLoop: () => {},\n _isUsingNativeDriver: () => {\n return false;\n }\n};\n\nvar spring = function spring(value, config) {\n var anyValue = value;\n return _objectSpread(_objectSpread({}, emptyAnimation), {}, {\n start: callback => {\n anyValue.setValue(config.toValue);\n callback && callback({\n finished: true\n });\n }\n });\n};\n\nvar timing = function timing(value, config) {\n var anyValue = value;\n return _objectSpread(_objectSpread({}, emptyAnimation), {}, {\n start: callback => {\n anyValue.setValue(config.toValue);\n callback && callback({\n finished: true\n });\n }\n });\n};\n\nvar decay = function decay(value, config) {\n return emptyAnimation;\n};\n\nvar sequence = function sequence(animations) {\n return emptyAnimation;\n};\n\nvar parallel = function parallel(animations, config) {\n return emptyAnimation;\n};\n\nvar delay = function delay(time) {\n return emptyAnimation;\n};\n\nvar stagger = function stagger(time, animations) {\n return emptyAnimation;\n};\n\nvar loop = function loop(animation, _temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$iterations = _ref.iterations,\n iterations = _ref$iterations === void 0 ? -1 : _ref$iterations;\n\n return emptyAnimation;\n};\n\nvar event = function event(argMapping, config) {\n return null;\n};\n\nexport default {\n Value: AnimatedValue,\n ValueXY: AnimatedValueXY,\n Interpolation: AnimatedInterpolation,\n Node: AnimatedNode,\n decay,\n timing,\n spring,\n add: AnimatedImplementation.add,\n subtract: AnimatedImplementation.subtract,\n divide: AnimatedImplementation.divide,\n multiply: AnimatedImplementation.multiply,\n modulo: AnimatedImplementation.modulo,\n diffClamp: AnimatedImplementation.diffClamp,\n delay,\n sequence,\n parallel,\n stagger,\n loop,\n event,\n createAnimatedComponent,\n attachNativeEvent,\n forkEvent: AnimatedImplementation.forkEvent,\n unforkEvent: AnimatedImplementation.unforkEvent,\n Event: AnimatedEvent,\n __PropsOnlyForTests: AnimatedProps\n};","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\nimport Platform from '../../../exports/Platform';\nimport FlatList from './components/AnimatedFlatList';\nimport Image from './components/AnimatedImage';\nimport ScrollView from './components/AnimatedScrollView';\nimport SectionList from './components/AnimatedSectionList';\nimport Text from './components/AnimatedText';\nimport View from './components/AnimatedView';\nimport AnimatedMock from './AnimatedMock';\nimport AnimatedImplementation from './AnimatedImplementation';\nvar Animated = Platform.isTesting ? AnimatedMock : AnimatedImplementation;\nexport default _objectSpread({\n FlatList,\n Image,\n ScrollView,\n SectionList,\n Text,\n View\n}, Animated);","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport Animated from '../../vendor/react-native/Animated/Animated';\nexport default Animated;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport invariant from 'fbjs/lib/invariant';\nimport canUseDOM from '../../modules/canUseDom';\nvar dimensions = {\n window: {\n fontScale: 1,\n height: 0,\n scale: 1,\n width: 0\n },\n screen: {\n fontScale: 1,\n height: 0,\n scale: 1,\n width: 0\n }\n};\nvar listeners = {};\nvar shouldInit = canUseDOM;\n\nfunction update() {\n if (!canUseDOM) {\n return;\n }\n\n var win = window;\n var docEl = win.document.documentElement;\n dimensions.window = {\n fontScale: 1,\n height: docEl.clientHeight,\n scale: win.devicePixelRatio || 1,\n width: docEl.clientWidth\n };\n dimensions.screen = {\n fontScale: 1,\n height: win.screen.height,\n scale: win.devicePixelRatio || 1,\n width: win.screen.width\n };\n}\n\nfunction handleResize() {\n update();\n\n if (Array.isArray(listeners['change'])) {\n listeners['change'].forEach(handler => handler(dimensions));\n }\n}\n\nexport default class Dimensions {\n static get(dimension) {\n if (shouldInit) {\n shouldInit = false;\n update();\n }\n\n invariant(dimensions[dimension], \"No dimension set for key \" + dimension);\n return dimensions[dimension];\n }\n\n static set(initialDimensions) {\n if (initialDimensions) {\n if (canUseDOM) {\n invariant(false, 'Dimensions cannot be set in the browser');\n } else {\n if (initialDimensions.screen != null) {\n dimensions.screen = initialDimensions.screen;\n }\n\n if (initialDimensions.window != null) {\n dimensions.window = initialDimensions.window;\n }\n }\n }\n }\n\n static addEventListener(type, handler) {\n listeners[type] = listeners[type] || [];\n listeners[type].push(handler);\n return {\n remove: () => {\n this.removeEventListener(type, handler);\n }\n };\n }\n\n static removeEventListener(type, handler) {\n if (Array.isArray(listeners[type])) {\n listeners[type] = listeners[type].filter(_handler => _handler !== handler);\n }\n }\n\n}\n\nif (canUseDOM) {\n window.addEventListener('resize', handleResize, false);\n}","/**\n * Portions Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n/**\n * BezierEasing - use bezier curve for transition easing function\n * https://github.com/gre/bezier-easing\n * @copyright 2014-2015 Gaëtan Renaudeau. MIT License.\n */\n'use strict'; // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\nvar NEWTON_ITERATIONS = 4;\nvar NEWTON_MIN_SLOPE = 0.001;\nvar SUBDIVISION_PRECISION = 0.0000001;\nvar SUBDIVISION_MAX_ITERATIONS = 10;\nvar kSplineTableSize = 11;\nvar kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\nvar float32ArraySupported = typeof Float32Array === 'function';\n\nfunction A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n}\n\nfunction B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n}\n\nfunction C(aA1) {\n return 3.0 * aA1;\n} // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\nfunction calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n} // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\nfunction getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n}\n\nfunction binarySubdivide(aX, _aA, _aB, mX1, mX2) {\n var currentX,\n currentT,\n i = 0,\n aA = _aA,\n aB = _aB;\n\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n return currentT;\n}\n\nfunction newtonRaphsonIterate(aX, _aGuessT, mX1, mX2) {\n var aGuessT = _aGuessT;\n\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n\n if (currentSlope === 0.0) {\n return aGuessT;\n }\n\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n\n return aGuessT;\n}\n\nexport default function bezier(mX1, mY1, mX2, mY2) {\n if (!(mX1 >= 0 && mX1 <= 1 && mX2 >= 0 && mX2 <= 1)) {\n throw new Error('bezier x values must be in [0, 1] range');\n } // Precompute samples table\n\n\n var sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n for (var i = 0; i < kSplineTableSize; ++i) {\n sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n }\n\n function getTForX(aX) {\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample; // Interpolate to provide an initial guess for t\n\n var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n } else if (initialSlope === 0.0) {\n return guessForT;\n } else {\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n }\n\n return function BezierEasing(x) {\n if (mX1 === mY1 && mX2 === mY2) {\n return x; // linear\n } // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n\n if (x === 0) {\n return 0;\n }\n\n if (x === 1) {\n return 1;\n }\n\n return calcBezier(getTForX(x), mY1, mY2);\n };\n}\n;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n'use strict';\n\nimport _bezier from './bezier';\nvar ease;\n/**\n * The `Easing` module implements common easing functions. This module is used\n * by [Animate.timing()](docs/animate.html#timing) to convey physically\n * believable motion in animations.\n *\n * You can find a visualization of some common easing functions at\n * http://easings.net/\n *\n * ### Predefined animations\n *\n * The `Easing` module provides several predefined animations through the\n * following methods:\n *\n * - [`back`](docs/easing.html#back) provides a simple animation where the\n * object goes slightly back before moving forward\n * - [`bounce`](docs/easing.html#bounce) provides a bouncing animation\n * - [`ease`](docs/easing.html#ease) provides a simple inertial animation\n * - [`elastic`](docs/easing.html#elastic) provides a simple spring interaction\n *\n * ### Standard functions\n *\n * Three standard easing functions are provided:\n *\n * - [`linear`](docs/easing.html#linear)\n * - [`quad`](docs/easing.html#quad)\n * - [`cubic`](docs/easing.html#cubic)\n *\n * The [`poly`](docs/easing.html#poly) function can be used to implement\n * quartic, quintic, and other higher power functions.\n *\n * ### Additional functions\n *\n * Additional mathematical functions are provided by the following methods:\n *\n * - [`bezier`](docs/easing.html#bezier) provides a cubic bezier curve\n * - [`circle`](docs/easing.html#circle) provides a circular function\n * - [`sin`](docs/easing.html#sin) provides a sinusoidal function\n * - [`exp`](docs/easing.html#exp) provides an exponential function\n *\n * The following helpers are used to modify other easing functions.\n *\n * - [`in`](docs/easing.html#in) runs an easing function forwards\n * - [`inOut`](docs/easing.html#inout) makes any easing function symmetrical\n * - [`out`](docs/easing.html#out) runs an easing function backwards\n */\n\nclass Easing {\n /**\n * A stepping function, returns 1 for any positive value of `n`.\n */\n static step0(n) {\n return n > 0 ? 1 : 0;\n }\n /**\n * A stepping function, returns 1 if `n` is greater than or equal to 1.\n */\n\n\n static step1(n) {\n return n >= 1 ? 1 : 0;\n }\n /**\n * A linear function, `f(t) = t`. Position correlates to elapsed time one to\n * one.\n *\n * http://cubic-bezier.com/#0,0,1,1\n */\n\n\n static linear(t) {\n return t;\n }\n /**\n * A simple inertial interaction, similar to an object slowly accelerating to\n * speed.\n *\n * http://cubic-bezier.com/#.42,0,1,1\n */\n\n\n static ease(t) {\n if (!ease) {\n ease = Easing.bezier(0.42, 0, 1, 1);\n }\n\n return ease(t);\n }\n /**\n * A quadratic function, `f(t) = t * t`. Position equals the square of elapsed\n * time.\n *\n * http://easings.net/#easeInQuad\n */\n\n\n static quad(t) {\n return t * t;\n }\n /**\n * A cubic function, `f(t) = t * t * t`. Position equals the cube of elapsed\n * time.\n *\n * http://easings.net/#easeInCubic\n */\n\n\n static cubic(t) {\n return t * t * t;\n }\n /**\n * A power function. Position is equal to the Nth power of elapsed time.\n *\n * n = 4: http://easings.net/#easeInQuart\n * n = 5: http://easings.net/#easeInQuint\n */\n\n\n static poly(n) {\n return t => Math.pow(t, n);\n }\n /**\n * A sinusoidal function.\n *\n * http://easings.net/#easeInSine\n */\n\n\n static sin(t) {\n return 1 - Math.cos(t * Math.PI / 2);\n }\n /**\n * A circular function.\n *\n * http://easings.net/#easeInCirc\n */\n\n\n static circle(t) {\n return 1 - Math.sqrt(1 - t * t);\n }\n /**\n * An exponential function.\n *\n * http://easings.net/#easeInExpo\n */\n\n\n static exp(t) {\n return Math.pow(2, 10 * (t - 1));\n }\n /**\n * A simple elastic interaction, similar to a spring oscillating back and\n * forth.\n *\n * Default bounciness is 1, which overshoots a little bit once. 0 bounciness\n * doesn't overshoot at all, and bounciness of N > 1 will overshoot about N\n * times.\n *\n * http://easings.net/#easeInElastic\n */\n\n\n static elastic(bounciness) {\n if (bounciness === void 0) {\n bounciness = 1;\n }\n\n var p = bounciness * Math.PI;\n return t => 1 - Math.pow(Math.cos(t * Math.PI / 2), 3) * Math.cos(t * p);\n }\n /**\n * Use with `Animated.parallel()` to create a simple effect where the object\n * animates back slightly as the animation starts.\n *\n * Wolfram Plot:\n *\n * - http://tiny.cc/back_default (s = 1.70158, default)\n */\n\n\n static back(s) {\n if (s === void 0) {\n s = 1.70158;\n }\n\n return t => t * t * ((s + 1) * t - s);\n }\n /**\n * Provides a simple bouncing effect.\n *\n * http://easings.net/#easeInBounce\n */\n\n\n static bounce(t) {\n if (t < 1 / 2.75) {\n return 7.5625 * t * t;\n }\n\n if (t < 2 / 2.75) {\n var _t = t - 1.5 / 2.75;\n\n return 7.5625 * _t * _t + 0.75;\n }\n\n if (t < 2.5 / 2.75) {\n var _t2 = t - 2.25 / 2.75;\n\n return 7.5625 * _t2 * _t2 + 0.9375;\n }\n\n var t2 = t - 2.625 / 2.75;\n return 7.5625 * t2 * t2 + 0.984375;\n }\n /**\n * Provides a cubic bezier curve, equivalent to CSS Transitions'\n * `transition-timing-function`.\n *\n * A useful tool to visualize cubic bezier curves can be found at\n * http://cubic-bezier.com/\n */\n\n\n static bezier(x1, y1, x2, y2) {\n return _bezier(x1, y1, x2, y2);\n }\n /**\n * Runs an easing function forwards.\n */\n\n\n static in(easing) {\n return easing;\n }\n /**\n * Runs an easing function backwards.\n */\n\n\n static out(easing) {\n return t => 1 - easing(1 - t);\n }\n /**\n * Makes any easing function symmetrical. The easing function will run\n * forwards for half of the duration, then backwards for the rest of the\n * duration.\n */\n\n\n static inOut(easing) {\n return t => {\n if (t < 0.5) {\n return easing(t * 2) / 2;\n }\n\n return 1 - easing((1 - t) * 2) / 2;\n };\n }\n\n}\n\nexport default Easing;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport Easing from '../../vendor/react-native/Animated/Easing';\nexport default Easing;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n'use strict';\n/*\n * @returns {bool} true if different, false if equal\n */\n\nvar deepDiffer = function deepDiffer(one, two, maxDepth) {\n if (maxDepth === void 0) {\n maxDepth = -1;\n }\n\n if (maxDepth === 0) {\n return true;\n }\n\n if (one === two) {\n // Short circuit on identical object references instead of traversing them.\n return false;\n }\n\n if (typeof one === 'function' && typeof two === 'function') {\n // We consider all functions equal\n return false;\n }\n\n if (typeof one !== 'object' || one === null) {\n // Primitives can be directly compared\n return one !== two;\n }\n\n if (typeof two !== 'object' || two === null) {\n // We know they are different because the previous case would have triggered\n // otherwise.\n return true;\n }\n\n if (one.constructor !== two.constructor) {\n return true;\n }\n\n if (Array.isArray(one)) {\n // We know two is also an array because the constructors are equal\n var len = one.length;\n\n if (two.length !== len) {\n return true;\n }\n\n for (var ii = 0; ii < len; ii++) {\n if (deepDiffer(one[ii], two[ii], maxDepth - 1)) {\n return true;\n }\n }\n } else {\n for (var key in one) {\n if (deepDiffer(one[key], two[key], maxDepth - 1)) {\n return true;\n }\n }\n\n for (var twoKey in two) {\n // The only case we haven't checked yet is keys that are in two but aren't\n // in one, which means they are different.\n if (one[twoKey] === undefined && two[twoKey] !== undefined) {\n return true;\n }\n }\n }\n\n return false;\n};\n\nexport default deepDiffer;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nvar _excluded = [\"numColumns\", \"columnWrapperStyle\", \"removeClippedSubviews\"];\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\nimport Platform from '../../../exports/Platform';\nimport deepDiffer from '../deepDiffer';\nimport * as React from 'react';\nimport View from '../../../exports/View';\nimport VirtualizedList from '../VirtualizedList';\nimport StyleSheet from '../../../exports/StyleSheet';\nimport invariant from 'fbjs/lib/invariant';\nimport { keyExtractor as defaultKeyExtractor } from '../VirtualizeUtils';\n\n/**\n * Default Props Helper Functions\n * Use the following helper functions for default values\n */\n// removeClippedSubviewsOrDefault(this.props.removeClippedSubviews)\nfunction removeClippedSubviewsOrDefault(removeClippedSubviews) {\n return removeClippedSubviews !== null && removeClippedSubviews !== void 0 ? removeClippedSubviews : Platform.OS === 'android';\n} // numColumnsOrDefault(this.props.numColumns)\n\n\nfunction numColumnsOrDefault(numColumns) {\n return numColumns !== null && numColumns !== void 0 ? numColumns : 1;\n}\n\n/**\n * A performant interface for rendering simple, flat lists, supporting the most handy features:\n *\n * - Fully cross-platform.\n * - Optional horizontal mode.\n * - Configurable viewability callbacks.\n * - Header support.\n * - Footer support.\n * - Separator support.\n * - Pull to Refresh.\n * - Scroll loading.\n * - ScrollToIndex support.\n *\n * If you need section support, use [``](docs/sectionlist.html).\n *\n * Minimal Example:\n *\n * {item.key}}\n * />\n *\n * More complex, multi-select example demonstrating `PureComponent` usage for perf optimization and avoiding bugs.\n *\n * - By binding the `onPressItem` handler, the props will remain `===` and `PureComponent` will\n * prevent wasteful re-renders unless the actual `id`, `selected`, or `title` props change, even\n * if the components rendered in `MyListItem` did not have such optimizations.\n * - By passing `extraData={this.state}` to `FlatList` we make sure `FlatList` itself will re-render\n * when the `state.selected` changes. Without setting this prop, `FlatList` would not know it\n * needs to re-render any items because it is also a `PureComponent` and the prop comparison will\n * not show any changes.\n * - `keyExtractor` tells the list to use the `id`s for the react keys instead of the default `key` property.\n *\n *\n * class MyListItem extends React.PureComponent {\n * _onPress = () => {\n * this.props.onPressItem(this.props.id);\n * };\n *\n * render() {\n * const textColor = this.props.selected ? \"red\" : \"black\";\n * return (\n * \n * \n * \n * {this.props.title}\n * \n * \n * \n * );\n * }\n * }\n *\n * class MultiSelectList extends React.PureComponent {\n * state = {selected: (new Map(): Map)};\n *\n * _keyExtractor = (item, index) => item.id;\n *\n * _onPressItem = (id: string) => {\n * // updater functions are preferred for transactional updates\n * this.setState((state) => {\n * // copy the map rather than modifying state.\n * const selected = new Map(state.selected);\n * selected.set(id, !selected.get(id)); // toggle\n * return {selected};\n * });\n * };\n *\n * _renderItem = ({item}) => (\n * \n * );\n *\n * render() {\n * return (\n * \n * );\n * }\n * }\n *\n * This is a convenience wrapper around [``](docs/virtualizedlist.html),\n * and thus inherits its props (as well as those of `ScrollView`) that aren't explicitly listed\n * here, along with the following caveats:\n *\n * - Internal state is not preserved when content scrolls out of the render window. Make sure all\n * your data is captured in the item data or external stores like Flux, Redux, or Relay.\n * - This is a `PureComponent` which means that it will not re-render if `props` remain shallow-\n * equal. Make sure that everything your `renderItem` function depends on is passed as a prop\n * (e.g. `extraData`) that is not `===` after updates, otherwise your UI may not update on\n * changes. This includes the `data` prop and parent component state.\n * - In order to constrain memory and enable smooth scrolling, content is rendered asynchronously\n * offscreen. This means it's possible to scroll faster than the fill rate ands momentarily see\n * blank content. This is a tradeoff that can be adjusted to suit the needs of each application,\n * and we are working on improving it behind the scenes.\n * - By default, the list looks for a `key` prop on each item and uses that for the React key.\n * Alternatively, you can provide a custom `keyExtractor` prop.\n *\n * Also inherits [ScrollView Props](docs/scrollview.html#props), unless it is nested in another FlatList of same orientation.\n */\nclass FlatList extends React.PureComponent {\n /**\n * Scrolls to the end of the content. May be janky without `getItemLayout` prop.\n */\n scrollToEnd(params) {\n if (this._listRef) {\n this._listRef.scrollToEnd(params);\n }\n }\n /**\n * Scrolls to the item at the specified index such that it is positioned in the viewable area\n * such that `viewPosition` 0 places it at the top, 1 at the bottom, and 0.5 centered in the\n * middle. `viewOffset` is a fixed number of pixels to offset the final target position.\n *\n * Note: cannot scroll to locations outside the render window without specifying the\n * `getItemLayout` prop.\n */\n\n\n scrollToIndex(params) {\n if (this._listRef) {\n this._listRef.scrollToIndex(params);\n }\n }\n /**\n * Requires linear scan through data - use `scrollToIndex` instead if possible.\n *\n * Note: cannot scroll to locations outside the render window without specifying the\n * `getItemLayout` prop.\n */\n\n\n scrollToItem(params) {\n if (this._listRef) {\n this._listRef.scrollToItem(params);\n }\n }\n /**\n * Scroll to a specific content pixel offset in the list.\n *\n * Check out [scrollToOffset](docs/virtualizedlist.html#scrolltooffset) of VirtualizedList\n */\n\n\n scrollToOffset(params) {\n if (this._listRef) {\n this._listRef.scrollToOffset(params);\n }\n }\n /**\n * Tells the list an interaction has occurred, which should trigger viewability calculations, e.g.\n * if `waitForInteractions` is true and the user has not scrolled. This is typically called by\n * taps on items or by navigation actions.\n */\n\n\n recordInteraction() {\n if (this._listRef) {\n this._listRef.recordInteraction();\n }\n }\n /**\n * Displays the scroll indicators momentarily.\n *\n * @platform ios\n */\n\n\n flashScrollIndicators() {\n if (this._listRef) {\n this._listRef.flashScrollIndicators();\n }\n }\n /**\n * Provides a handle to the underlying scroll responder.\n */\n\n\n getScrollResponder() {\n if (this._listRef) {\n return this._listRef.getScrollResponder();\n }\n }\n /**\n * Provides a reference to the underlying host component\n */\n\n\n getNativeScrollRef() {\n if (this._listRef) {\n /* $FlowFixMe[incompatible-return] Suppresses errors found when fixing\n * TextInput typing */\n return this._listRef.getScrollRef();\n }\n }\n\n getScrollableNode() {\n if (this._listRef) {\n return this._listRef.getScrollableNode();\n }\n }\n\n setNativeProps(props) {\n if (this._listRef) {\n this._listRef.setNativeProps(props);\n }\n }\n\n constructor(_props) {\n super(_props);\n this._virtualizedListPairs = [];\n\n this._captureRef = ref => {\n this._listRef = ref;\n };\n\n this._getItem = (data, index) => {\n var numColumns = numColumnsOrDefault(this.props.numColumns);\n\n if (numColumns > 1) {\n var ret = [];\n\n for (var kk = 0; kk < numColumns; kk++) {\n var _item = data[index * numColumns + kk];\n\n if (_item != null) {\n ret.push(_item);\n }\n }\n\n return ret;\n } else {\n return data[index];\n }\n };\n\n this._getItemCount = data => {\n if (data) {\n var numColumns = numColumnsOrDefault(this.props.numColumns);\n return numColumns > 1 ? Math.ceil(data.length / numColumns) : data.length;\n } else {\n return 0;\n }\n };\n\n this._keyExtractor = (items, index) => {\n var _this$props$keyExtrac;\n\n var numColumns = numColumnsOrDefault(this.props.numColumns);\n var keyExtractor = (_this$props$keyExtrac = this.props.keyExtractor) !== null && _this$props$keyExtrac !== void 0 ? _this$props$keyExtrac : defaultKeyExtractor;\n\n if (numColumns > 1) {\n if (Array.isArray(items)) {\n return items.map((item, kk) => keyExtractor(item, index * numColumns + kk)).join(':');\n } else {\n invariant(Array.isArray(items), 'FlatList: Encountered internal consistency error, expected each item to consist of an ' + 'array with 1-%s columns; instead, received a single item.', numColumns);\n }\n } else {\n // $FlowFixMe[incompatible-call] Can't call keyExtractor with an array\n return keyExtractor(items, index);\n }\n };\n\n this._renderer = () => {\n var _this$props = this.props,\n ListItemComponent = _this$props.ListItemComponent,\n renderItem = _this$props.renderItem,\n columnWrapperStyle = _this$props.columnWrapperStyle;\n var numColumns = numColumnsOrDefault(this.props.numColumns);\n var virtualizedListRenderKey = ListItemComponent ? 'ListItemComponent' : 'renderItem';\n\n var renderer = props => {\n if (ListItemComponent) {\n // $FlowFixMe[not-a-component] Component isn't valid\n // $FlowFixMe[incompatible-type-arg] Component isn't valid\n // $FlowFixMe[incompatible-return] Component isn't valid\n return /*#__PURE__*/React.createElement(ListItemComponent, props);\n } else if (renderItem) {\n // $FlowFixMe[incompatible-call]\n return renderItem(props);\n } else {\n return null;\n }\n };\n\n return {\n /* $FlowFixMe[invalid-computed-prop] (>=0.111.0 site=react_native_fb)\n * This comment suppresses an error found when Flow v0.111 was deployed.\n * To see the error, delete this comment and run Flow. */\n [virtualizedListRenderKey]: info => {\n if (numColumns > 1) {\n var _item2 = info.item,\n _index = info.index;\n invariant(Array.isArray(_item2), 'Expected array of items with numColumns > 1');\n return /*#__PURE__*/React.createElement(View, {\n style: StyleSheet.compose(styles.row, columnWrapperStyle)\n }, _item2.map((it, kk) => {\n var element = renderer({\n item: it,\n index: _index * numColumns + kk,\n separators: info.separators\n });\n return element != null ? /*#__PURE__*/React.createElement(React.Fragment, {\n key: kk\n }, element) : null;\n }));\n } else {\n return renderer(info);\n }\n }\n };\n };\n\n this._checkProps(this.props);\n\n if (this.props.viewabilityConfigCallbackPairs) {\n this._virtualizedListPairs = this.props.viewabilityConfigCallbackPairs.map(pair => ({\n viewabilityConfig: pair.viewabilityConfig,\n onViewableItemsChanged: this._createOnViewableItemsChanged(pair.onViewableItemsChanged)\n }));\n } else if (this.props.onViewableItemsChanged) {\n this._virtualizedListPairs.push({\n /* $FlowFixMe[incompatible-call] (>=0.63.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.63 was deployed. To\n * see the error delete this comment and run Flow. */\n viewabilityConfig: this.props.viewabilityConfig,\n onViewableItemsChanged: this._createOnViewableItemsChanged(this.props.onViewableItemsChanged)\n });\n }\n }\n\n componentDidUpdate(prevProps) {\n invariant(prevProps.numColumns === this.props.numColumns, 'Changing numColumns on the fly is not supported. Change the key prop on FlatList when ' + 'changing the number of columns to force a fresh render of the component.');\n invariant(prevProps.onViewableItemsChanged === this.props.onViewableItemsChanged, 'Changing onViewableItemsChanged on the fly is not supported');\n invariant(!deepDiffer(prevProps.viewabilityConfig, this.props.viewabilityConfig), 'Changing viewabilityConfig on the fly is not supported');\n invariant(prevProps.viewabilityConfigCallbackPairs === this.props.viewabilityConfigCallbackPairs, 'Changing viewabilityConfigCallbackPairs on the fly is not supported');\n\n this._checkProps(this.props);\n }\n\n _checkProps(props) {\n var getItem = props.getItem,\n getItemCount = props.getItemCount,\n horizontal = props.horizontal,\n columnWrapperStyle = props.columnWrapperStyle,\n onViewableItemsChanged = props.onViewableItemsChanged,\n viewabilityConfigCallbackPairs = props.viewabilityConfigCallbackPairs;\n var numColumns = numColumnsOrDefault(this.props.numColumns);\n invariant(!getItem && !getItemCount, 'FlatList does not support custom data formats.');\n\n if (numColumns > 1) {\n invariant(!horizontal, 'numColumns does not support horizontal.');\n } else {\n invariant(!columnWrapperStyle, 'columnWrapperStyle not supported for single column lists');\n }\n\n invariant(!(onViewableItemsChanged && viewabilityConfigCallbackPairs), 'FlatList does not support setting both onViewableItemsChanged and ' + 'viewabilityConfigCallbackPairs.');\n }\n\n _pushMultiColumnViewable(arr, v) {\n var _this$props$keyExtrac2;\n\n var numColumns = numColumnsOrDefault(this.props.numColumns);\n var keyExtractor = (_this$props$keyExtrac2 = this.props.keyExtractor) !== null && _this$props$keyExtrac2 !== void 0 ? _this$props$keyExtrac2 : defaultKeyExtractor;\n v.item.forEach((item, ii) => {\n invariant(v.index != null, 'Missing index!');\n var index = v.index * numColumns + ii;\n arr.push(_objectSpread(_objectSpread({}, v), {}, {\n item,\n key: keyExtractor(item, index),\n index\n }));\n });\n }\n\n _createOnViewableItemsChanged(onViewableItemsChanged) {\n return info => {\n var numColumns = numColumnsOrDefault(this.props.numColumns);\n\n if (onViewableItemsChanged) {\n if (numColumns > 1) {\n var changed = [];\n var viewableItems = [];\n info.viewableItems.forEach(v => this._pushMultiColumnViewable(viewableItems, v));\n info.changed.forEach(v => this._pushMultiColumnViewable(changed, v));\n onViewableItemsChanged({\n viewableItems,\n changed\n });\n } else {\n onViewableItemsChanged(info);\n }\n }\n };\n }\n\n render() {\n var _this$props2 = this.props,\n numColumns = _this$props2.numColumns,\n columnWrapperStyle = _this$props2.columnWrapperStyle,\n _removeClippedSubviews = _this$props2.removeClippedSubviews,\n restProps = _objectWithoutPropertiesLoose(_this$props2, _excluded);\n\n return /*#__PURE__*/React.createElement(VirtualizedList, _extends({}, restProps, {\n getItem: this._getItem,\n getItemCount: this._getItemCount,\n keyExtractor: this._keyExtractor,\n ref: this._captureRef,\n viewabilityConfigCallbackPairs: this._virtualizedListPairs,\n removeClippedSubviews: removeClippedSubviewsOrDefault(_removeClippedSubviews)\n }, this._renderer()));\n }\n\n}\n\nvar styles = StyleSheet.create({\n row: {\n flexDirection: 'row'\n }\n});\nexport default FlatList;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport FlatList from '../../vendor/react-native/FlatList';\nexport default FlatList;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar I18nManager = {\n allowRTL() {\n return;\n },\n\n forceRTL() {\n return;\n },\n\n getConstants() {\n return {\n isRTL: false\n };\n }\n\n};\nexport default I18nManager;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar assets = [];\nexport function registerAsset(asset) {\n // `push` returns new array length, so the first asset will\n // get id 1 (not 0) to make the value truthy\n return assets.push(asset);\n}\nexport function getAssetByID(assetId) {\n return assets[assetId - 1];\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar dataUriPattern = /^data:/;\nexport class ImageUriCache {\n static has(uri) {\n var entries = ImageUriCache._entries;\n var isDataUri = dataUriPattern.test(uri);\n return isDataUri || Boolean(entries[uri]);\n }\n\n static add(uri) {\n var entries = ImageUriCache._entries;\n var lastUsedTimestamp = Date.now();\n\n if (entries[uri]) {\n entries[uri].lastUsedTimestamp = lastUsedTimestamp;\n entries[uri].refCount += 1;\n } else {\n entries[uri] = {\n lastUsedTimestamp,\n refCount: 1\n };\n }\n }\n\n static remove(uri) {\n var entries = ImageUriCache._entries;\n\n if (entries[uri]) {\n entries[uri].refCount -= 1;\n } // Free up entries when the cache is \"full\"\n\n\n ImageUriCache._cleanUpIfNeeded();\n }\n\n static _cleanUpIfNeeded() {\n var entries = ImageUriCache._entries;\n var imageUris = Object.keys(entries);\n\n if (imageUris.length + 1 > ImageUriCache._maximumEntries) {\n var leastRecentlyUsedKey;\n var leastRecentlyUsedEntry;\n imageUris.forEach(uri => {\n var entry = entries[uri];\n\n if ((!leastRecentlyUsedEntry || entry.lastUsedTimestamp < leastRecentlyUsedEntry.lastUsedTimestamp) && entry.refCount === 0) {\n leastRecentlyUsedKey = uri;\n leastRecentlyUsedEntry = entry;\n }\n });\n\n if (leastRecentlyUsedKey) {\n delete entries[leastRecentlyUsedKey];\n }\n }\n }\n\n}\nImageUriCache._maximumEntries = 256;\nImageUriCache._entries = {};\nvar id = 0;\nvar requests = {};\nvar ImageLoader = {\n abort(requestId) {\n var image = requests[\"\" + requestId];\n\n if (image) {\n image.onerror = null;\n image.onload = null;\n image = null;\n delete requests[\"\" + requestId];\n }\n },\n\n getSize(uri, success, failure) {\n var complete = false;\n var interval = setInterval(callback, 16);\n var requestId = ImageLoader.load(uri, callback, errorCallback);\n\n function callback() {\n var image = requests[\"\" + requestId];\n\n if (image) {\n var naturalHeight = image.naturalHeight,\n naturalWidth = image.naturalWidth;\n\n if (naturalHeight && naturalWidth) {\n success(naturalWidth, naturalHeight);\n complete = true;\n }\n }\n\n if (complete) {\n ImageLoader.abort(requestId);\n clearInterval(interval);\n }\n }\n\n function errorCallback() {\n if (typeof failure === 'function') {\n failure();\n }\n\n ImageLoader.abort(requestId);\n clearInterval(interval);\n }\n },\n\n has(uri) {\n return ImageUriCache.has(uri);\n },\n\n load(uri, onLoad, onError) {\n id += 1;\n var image = new window.Image();\n image.onerror = onError;\n\n image.onload = e => {\n // avoid blocking the main thread\n var onDecode = () => onLoad({\n nativeEvent: e\n });\n\n if (typeof image.decode === 'function') {\n // Safari currently throws exceptions when decoding svgs.\n // We want to catch that error and allow the load handler\n // to be forwarded to the onLoad handler in this case\n image.decode().then(onDecode, onDecode);\n } else {\n setTimeout(onDecode, 0);\n }\n };\n\n image.src = uri;\n requests[\"\" + id] = image;\n return id;\n },\n\n prefetch(uri) {\n return new Promise((resolve, reject) => {\n ImageLoader.load(uri, () => {\n // Add the uri to the cache so it can be immediately displayed when used\n // but also immediately remove it to correctly reflect that it has no active references\n ImageUriCache.add(uri);\n ImageUriCache.remove(uri);\n resolve();\n }, reject);\n });\n },\n\n queryCache(uris) {\n var result = {};\n uris.forEach(u => {\n if (ImageUriCache.has(u)) {\n result[u] = 'disk/memory';\n }\n });\n return Promise.resolve(result);\n }\n\n};\nexport default ImageLoader;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"accessibilityLabel\", \"blurRadius\", \"defaultSource\", \"draggable\", \"onError\", \"onLayout\", \"onLoad\", \"onLoadEnd\", \"onLoadStart\", \"pointerEvents\", \"source\", \"style\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport { getAssetByID } from '../../modules/AssetRegistry';\nimport { createBoxShadowValue } from '../StyleSheet/preprocess';\nimport ImageLoader from '../../modules/ImageLoader';\nimport PixelRatio from '../PixelRatio';\nimport StyleSheet from '../StyleSheet';\nimport TextAncestorContext from '../Text/TextAncestorContext';\nimport View from '../View';\nvar ERRORED = 'ERRORED';\nvar LOADED = 'LOADED';\nvar LOADING = 'LOADING';\nvar IDLE = 'IDLE';\nvar _filterId = 0;\nvar svgDataUriPattern = /^(data:image\\/svg\\+xml;utf8,)(.*)/;\n\nfunction createTintColorSVG(tintColor, id) {\n return tintColor && id != null ? /*#__PURE__*/React.createElement(\"svg\", {\n style: {\n position: 'absolute',\n height: 0,\n visibility: 'hidden',\n width: 0\n }\n }, /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"filter\", {\n id: \"tint-\" + id,\n suppressHydrationWarning: true\n }, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodColor: \"\" + tintColor,\n key: tintColor\n }), /*#__PURE__*/React.createElement(\"feComposite\", {\n in2: \"SourceAlpha\",\n operator: \"atop\"\n })))) : null;\n}\n\nfunction getFlatStyle(style, blurRadius, filterId) {\n var flatStyle = StyleSheet.flatten(style);\n var filter = flatStyle.filter,\n resizeMode = flatStyle.resizeMode,\n shadowOffset = flatStyle.shadowOffset,\n tintColor = flatStyle.tintColor; // Add CSS filters\n // React Native exposes these features as props and proprietary styles\n\n var filters = [];\n var _filter = null;\n\n if (filter) {\n filters.push(filter);\n }\n\n if (blurRadius) {\n filters.push(\"blur(\" + blurRadius + \"px)\");\n }\n\n if (shadowOffset) {\n var shadowString = createBoxShadowValue(flatStyle);\n\n if (shadowString) {\n filters.push(\"drop-shadow(\" + shadowString + \")\");\n }\n }\n\n if (tintColor && filterId != null) {\n filters.push(\"url(#tint-\" + filterId + \")\");\n }\n\n if (filters.length > 0) {\n _filter = filters.join(' ');\n } // These styles are converted to CSS filters applied to the\n // element displaying the background image.\n\n\n delete flatStyle.blurRadius;\n delete flatStyle.shadowColor;\n delete flatStyle.shadowOpacity;\n delete flatStyle.shadowOffset;\n delete flatStyle.shadowRadius;\n delete flatStyle.tintColor; // These styles are not supported on View\n\n delete flatStyle.overlayColor;\n delete flatStyle.resizeMode;\n return [flatStyle, resizeMode, _filter, tintColor];\n}\n\nfunction resolveAssetDimensions(source) {\n if (typeof source === 'number') {\n var _getAssetByID = getAssetByID(source),\n _height = _getAssetByID.height,\n _width = _getAssetByID.width;\n\n return {\n height: _height,\n width: _width\n };\n } else if (source != null && !Array.isArray(source) && typeof source === 'object') {\n var _height2 = source.height,\n _width2 = source.width;\n return {\n height: _height2,\n width: _width2\n };\n }\n}\n\nfunction resolveAssetUri(source) {\n var uri = null;\n\n if (typeof source === 'number') {\n // get the URI from the packager\n var asset = getAssetByID(source);\n\n if (asset == null) {\n throw new Error(\"Image: asset with ID \\\"\" + source + \"\\\" could not be found. Please check the image source or packager.\");\n }\n\n var scale = asset.scales[0];\n\n if (asset.scales.length > 1) {\n var preferredScale = PixelRatio.get(); // Get the scale which is closest to the preferred scale\n\n scale = asset.scales.reduce((prev, curr) => Math.abs(curr - preferredScale) < Math.abs(prev - preferredScale) ? curr : prev);\n }\n\n var scaleSuffix = scale !== 1 ? \"@\" + scale + \"x\" : '';\n uri = asset ? asset.httpServerLocation + \"/\" + asset.name + scaleSuffix + \".\" + asset.type : '';\n } else if (typeof source === 'string') {\n uri = source;\n } else if (source && typeof source.uri === 'string') {\n uri = source.uri;\n }\n\n if (uri) {\n var match = uri.match(svgDataUriPattern); // inline SVG markup may contain characters (e.g., #, \") that need to be escaped\n\n if (match) {\n var prefix = match[1],\n svg = match[2];\n var encodedSvg = encodeURIComponent(svg);\n return \"\" + prefix + encodedSvg;\n }\n }\n\n return uri;\n}\n\nvar Image = /*#__PURE__*/React.forwardRef((props, ref) => {\n var accessibilityLabel = props.accessibilityLabel,\n blurRadius = props.blurRadius,\n defaultSource = props.defaultSource,\n draggable = props.draggable,\n onError = props.onError,\n onLayout = props.onLayout,\n onLoad = props.onLoad,\n onLoadEnd = props.onLoadEnd,\n onLoadStart = props.onLoadStart,\n pointerEvents = props.pointerEvents,\n source = props.source,\n style = props.style,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n\n if (process.env.NODE_ENV !== 'production') {\n if (props.children) {\n throw new Error('The component cannot contain children. If you want to render content on top of the image, consider using the component or absolute positioning.');\n }\n }\n\n var _React$useState = React.useState(() => {\n var uri = resolveAssetUri(source);\n\n if (uri != null) {\n var isLoaded = ImageLoader.has(uri);\n\n if (isLoaded) {\n return LOADED;\n }\n }\n\n return IDLE;\n }),\n state = _React$useState[0],\n updateState = _React$useState[1];\n\n var _React$useState2 = React.useState({}),\n layout = _React$useState2[0],\n updateLayout = _React$useState2[1];\n\n var hasTextAncestor = React.useContext(TextAncestorContext);\n var hiddenImageRef = React.useRef(null);\n var filterRef = React.useRef(_filterId++);\n var requestRef = React.useRef(null);\n var shouldDisplaySource = state === LOADED || state === LOADING && defaultSource == null;\n\n var _getFlatStyle = getFlatStyle(style, blurRadius, filterRef.current),\n flatStyle = _getFlatStyle[0],\n _resizeMode = _getFlatStyle[1],\n filter = _getFlatStyle[2],\n tintColor = _getFlatStyle[3];\n\n var resizeMode = props.resizeMode || _resizeMode || 'cover';\n var selectedSource = shouldDisplaySource ? source : defaultSource;\n var displayImageUri = resolveAssetUri(selectedSource);\n var imageSizeStyle = resolveAssetDimensions(selectedSource);\n var backgroundImage = displayImageUri ? \"url(\\\"\" + displayImageUri + \"\\\")\" : null;\n var backgroundSize = getBackgroundSize(); // Accessibility image allows users to trigger the browser's image context menu\n\n var hiddenImage = displayImageUri ? createElement('img', {\n alt: accessibilityLabel || '',\n style: styles.accessibilityImage$raw,\n draggable: draggable || false,\n ref: hiddenImageRef,\n src: displayImageUri\n }) : null;\n\n function getBackgroundSize() {\n if (hiddenImageRef.current != null && (resizeMode === 'center' || resizeMode === 'repeat')) {\n var _hiddenImageRef$curre = hiddenImageRef.current,\n naturalHeight = _hiddenImageRef$curre.naturalHeight,\n naturalWidth = _hiddenImageRef$curre.naturalWidth;\n var _height3 = layout.height,\n _width3 = layout.width;\n\n if (naturalHeight && naturalWidth && _height3 && _width3) {\n var scaleFactor = Math.min(1, _width3 / naturalWidth, _height3 / naturalHeight);\n var x = Math.ceil(scaleFactor * naturalWidth);\n var y = Math.ceil(scaleFactor * naturalHeight);\n return x + \"px \" + y + \"px\";\n }\n }\n }\n\n function handleLayout(e) {\n if (resizeMode === 'center' || resizeMode === 'repeat' || onLayout) {\n var _layout = e.nativeEvent.layout;\n onLayout && onLayout(e);\n updateLayout(_layout);\n }\n } // Image loading\n\n\n var uri = resolveAssetUri(source);\n React.useEffect(() => {\n abortPendingRequest();\n\n if (uri != null) {\n updateState(LOADING);\n\n if (onLoadStart) {\n onLoadStart();\n }\n\n requestRef.current = ImageLoader.load(uri, function load(e) {\n updateState(LOADED);\n\n if (onLoad) {\n onLoad(e);\n }\n\n if (onLoadEnd) {\n onLoadEnd();\n }\n }, function error() {\n updateState(ERRORED);\n\n if (onError) {\n onError({\n nativeEvent: {\n error: \"Failed to load resource \" + uri + \" (404)\"\n }\n });\n }\n\n if (onLoadEnd) {\n onLoadEnd();\n }\n });\n }\n\n function abortPendingRequest() {\n if (requestRef.current != null) {\n ImageLoader.abort(requestRef.current);\n requestRef.current = null;\n }\n }\n\n return abortPendingRequest;\n }, [uri, requestRef, updateState, onError, onLoad, onLoadEnd, onLoadStart]);\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, {\n accessibilityLabel: accessibilityLabel,\n onLayout: handleLayout,\n pointerEvents: pointerEvents,\n ref: ref,\n style: [styles.root, hasTextAncestor && styles.inline, imageSizeStyle, flatStyle]\n }), /*#__PURE__*/React.createElement(View, {\n style: [styles.image, resizeModeStyles[resizeMode], {\n backgroundImage,\n filter\n }, backgroundSize != null && {\n backgroundSize\n }],\n suppressHydrationWarning: true\n }), hiddenImage, createTintColorSVG(tintColor, filterRef.current));\n});\nImage.displayName = 'Image'; // $FlowIgnore: This is the correct type, but casting makes it unhappy since the variables aren't defined yet\n\nvar ImageWithStatics = Image;\n\nImageWithStatics.getSize = function (uri, success, failure) {\n ImageLoader.getSize(uri, success, failure);\n};\n\nImageWithStatics.prefetch = function (uri) {\n return ImageLoader.prefetch(uri);\n};\n\nImageWithStatics.queryCache = function (uris) {\n return ImageLoader.queryCache(uris);\n};\n\nvar styles = StyleSheet.create({\n root: {\n flexBasis: 'auto',\n overflow: 'hidden',\n zIndex: 0\n },\n inline: {\n display: 'inline-flex'\n },\n image: _objectSpread(_objectSpread({}, StyleSheet.absoluteFillObject), {}, {\n backgroundColor: 'transparent',\n backgroundPosition: 'center',\n backgroundRepeat: 'no-repeat',\n backgroundSize: 'cover',\n height: '100%',\n width: '100%',\n zIndex: -1\n }),\n accessibilityImage$raw: _objectSpread(_objectSpread({}, StyleSheet.absoluteFillObject), {}, {\n height: '100%',\n opacity: 0,\n width: '100%',\n zIndex: -1\n })\n});\nvar resizeModeStyles = StyleSheet.create({\n center: {\n backgroundSize: 'auto'\n },\n contain: {\n backgroundSize: 'contain'\n },\n cover: {\n backgroundSize: 'cover'\n },\n none: {\n backgroundPosition: '0',\n backgroundSize: 'auto'\n },\n repeat: {\n backgroundPosition: '0',\n backgroundRepeat: 'repeat',\n backgroundSize: 'auto'\n },\n stretch: {\n backgroundSize: '100% 100%'\n }\n});\nexport default ImageWithStatics;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport canUseDOM from '../canUseDom';\n\nvar _requestIdleCallback = function _requestIdleCallback(cb, options) {\n return setTimeout(() => {\n var start = Date.now();\n cb({\n didTimeout: false,\n\n timeRemaining() {\n return Math.max(0, 50 - (Date.now() - start));\n }\n\n });\n }, 1);\n};\n\nvar _cancelIdleCallback = function _cancelIdleCallback(id) {\n clearTimeout(id);\n};\n\nvar isSupported = canUseDOM && typeof window.requestIdleCallback !== 'undefined';\nvar requestIdleCallback = isSupported ? window.requestIdleCallback : _requestIdleCallback;\nvar cancelIdleCallback = isSupported ? window.cancelIdleCallback : _cancelIdleCallback;\nexport default requestIdleCallback;\nexport { cancelIdleCallback };","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport invariant from 'fbjs/lib/invariant';\nimport requestIdleCallback, { cancelIdleCallback } from '../../modules/requestIdleCallback';\nvar InteractionManager = {\n Events: {\n interactionStart: 'interactionStart',\n interactionComplete: 'interactionComplete'\n },\n\n /**\n * Schedule a function to run after all interactions have completed.\n */\n runAfterInteractions(task) {\n var handle;\n var promise = new Promise(resolve => {\n handle = requestIdleCallback(() => {\n if (task) {\n resolve(task());\n } else {\n resolve();\n }\n });\n });\n return {\n then: promise.then.bind(promise),\n done: promise.then.bind(promise),\n cancel: () => {\n cancelIdleCallback(handle);\n }\n };\n },\n\n /**\n * Notify manager that an interaction has started.\n */\n createInteractionHandle() {\n return 1;\n },\n\n /**\n * Notify manager that an interaction has completed.\n */\n clearInteractionHandle(handle) {\n invariant(!!handle, 'Must provide a handle to clear.');\n },\n\n addListener: () => {}\n};\nexport default InteractionManager;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport dismissKeyboard from '../../modules/dismissKeyboard';\nvar Keyboard = {\n addListener() {\n return {\n remove: () => {}\n };\n },\n\n dismiss() {\n dismissKeyboard();\n },\n\n removeAllListeners() {},\n\n removeListener() {}\n\n};\nexport default Keyboard;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport canUseDOM from '../../modules/canUseDom';\n\nfunction ModalPortal(props) {\n var children = props.children;\n var elementRef = React.useRef(null);\n\n if (canUseDOM && !elementRef.current) {\n var element = document.createElement('div');\n\n if (element && document.body) {\n document.body.appendChild(element);\n elementRef.current = element;\n }\n }\n\n React.useEffect(() => {\n if (canUseDOM) {\n return () => {\n if (document.body && elementRef.current) {\n document.body.removeChild(elementRef.current);\n elementRef.current = null;\n }\n };\n }\n }, []);\n return elementRef.current && canUseDOM ? /*#__PURE__*/ReactDOM.createPortal(children, elementRef.current) : null;\n}\n\nexport default ModalPortal;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport createElement from '../createElement';\nvar ANIMATION_DURATION = 300;\n\nfunction getAnimationStyle(animationType, visible) {\n if (animationType === 'slide') {\n return visible ? animatedSlideInStyles : animatedSlideOutStyles;\n }\n\n if (animationType === 'fade') {\n return visible ? animatedFadeInStyles : animatedFadeOutStyles;\n }\n\n return visible ? styles.container : styles.hidden;\n}\n\nfunction ModalAnimation(props) {\n var animationType = props.animationType,\n children = props.children,\n onDismiss = props.onDismiss,\n onShow = props.onShow,\n visible = props.visible;\n\n var _React$useState = React.useState(false),\n isRendering = _React$useState[0],\n setIsRendering = _React$useState[1];\n\n var wasVisible = React.useRef(false);\n var isAnimated = animationType && animationType !== 'none';\n var animationEndCallback = React.useCallback(e => {\n if (e && e.currentTarget !== e.target) {\n // If the event was generated for something NOT this element we\n // should ignore it as it's not relevant to us\n return;\n }\n\n if (visible) {\n if (onShow) {\n onShow();\n }\n } else {\n setIsRendering(false);\n\n if (onDismiss) {\n onDismiss();\n }\n }\n }, [onDismiss, onShow, visible]);\n React.useEffect(() => {\n if (visible) {\n setIsRendering(true);\n }\n\n if (visible !== wasVisible.current && !isAnimated) {\n // Manually call `animationEndCallback` if no animation is used\n animationEndCallback();\n }\n\n wasVisible.current = visible;\n }, [isAnimated, visible, animationEndCallback]);\n return isRendering || visible ? createElement('div', {\n style: isRendering ? getAnimationStyle(animationType, visible) : styles.hidden,\n onAnimationEnd: animationEndCallback,\n children\n }) : null;\n}\n\nvar styles = StyleSheet.create({\n container: {\n position: 'fixed',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n zIndex: 9999\n },\n animatedIn: {\n animationDuration: ANIMATION_DURATION + \"ms\",\n animationTimingFunction: 'ease-in'\n },\n animatedOut: {\n pointerEvents: 'none',\n animationDuration: ANIMATION_DURATION + \"ms\",\n animationTimingFunction: 'ease-out'\n },\n fadeIn: {\n opacity: 1,\n animationKeyframes: {\n '0%': {\n opacity: 0\n },\n '100%': {\n opacity: 1\n }\n }\n },\n fadeOut: {\n opacity: 0,\n animationKeyframes: {\n '0%': {\n opacity: 1\n },\n '100%': {\n opacity: 0\n }\n }\n },\n slideIn: {\n transform: [{\n translateY: '0%'\n }],\n animationKeyframes: {\n '0%': {\n transform: [{\n translateY: '100%'\n }]\n },\n '100%': {\n transform: [{\n translateY: '0%'\n }]\n }\n }\n },\n slideOut: {\n transform: [{\n translateY: '100%'\n }],\n animationKeyframes: {\n '0%': {\n transform: [{\n translateY: '0%'\n }]\n },\n '100%': {\n transform: [{\n translateY: '100%'\n }]\n }\n }\n },\n hidden: {\n opacity: 0\n }\n});\nvar animatedSlideInStyles = [styles.container, styles.animatedIn, styles.slideIn];\nvar animatedSlideOutStyles = [styles.container, styles.animatedOut, styles.slideOut];\nvar animatedFadeInStyles = [styles.container, styles.animatedIn, styles.fadeIn];\nvar animatedFadeOutStyles = [styles.container, styles.animatedOut, styles.fadeOut];\nexport default ModalAnimation;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"active\", \"children\", \"onRequestClose\", \"transparent\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport View from '../View';\nimport StyleSheet from '../StyleSheet';\nimport canUseDOM from '../../modules/canUseDom';\nvar ModalContent = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var active = props.active,\n children = props.children,\n onRequestClose = props.onRequestClose,\n transparent = props.transparent,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n\n React.useEffect(() => {\n if (canUseDOM) {\n var closeOnEscape = e => {\n if (active && e.key === 'Escape') {\n e.stopPropagation();\n\n if (onRequestClose) {\n onRequestClose();\n }\n }\n };\n\n document.addEventListener('keyup', closeOnEscape, false);\n return () => document.removeEventListener('keyup', closeOnEscape, false);\n }\n }, [active, onRequestClose]);\n var style = React.useMemo(() => {\n return [styles.modal, transparent ? styles.modalTransparent : styles.modalOpaque];\n }, [transparent]);\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, {\n accessibilityModal: true,\n accessibilityRole: active ? 'dialog' : null,\n ref: forwardedRef,\n style: style\n }), /*#__PURE__*/React.createElement(View, {\n style: styles.container\n }, children));\n});\nvar styles = StyleSheet.create({\n modal: {\n position: 'fixed',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n },\n modalTransparent: {\n backgroundColor: 'transparent'\n },\n modalOpaque: {\n backgroundColor: 'white'\n },\n container: {\n top: 0,\n flex: 1\n }\n});\nexport default ModalContent;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport View from '../View';\nimport createElement from '../createElement';\nimport StyleSheet from '../StyleSheet';\nimport UIManager from '../UIManager';\nimport canUseDOM from '../../modules/canUseDom';\n/**\n * This Component is used to \"wrap\" the modal we're opening\n * so that changing focus via tab will never leave the document.\n *\n * This allows us to properly trap the focus within a modal\n * even if the modal is at the start or end of a document.\n */\n\nvar FocusBracket = () => {\n return createElement('div', {\n accessibilityRole: 'none',\n tabIndex: 0,\n style: styles.focusBracket\n });\n};\n\nfunction attemptFocus(element) {\n if (!canUseDOM) {\n return false;\n }\n\n try {\n element.focus();\n } catch (e) {// Do nothing\n }\n\n return document.activeElement === element;\n}\n\nfunction focusFirstDescendant(element) {\n for (var i = 0; i < element.childNodes.length; i++) {\n var child = element.childNodes[i];\n\n if (attemptFocus(child) || focusFirstDescendant(child)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction focusLastDescendant(element) {\n for (var i = element.childNodes.length - 1; i >= 0; i--) {\n var child = element.childNodes[i];\n\n if (attemptFocus(child) || focusLastDescendant(child)) {\n return true;\n }\n }\n\n return false;\n}\n\nvar ModalFocusTrap = _ref => {\n var active = _ref.active,\n children = _ref.children;\n var trapElementRef = React.useRef();\n var focusRef = React.useRef({\n trapFocusInProgress: false,\n lastFocusedElement: null\n });\n React.useEffect(() => {\n if (canUseDOM) {\n var trapFocus = () => {\n // We should not trap focus if:\n // - The modal hasn't fully initialized with an HTMLElement ref\n // - Focus is already in the process of being trapped (e.g., we're refocusing)\n // - isTrapActive prop being falsey tells us to do nothing\n if (trapElementRef.current == null || focusRef.current.trapFocusInProgress || !active) {\n return;\n }\n\n try {\n focusRef.current.trapFocusInProgress = true;\n\n if (document.activeElement instanceof Node && !trapElementRef.current.contains(document.activeElement)) {\n // To handle keyboard focusing we can make an assumption here.\n // If you're tabbing through the focusable elements, the previously\n // active element will either be the first or the last.\n // If the previously selected element is the \"first\" descendant\n // and we're leaving it - this means that we should be looping\n // around to the other side of the modal.\n var hasFocused = focusFirstDescendant(trapElementRef.current);\n\n if (focusRef.current.lastFocusedElement === document.activeElement) {\n hasFocused = focusLastDescendant(trapElementRef.current);\n } // If we couldn't focus a new element then we need to focus onto the trap target\n\n\n if (!hasFocused && trapElementRef.current != null && document.activeElement) {\n UIManager.focus(trapElementRef.current);\n }\n }\n } finally {\n focusRef.current.trapFocusInProgress = false;\n }\n\n focusRef.current.lastFocusedElement = document.activeElement;\n }; // Call the trapFocus callback at least once when this modal has been activated.\n\n\n trapFocus();\n document.addEventListener('focus', trapFocus, true);\n return () => document.removeEventListener('focus', trapFocus, true);\n }\n }, [active]); // To be fully compliant with WCAG we need to refocus element that triggered opening modal\n // after closing it\n\n React.useEffect(function () {\n if (canUseDOM) {\n var lastFocusedElementOutsideTrap = document.activeElement;\n return function () {\n if (lastFocusedElementOutsideTrap && document.contains(lastFocusedElementOutsideTrap)) {\n UIManager.focus(lastFocusedElementOutsideTrap);\n }\n };\n }\n }, []);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FocusBracket, null), /*#__PURE__*/React.createElement(View, {\n ref: trapElementRef\n }, children), /*#__PURE__*/React.createElement(FocusBracket, null));\n};\n\nexport default ModalFocusTrap;\nvar styles = StyleSheet.create({\n focusBracket: {\n outlineStyle: 'none'\n }\n});","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"animationType\", \"children\", \"onDismiss\", \"onRequestClose\", \"onShow\", \"transparent\", \"visible\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport ModalPortal from './ModalPortal';\nimport ModalAnimation from './ModalAnimation';\nimport ModalContent from './ModalContent';\nimport ModalFocusTrap from './ModalFocusTrap';\nvar uniqueModalIdentifier = 0;\nvar activeModalStack = [];\nvar activeModalListeners = {};\n\nfunction notifyActiveModalListeners() {\n if (activeModalStack.length === 0) {\n return;\n }\n\n var activeModalId = activeModalStack[activeModalStack.length - 1];\n activeModalStack.forEach(modalId => {\n if (modalId in activeModalListeners) {\n activeModalListeners[modalId](modalId === activeModalId);\n }\n });\n}\n\nfunction removeActiveModal(modalId) {\n if (modalId in activeModalListeners) {\n // Before removing this listener we should probably tell it\n // that it's no longer the active modal for sure.\n activeModalListeners[modalId](false);\n delete activeModalListeners[modalId];\n }\n\n var index = activeModalStack.indexOf(modalId);\n\n if (index !== -1) {\n activeModalStack.splice(index, 1);\n notifyActiveModalListeners();\n }\n}\n\nfunction addActiveModal(modalId, listener) {\n removeActiveModal(modalId);\n activeModalStack.push(modalId);\n activeModalListeners[modalId] = listener;\n notifyActiveModalListeners();\n}\n\nvar Modal = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var animationType = props.animationType,\n children = props.children,\n onDismiss = props.onDismiss,\n onRequestClose = props.onRequestClose,\n onShow = props.onShow,\n transparent = props.transparent,\n _props$visible = props.visible,\n visible = _props$visible === void 0 ? true : _props$visible,\n rest = _objectWithoutPropertiesLoose(props, _excluded); // Set a unique model identifier so we can correctly route\n // dismissals and check the layering of modals.\n\n\n var modalId = React.useMemo(() => uniqueModalIdentifier++, []);\n\n var _React$useState = React.useState(false),\n isActive = _React$useState[0],\n setIsActive = _React$useState[1];\n\n var onDismissCallback = React.useCallback(() => {\n removeActiveModal(modalId);\n\n if (onDismiss) {\n onDismiss();\n }\n }, [modalId, onDismiss]);\n var onShowCallback = React.useCallback(() => {\n addActiveModal(modalId, setIsActive);\n\n if (onShow) {\n onShow();\n }\n }, [modalId, onShow]);\n React.useEffect(() => {\n return () => removeActiveModal(modalId);\n }, [modalId]);\n return /*#__PURE__*/React.createElement(ModalPortal, null, /*#__PURE__*/React.createElement(ModalAnimation, {\n animationType: animationType,\n onDismiss: onDismissCallback,\n onShow: onShowCallback,\n visible: visible\n }, /*#__PURE__*/React.createElement(ModalFocusTrap, {\n active: isActive\n }, /*#__PURE__*/React.createElement(ModalContent, _extends({}, rest, {\n active: isActive,\n onRequestClose: onRequestClose,\n ref: forwardedRef,\n transparent: transparent\n }), children))));\n});\nexport default Modal;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport UIManager from '../UIManager'; // NativeModules shim\n\nvar NativeModules = {\n UIManager\n};\nexport default NativeModules;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport Dimensions from '../Dimensions';\n/**\n * PixelRatio gives access to the device pixel density.\n */\n\nexport default class PixelRatio {\n /**\n * Returns the device pixel density.\n */\n static get() {\n return Dimensions.get('window').scale;\n }\n /**\n * No equivalent for Web\n */\n\n\n static getFontScale() {\n return Dimensions.get('window').fontScale || PixelRatio.get();\n }\n /**\n * Converts a layout size (dp) to pixel size (px).\n * Guaranteed to return an integer number.\n */\n\n\n static getPixelSizeForLayoutSize(layoutSize) {\n return Math.round(layoutSize * PixelRatio.get());\n }\n /**\n * Rounds a layout size (dp) to the nearest layout size that corresponds to\n * an integer number of pixels. For example, on a device with a PixelRatio\n * of 3, `PixelRatio.roundToNearestPixel(8.4) = 8.33`, which corresponds to\n * exactly (8.33 * 3) = 25 pixels.\n */\n\n\n static roundToNearestPixel(layoutSize) {\n var ratio = PixelRatio.get();\n return Math.round(layoutSize * ratio) / ratio;\n }\n\n}","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar Platform = {\n OS: 'web',\n select: obj => 'web' in obj ? obj.web : obj.default,\n\n get isTesting() {\n if (process.env.NODE_ENV === 'test') {\n return true;\n }\n\n return false;\n }\n\n};\nexport default Platform;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n'use strict';\n\nimport canUseDOM from '../canUseDom';\n\nvar emptyFunction = () => {};\n\nfunction supportsPassiveEvents() {\n var supported = false; // Check if browser supports event with passive listeners\n // https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\n\n if (canUseDOM) {\n try {\n var options = {};\n Object.defineProperty(options, 'passive', {\n get() {\n supported = true;\n return false;\n }\n\n });\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n } catch (e) {}\n }\n\n return supported;\n}\n\nvar canUsePassiveEvents = supportsPassiveEvents();\n\nfunction getOptions(options) {\n if (options == null) {\n return false;\n }\n\n return canUsePassiveEvents ? options : Boolean(options.capture);\n}\n/**\n * Shim generic API compatibility with ReactDOM's synthetic events, without needing the\n * large amount of code ReactDOM uses to do this. Ideally we wouldn't use a synthetic\n * event wrapper at all.\n */\n\n\nfunction isPropagationStopped() {\n return this.cancelBubble;\n}\n\nfunction isDefaultPrevented() {\n return this.defaultPrevented;\n}\n\nfunction normalizeEvent(event) {\n event.nativeEvent = event;\n event.persist = emptyFunction;\n event.isDefaultPrevented = isDefaultPrevented;\n event.isPropagationStopped = isPropagationStopped;\n return event;\n}\n/**\n *\n */\n\n\nexport default function createEventHandle(type, options) {\n var opts = getOptions(options);\n return function (target, listener) {\n if (target == null || typeof target.addEventListener !== 'function') {\n throw new Error('createEventHandle: called on an invalid target.');\n }\n\n var element = target;\n\n if (listener != null) {\n var compatListener = e => listener(normalizeEvent(e));\n\n element.addEventListener(type, compatListener, opts);\n return function removeListener() {\n if (element != null) {\n element.removeEventListener(type, compatListener, opts);\n }\n };\n } else {\n return emptyFunction;\n }\n };\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport createEventHandle from '../createEventHandle';\nimport canUseDOM from '../canUseDom';\n\nvar supportsPointerEvent = () => !!(typeof window !== 'undefined' && window.PointerEvent != null);\n\nvar activeModality = 'keyboard';\nvar modality = 'keyboard';\nvar previousModality;\nvar previousActiveModality;\nvar isEmulatingMouseEvents = false;\nvar listeners = new Set();\nvar KEYBOARD = 'keyboard';\nvar MOUSE = 'mouse';\nvar TOUCH = 'touch';\nvar BLUR = 'blur';\nvar CONTEXTMENU = 'contextmenu';\nvar FOCUS = 'focus';\nvar KEYDOWN = 'keydown';\nvar MOUSEDOWN = 'mousedown';\nvar MOUSEMOVE = 'mousemove';\nvar MOUSEUP = 'mouseup';\nvar POINTERDOWN = 'pointerdown';\nvar POINTERMOVE = 'pointermove';\nvar SCROLL = 'scroll';\nvar SELECTIONCHANGE = 'selectionchange';\nvar TOUCHCANCEL = 'touchcancel';\nvar TOUCHMOVE = 'touchmove';\nvar TOUCHSTART = 'touchstart';\nvar VISIBILITYCHANGE = 'visibilitychange';\nvar bubbleOptions = {\n passive: true\n};\nvar captureOptions = {\n capture: true,\n passive: true\n}; // Window events\n\nvar addBlurListener = createEventHandle(BLUR, bubbleOptions);\nvar addFocusListener = createEventHandle(FOCUS, bubbleOptions); // Must be capture phase because 'stopPropagation' might prevent these\n// events bubbling to the document.\n\nvar addVisibilityChangeListener = createEventHandle(VISIBILITYCHANGE, captureOptions);\nvar addKeyDownListener = createEventHandle(KEYDOWN, captureOptions);\nvar addPointerDownListener = createEventHandle(POINTERDOWN, captureOptions);\nvar addPointerMoveListener = createEventHandle(POINTERMOVE, captureOptions); // Fallback events\n\nvar addContextMenuListener = createEventHandle(CONTEXTMENU, captureOptions);\nvar addMouseDownListener = createEventHandle(MOUSEDOWN, captureOptions);\nvar addMouseMoveListener = createEventHandle(MOUSEMOVE, captureOptions);\nvar addMouseUpListener = createEventHandle(MOUSEUP, captureOptions);\nvar addScrollListener = createEventHandle(SCROLL, captureOptions);\nvar addSelectiomChangeListener = createEventHandle(SELECTIONCHANGE, captureOptions);\nvar addTouchCancelListener = createEventHandle(TOUCHCANCEL, captureOptions);\nvar addTouchMoveListener = createEventHandle(TOUCHMOVE, captureOptions);\nvar addTouchStartListener = createEventHandle(TOUCHSTART, captureOptions);\n\nfunction restoreModality() {\n if (previousModality != null || previousActiveModality != null) {\n if (previousModality != null) {\n modality = previousModality;\n previousModality = null;\n }\n\n if (previousActiveModality != null) {\n activeModality = previousActiveModality;\n previousActiveModality = null;\n }\n\n callListeners();\n }\n}\n\nfunction onBlurWindow() {\n previousModality = modality;\n previousActiveModality = activeModality;\n activeModality = KEYBOARD;\n modality = KEYBOARD;\n callListeners(); // for fallback events\n\n isEmulatingMouseEvents = false;\n}\n\nfunction onFocusWindow() {\n restoreModality();\n}\n\nfunction onKeyDown(event) {\n if (event.metaKey || event.altKey || event.ctrlKey) {\n return;\n }\n\n if (modality !== KEYBOARD) {\n modality = KEYBOARD;\n activeModality = KEYBOARD;\n callListeners();\n }\n}\n\nfunction onVisibilityChange() {\n if (document.visibilityState !== 'hidden') {\n restoreModality();\n }\n}\n\nfunction onPointerish(event) {\n var eventType = event.type;\n\n if (supportsPointerEvent()) {\n if (eventType === POINTERDOWN) {\n if (activeModality !== event.pointerType) {\n modality = event.pointerType;\n activeModality = event.pointerType;\n callListeners();\n }\n\n return;\n }\n\n if (eventType === POINTERMOVE) {\n if (modality !== event.pointerType) {\n modality = event.pointerType;\n callListeners();\n }\n\n return;\n }\n } // Fallback for non-PointerEvent environment\n else {\n if (!isEmulatingMouseEvents) {\n if (eventType === MOUSEDOWN) {\n if (activeModality !== MOUSE) {\n modality = MOUSE;\n activeModality = MOUSE;\n callListeners();\n }\n }\n\n if (eventType === MOUSEMOVE) {\n if (modality !== MOUSE) {\n modality = MOUSE;\n callListeners();\n }\n }\n } // Flag when browser may produce emulated events\n\n\n if (eventType === TOUCHSTART) {\n isEmulatingMouseEvents = true;\n\n if (event.touches && event.touches.length > 1) {\n isEmulatingMouseEvents = false;\n }\n\n if (activeModality !== TOUCH) {\n modality = TOUCH;\n activeModality = TOUCH;\n callListeners();\n }\n\n return;\n } // Remove flag after emulated events are finished or cancelled, and if an\n // event occurs that cuts short a touch event sequence.\n\n\n if (eventType === CONTEXTMENU || eventType === MOUSEUP || eventType === SELECTIONCHANGE || eventType === SCROLL || eventType === TOUCHCANCEL || eventType === TOUCHMOVE) {\n isEmulatingMouseEvents = false;\n }\n }\n}\n\nif (canUseDOM) {\n addBlurListener(window, onBlurWindow);\n addFocusListener(window, onFocusWindow);\n addKeyDownListener(document, onKeyDown);\n addPointerDownListener(document, onPointerish);\n addPointerMoveListener(document, onPointerish);\n addVisibilityChangeListener(document, onVisibilityChange); // fallbacks\n\n addContextMenuListener(document, onPointerish);\n addMouseDownListener(document, onPointerish);\n addMouseMoveListener(document, onPointerish);\n addMouseUpListener(document, onPointerish);\n addTouchCancelListener(document, onPointerish);\n addTouchMoveListener(document, onPointerish);\n addTouchStartListener(document, onPointerish);\n addSelectiomChangeListener(document, onPointerish);\n addScrollListener(document, onPointerish);\n}\n\nfunction callListeners() {\n var value = {\n activeModality,\n modality\n };\n listeners.forEach(listener => {\n listener(value);\n });\n}\n\nexport function getActiveModality() {\n return activeModality;\n}\nexport function getModality() {\n return modality;\n}\nexport function addModalityListener(listener) {\n listeners.add(listener);\n return () => {\n listeners.delete(listener);\n };\n}\nexport function testOnly_resetActiveModality() {\n isEmulatingMouseEvents = false;\n activeModality = KEYBOARD;\n modality = KEYBOARD;\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport createEventHandle from '../createEventHandle';\nimport useLayoutEffect from '../useLayoutEffect';\nimport useStable from '../useStable';\n\n/**\n * This can be used with any event type include custom events.\n *\n * const click = useEvent('click', options);\n * useEffect(() => {\n * click.setListener(target, onClick);\n * return () => click.clear();\n * }).\n */\nexport default function useEvent(event, options) {\n var targetListeners = useStable(() => new Map());\n var addListener = useStable(() => {\n var addEventListener = createEventHandle(event, options);\n return (target, callback) => {\n var removeTargetListener = targetListeners.get(target);\n\n if (removeTargetListener != null) {\n removeTargetListener();\n }\n\n if (callback == null) {\n targetListeners.delete(target);\n }\n\n var removeEventListener = addEventListener(target, callback);\n targetListeners.set(target, removeEventListener);\n return removeEventListener;\n };\n });\n useLayoutEffect(() => {\n return () => {\n targetListeners.forEach(removeListener => {\n removeListener();\n });\n targetListeners.clear();\n };\n }, [targetListeners]);\n return addListener;\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { getModality } from '../modality';\nimport useEvent from '../useEvent';\nimport useLayoutEffect from '../useLayoutEffect';\n/**\n * Types\n */\n\n/**\n * Implementation\n */\nvar emptyObject = {};\nvar opts = {\n passive: true\n};\nvar lockEventType = 'react-gui:hover:lock';\nvar unlockEventType = 'react-gui:hover:unlock';\n\nvar supportsPointerEvent = () => !!(typeof window !== 'undefined' && window.PointerEvent != null);\n\nfunction dispatchCustomEvent(target, type, payload) {\n var event = document.createEvent('CustomEvent');\n\n var _ref = payload || emptyObject,\n _ref$bubbles = _ref.bubbles,\n bubbles = _ref$bubbles === void 0 ? true : _ref$bubbles,\n _ref$cancelable = _ref.cancelable,\n cancelable = _ref$cancelable === void 0 ? true : _ref$cancelable,\n detail = _ref.detail;\n\n event.initCustomEvent(type, bubbles, cancelable, detail);\n target.dispatchEvent(event);\n} // This accounts for the non-PointerEvent fallback events.\n\n\nfunction getPointerType(event) {\n var pointerType = event.pointerType;\n return pointerType != null ? pointerType : getModality();\n}\n\nexport default function useHover(targetRef, config) {\n var contain = config.contain,\n disabled = config.disabled,\n onHoverStart = config.onHoverStart,\n onHoverChange = config.onHoverChange,\n onHoverUpdate = config.onHoverUpdate,\n onHoverEnd = config.onHoverEnd;\n var canUsePE = supportsPointerEvent();\n var addMoveListener = useEvent(canUsePE ? 'pointermove' : 'mousemove', opts);\n var addEnterListener = useEvent(canUsePE ? 'pointerenter' : 'mouseenter', opts);\n var addLeaveListener = useEvent(canUsePE ? 'pointerleave' : 'mouseleave', opts); // These custom events are used to implement the \"contain\" prop.\n\n var addLockListener = useEvent(lockEventType, opts);\n var addUnlockListener = useEvent(unlockEventType, opts);\n useLayoutEffect(() => {\n var target = targetRef.current;\n\n if (target !== null) {\n /**\n * End the hover gesture\n */\n var hoverEnd = function hoverEnd(e) {\n if (onHoverEnd != null) {\n onHoverEnd(e);\n }\n\n if (onHoverChange != null) {\n onHoverChange(false);\n } // Remove the listeners once finished.\n\n\n addMoveListener(target, null);\n addLeaveListener(target, null);\n };\n /**\n * Leave element\n */\n\n\n var leaveListener = function leaveListener(e) {\n var target = targetRef.current;\n\n if (target != null && getPointerType(e) !== 'touch') {\n if (contain) {\n dispatchCustomEvent(target, unlockEventType);\n }\n\n hoverEnd(e);\n }\n };\n /**\n * Move within element\n */\n\n\n var moveListener = function moveListener(e) {\n if (getPointerType(e) !== 'touch') {\n if (onHoverUpdate != null) {\n // Not all browsers have these properties\n if (e.x == null) {\n e.x = e.clientX;\n }\n\n if (e.y == null) {\n e.y = e.clientY;\n }\n\n onHoverUpdate(e);\n }\n }\n };\n /**\n * Start the hover gesture\n */\n\n\n var hoverStart = function hoverStart(e) {\n if (onHoverStart != null) {\n onHoverStart(e);\n }\n\n if (onHoverChange != null) {\n onHoverChange(true);\n } // Set the listeners needed for the rest of the hover gesture.\n\n\n if (onHoverUpdate != null) {\n addMoveListener(target, !disabled ? moveListener : null);\n }\n\n addLeaveListener(target, !disabled ? leaveListener : null);\n };\n /**\n * Enter element\n */\n\n\n var enterListener = function enterListener(e) {\n var target = targetRef.current;\n\n if (target != null && getPointerType(e) !== 'touch') {\n if (contain) {\n dispatchCustomEvent(target, lockEventType);\n }\n\n hoverStart(e);\n\n var lockListener = function lockListener(lockEvent) {\n if (lockEvent.target !== target) {\n hoverEnd(e);\n }\n };\n\n var unlockListener = function unlockListener(lockEvent) {\n if (lockEvent.target !== target) {\n hoverStart(e);\n }\n };\n\n addLockListener(target, !disabled ? lockListener : null);\n addUnlockListener(target, !disabled ? unlockListener : null);\n }\n };\n\n addEnterListener(target, !disabled ? enterListener : null);\n }\n }, [addEnterListener, addMoveListener, addLeaveListener, addLockListener, addUnlockListener, contain, disabled, onHoverStart, onHoverChange, onHoverUpdate, onHoverEnd, targetRef]);\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n'use strict';\n\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"children\", \"delayLongPress\", \"delayPressIn\", \"delayPressOut\", \"disabled\", \"focusable\", \"onBlur\", \"onContextMenu\", \"onFocus\", \"onHoverIn\", \"onHoverOut\", \"onKeyDown\", \"onLongPress\", \"onPress\", \"onPressMove\", \"onPressIn\", \"onPressOut\", \"style\", \"testOnly_hovered\", \"testOnly_pressed\"];\nimport * as React from 'react';\nimport { forwardRef, memo, useMemo, useState, useRef } from 'react';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport useHover from '../../modules/useHover';\nimport usePressEvents from '../../modules/usePressEvents';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\n\n/**\n * Component used to build display components that should respond to whether the\n * component is currently pressed or not.\n */\nfunction Pressable(props, forwardedRef) {\n var children = props.children,\n delayLongPress = props.delayLongPress,\n delayPressIn = props.delayPressIn,\n delayPressOut = props.delayPressOut,\n disabled = props.disabled,\n focusable = props.focusable,\n onBlur = props.onBlur,\n onContextMenu = props.onContextMenu,\n onFocus = props.onFocus,\n onHoverIn = props.onHoverIn,\n onHoverOut = props.onHoverOut,\n onKeyDown = props.onKeyDown,\n onLongPress = props.onLongPress,\n onPress = props.onPress,\n onPressMove = props.onPressMove,\n onPressIn = props.onPressIn,\n onPressOut = props.onPressOut,\n style = props.style,\n testOnly_hovered = props.testOnly_hovered,\n testOnly_pressed = props.testOnly_pressed,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n\n var _useForceableState = useForceableState(testOnly_hovered === true),\n hovered = _useForceableState[0],\n setHovered = _useForceableState[1];\n\n var _useForceableState2 = useForceableState(false),\n focused = _useForceableState2[0],\n setFocused = _useForceableState2[1];\n\n var _useForceableState3 = useForceableState(testOnly_pressed === true),\n pressed = _useForceableState3[0],\n setPressed = _useForceableState3[1];\n\n var hostRef = useRef(null);\n var setRef = useMergeRefs(forwardedRef, hostRef);\n var pressConfig = useMemo(() => ({\n delayLongPress,\n delayPressStart: delayPressIn,\n delayPressEnd: delayPressOut,\n disabled,\n onLongPress,\n onPress,\n onPressChange: setPressed,\n onPressStart: onPressIn,\n onPressMove,\n onPressEnd: onPressOut\n }), [delayLongPress, delayPressIn, delayPressOut, disabled, onLongPress, onPress, onPressIn, onPressMove, onPressOut, setPressed]);\n var pressEventHandlers = usePressEvents(hostRef, pressConfig);\n var onContextMenuPress = pressEventHandlers.onContextMenu,\n onKeyDownPress = pressEventHandlers.onKeyDown;\n useHover(hostRef, {\n contain: true,\n disabled,\n onHoverChange: setHovered,\n onHoverStart: onHoverIn,\n onHoverEnd: onHoverOut\n });\n var interactionState = {\n hovered,\n focused,\n pressed\n };\n var blurHandler = React.useCallback(e => {\n if (e.nativeEvent.target === hostRef.current) {\n setFocused(false);\n\n if (onBlur != null) {\n onBlur(e);\n }\n }\n }, [hostRef, setFocused, onBlur]);\n var focusHandler = React.useCallback(e => {\n if (e.nativeEvent.target === hostRef.current) {\n setFocused(true);\n\n if (onFocus != null) {\n onFocus(e);\n }\n }\n }, [hostRef, setFocused, onFocus]);\n var contextMenuHandler = React.useCallback(e => {\n if (onContextMenuPress != null) {\n onContextMenuPress(e);\n }\n\n if (onContextMenu != null) {\n onContextMenu(e);\n }\n }, [onContextMenu, onContextMenuPress]);\n var keyDownHandler = React.useCallback(e => {\n if (onKeyDownPress != null) {\n onKeyDownPress(e);\n }\n\n if (onKeyDown != null) {\n onKeyDown(e);\n }\n }, [onKeyDown, onKeyDownPress]);\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, pressEventHandlers, {\n accessibilityDisabled: disabled,\n focusable: !disabled && focusable !== false,\n onBlur: blurHandler,\n onContextMenu: contextMenuHandler,\n onFocus: focusHandler,\n onKeyDown: keyDownHandler,\n pointerEvents: disabled ? 'none' : rest.pointerEvents,\n ref: setRef,\n style: [!disabled && styles.root, typeof style === 'function' ? style(interactionState) : style]\n }), typeof children === 'function' ? children(interactionState) : children);\n}\n\nfunction useForceableState(forced) {\n var _useState = useState(false),\n bool = _useState[0],\n setBool = _useState[1];\n\n return [bool || forced, setBool];\n}\n\nvar styles = StyleSheet.create({\n root: {\n cursor: 'pointer',\n touchAction: 'manipulation'\n }\n});\nvar MemoedPressable = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(Pressable));\nMemoedPressable.displayName = 'Pressable';\nexport default MemoedPressable;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"colors\", \"enabled\", \"onRefresh\", \"progressBackgroundColor\", \"progressViewOffset\", \"refreshing\", \"size\", \"tintColor\", \"title\", \"titleColor\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport View from '../View';\nimport React from 'react';\n\nfunction RefreshControl(props) {\n var colors = props.colors,\n enabled = props.enabled,\n onRefresh = props.onRefresh,\n progressBackgroundColor = props.progressBackgroundColor,\n progressViewOffset = props.progressViewOffset,\n refreshing = props.refreshing,\n size = props.size,\n tintColor = props.tintColor,\n title = props.title,\n titleColor = props.titleColor,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n\n return /*#__PURE__*/React.createElement(View, rest);\n}\n\nexport default RefreshControl;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport Dimensions from '../../exports/Dimensions';\nimport findNodeHandle from '../../exports/findNodeHandle';\nimport invariant from 'fbjs/lib/invariant';\nimport Platform from '../../exports/Platform';\nimport TextInputState from '../TextInputState';\nimport UIManager from '../../exports/UIManager';\nimport warning from 'fbjs/lib/warning';\n/**\n * Mixin that can be integrated in order to handle scrolling that plays well\n * with `ResponderEventPlugin`. Integrate with your platform specific scroll\n * views, or even your custom built (every-frame animating) scroll views so that\n * all of these systems play well with the `ResponderEventPlugin`.\n *\n * iOS scroll event timing nuances:\n * ===============================\n *\n *\n * Scrolling without bouncing, if you touch down:\n * -------------------------------\n *\n * 1. `onMomentumScrollBegin` (when animation begins after letting up)\n * ... physical touch starts ...\n * 2. `onTouchStartCapture` (when you press down to stop the scroll)\n * 3. `onTouchStart` (same, but bubble phase)\n * 4. `onResponderRelease` (when lifting up - you could pause forever before * lifting)\n * 5. `onMomentumScrollEnd`\n *\n *\n * Scrolling with bouncing, if you touch down:\n * -------------------------------\n *\n * 1. `onMomentumScrollBegin` (when animation begins after letting up)\n * ... bounce begins ...\n * ... some time elapses ...\n * ... physical touch during bounce ...\n * 2. `onMomentumScrollEnd` (Makes no sense why this occurs first during bounce)\n * 3. `onTouchStartCapture` (immediately after `onMomentumScrollEnd`)\n * 4. `onTouchStart` (same, but bubble phase)\n * 5. `onTouchEnd` (You could hold the touch start for a long time)\n * 6. `onMomentumScrollBegin` (When releasing the view starts bouncing back)\n *\n * So when we receive an `onTouchStart`, how can we tell if we are touching\n * *during* an animation (which then causes the animation to stop)? The only way\n * to tell is if the `touchStart` occurred immediately after the\n * `onMomentumScrollEnd`.\n *\n * This is abstracted out for you, so you can just call this.scrollResponderIsAnimating() if\n * necessary\n *\n * `ScrollResponder` also includes logic for blurring a currently focused input\n * if one is focused while scrolling. The `ScrollResponder` is a natural place\n * to put this logic since it can support not dismissing the keyboard while\n * scrolling, unless a recognized \"tap\"-like gesture has occurred.\n *\n * The public lifecycle API includes events for keyboard interaction, responder\n * interaction, and scrolling (among others). The keyboard callbacks\n * `onKeyboardWill/Did/*` are *global* events, but are invoked on scroll\n * responder's props so that you can guarantee that the scroll responder's\n * internal state has been updated accordingly (and deterministically) by\n * the time the props callbacks are invoke. Otherwise, you would always wonder\n * if the scroll responder is currently in a state where it recognizes new\n * keyboard positions etc. If coordinating scrolling with keyboard movement,\n * *always* use these hooks instead of listening to your own global keyboard\n * events.\n *\n * Public keyboard lifecycle API: (props callbacks)\n *\n * Standard Keyboard Appearance Sequence:\n *\n * this.props.onKeyboardWillShow\n * this.props.onKeyboardDidShow\n *\n * `onScrollResponderKeyboardDismissed` will be invoked if an appropriate\n * tap inside the scroll responder's scrollable region was responsible\n * for the dismissal of the keyboard. There are other reasons why the\n * keyboard could be dismissed.\n *\n * this.props.onScrollResponderKeyboardDismissed\n *\n * Standard Keyboard Hide Sequence:\n *\n * this.props.onKeyboardWillHide\n * this.props.onKeyboardDidHide\n */\n\nvar emptyObject = {};\nvar IS_ANIMATING_TOUCH_START_THRESHOLD_MS = 16;\nvar ScrollResponderMixin = {\n // mixins: [Subscribable.Mixin],\n scrollResponderMixinGetInitialState: function scrollResponderMixinGetInitialState() {\n return {\n isTouching: false,\n lastMomentumScrollBeginTime: 0,\n lastMomentumScrollEndTime: 0,\n // Reset to false every time becomes responder. This is used to:\n // - Determine if the scroll view has been scrolled and therefore should\n // refuse to give up its responder lock.\n // - Determine if releasing should dismiss the keyboard when we are in\n // tap-to-dismiss mode (!this.props.keyboardShouldPersistTaps).\n observedScrollSinceBecomingResponder: false,\n becameResponderWhileAnimating: false\n };\n },\n\n /**\n * Invoke this from an `onScroll` event.\n */\n scrollResponderHandleScrollShouldSetResponder: function scrollResponderHandleScrollShouldSetResponder() {\n return this.state.isTouching;\n },\n\n /**\n * Merely touch starting is not sufficient for a scroll view to become the\n * responder. Being the \"responder\" means that the very next touch move/end\n * event will result in an action/movement.\n *\n * Invoke this from an `onStartShouldSetResponder` event.\n *\n * `onStartShouldSetResponder` is used when the next move/end will trigger\n * some UI movement/action, but when you want to yield priority to views\n * nested inside of the view.\n *\n * There may be some cases where scroll views actually should return `true`\n * from `onStartShouldSetResponder`: Any time we are detecting a standard tap\n * that gives priority to nested views.\n *\n * - If a single tap on the scroll view triggers an action such as\n * recentering a map style view yet wants to give priority to interaction\n * views inside (such as dropped pins or labels), then we would return true\n * from this method when there is a single touch.\n *\n * - Similar to the previous case, if a two finger \"tap\" should trigger a\n * zoom, we would check the `touches` count, and if `>= 2`, we would return\n * true.\n *\n */\n scrollResponderHandleStartShouldSetResponder: function scrollResponderHandleStartShouldSetResponder() {\n return false;\n },\n\n /**\n * There are times when the scroll view wants to become the responder\n * (meaning respond to the next immediate `touchStart/touchEnd`), in a way\n * that *doesn't* give priority to nested views (hence the capture phase):\n *\n * - Currently animating.\n * - Tapping anywhere that is not the focused input, while the keyboard is\n * up (which should dismiss the keyboard).\n *\n * Invoke this from an `onStartShouldSetResponderCapture` event.\n */\n scrollResponderHandleStartShouldSetResponderCapture: function scrollResponderHandleStartShouldSetResponderCapture(e) {\n // First see if we want to eat taps while the keyboard is up\n // var currentlyFocusedTextInput = TextInputState.currentlyFocusedField();\n // if (!this.props.keyboardShouldPersistTaps &&\n // currentlyFocusedTextInput != null &&\n // e.target !== currentlyFocusedTextInput) {\n // return true;\n // }\n return this.scrollResponderIsAnimating();\n },\n\n /**\n * Invoke this from an `onResponderReject` event.\n *\n * Some other element is not yielding its role as responder. Normally, we'd\n * just disable the `UIScrollView`, but a touch has already began on it, the\n * `UIScrollView` will not accept being disabled after that. The easiest\n * solution for now is to accept the limitation of disallowing this\n * altogether. To improve this, find a way to disable the `UIScrollView` after\n * a touch has already started.\n */\n scrollResponderHandleResponderReject: function scrollResponderHandleResponderReject() {\n warning(false, \"ScrollView doesn't take rejection well - scrolls anyway\");\n },\n\n /**\n * We will allow the scroll view to give up its lock iff it acquired the lock\n * during an animation. This is a very useful default that happens to satisfy\n * many common user experiences.\n *\n * - Stop a scroll on the left edge, then turn that into an outer view's\n * backswipe.\n * - Stop a scroll mid-bounce at the top, continue pulling to have the outer\n * view dismiss.\n * - However, without catching the scroll view mid-bounce (while it is\n * motionless), if you drag far enough for the scroll view to become\n * responder (and therefore drag the scroll view a bit), any backswipe\n * navigation of a swipe gesture higher in the view hierarchy, should be\n * rejected.\n */\n scrollResponderHandleTerminationRequest: function scrollResponderHandleTerminationRequest() {\n return !this.state.observedScrollSinceBecomingResponder;\n },\n\n /**\n * Invoke this from an `onTouchEnd` event.\n *\n * @param {SyntheticEvent} e Event.\n */\n scrollResponderHandleTouchEnd: function scrollResponderHandleTouchEnd(e) {\n var nativeEvent = e.nativeEvent;\n this.state.isTouching = nativeEvent.touches.length !== 0;\n this.props.onTouchEnd && this.props.onTouchEnd(e);\n },\n\n /**\n * Invoke this from an `onResponderRelease` event.\n */\n scrollResponderHandleResponderRelease: function scrollResponderHandleResponderRelease(e) {\n this.props.onResponderRelease && this.props.onResponderRelease(e); // By default scroll views will unfocus a textField\n // if another touch occurs outside of it\n\n var currentlyFocusedTextInput = TextInputState.currentlyFocusedField();\n\n if (!this.props.keyboardShouldPersistTaps && currentlyFocusedTextInput != null && e.target !== currentlyFocusedTextInput && !this.state.observedScrollSinceBecomingResponder && !this.state.becameResponderWhileAnimating) {\n this.props.onScrollResponderKeyboardDismissed && this.props.onScrollResponderKeyboardDismissed(e);\n TextInputState.blurTextInput(currentlyFocusedTextInput);\n }\n },\n scrollResponderHandleScroll: function scrollResponderHandleScroll(e) {\n this.state.observedScrollSinceBecomingResponder = true;\n this.props.onScroll && this.props.onScroll(e);\n },\n\n /**\n * Invoke this from an `onResponderGrant` event.\n */\n scrollResponderHandleResponderGrant: function scrollResponderHandleResponderGrant(e) {\n this.state.observedScrollSinceBecomingResponder = false;\n this.props.onResponderGrant && this.props.onResponderGrant(e);\n this.state.becameResponderWhileAnimating = this.scrollResponderIsAnimating();\n },\n\n /**\n * Unfortunately, `onScrollBeginDrag` also fires when *stopping* the scroll\n * animation, and there's not an easy way to distinguish a drag vs. stopping\n * momentum.\n *\n * Invoke this from an `onScrollBeginDrag` event.\n */\n scrollResponderHandleScrollBeginDrag: function scrollResponderHandleScrollBeginDrag(e) {\n this.props.onScrollBeginDrag && this.props.onScrollBeginDrag(e);\n },\n\n /**\n * Invoke this from an `onScrollEndDrag` event.\n */\n scrollResponderHandleScrollEndDrag: function scrollResponderHandleScrollEndDrag(e) {\n this.props.onScrollEndDrag && this.props.onScrollEndDrag(e);\n },\n\n /**\n * Invoke this from an `onMomentumScrollBegin` event.\n */\n scrollResponderHandleMomentumScrollBegin: function scrollResponderHandleMomentumScrollBegin(e) {\n this.state.lastMomentumScrollBeginTime = Date.now();\n this.props.onMomentumScrollBegin && this.props.onMomentumScrollBegin(e);\n },\n\n /**\n * Invoke this from an `onMomentumScrollEnd` event.\n */\n scrollResponderHandleMomentumScrollEnd: function scrollResponderHandleMomentumScrollEnd(e) {\n this.state.lastMomentumScrollEndTime = Date.now();\n this.props.onMomentumScrollEnd && this.props.onMomentumScrollEnd(e);\n },\n\n /**\n * Invoke this from an `onTouchStart` event.\n *\n * Since we know that the `SimpleEventPlugin` occurs later in the plugin\n * order, after `ResponderEventPlugin`, we can detect that we were *not*\n * permitted to be the responder (presumably because a contained view became\n * responder). The `onResponderReject` won't fire in that case - it only\n * fires when a *current* responder rejects our request.\n *\n * @param {SyntheticEvent} e Touch Start event.\n */\n scrollResponderHandleTouchStart: function scrollResponderHandleTouchStart(e) {\n this.state.isTouching = true;\n this.props.onTouchStart && this.props.onTouchStart(e);\n },\n\n /**\n * Invoke this from an `onTouchMove` event.\n *\n * Since we know that the `SimpleEventPlugin` occurs later in the plugin\n * order, after `ResponderEventPlugin`, we can detect that we were *not*\n * permitted to be the responder (presumably because a contained view became\n * responder). The `onResponderReject` won't fire in that case - it only\n * fires when a *current* responder rejects our request.\n *\n * @param {SyntheticEvent} e Touch Start event.\n */\n scrollResponderHandleTouchMove: function scrollResponderHandleTouchMove(e) {\n this.props.onTouchMove && this.props.onTouchMove(e);\n },\n\n /**\n * A helper function for this class that lets us quickly determine if the\n * view is currently animating. This is particularly useful to know when\n * a touch has just started or ended.\n */\n scrollResponderIsAnimating: function scrollResponderIsAnimating() {\n var now = Date.now();\n var timeSinceLastMomentumScrollEnd = now - this.state.lastMomentumScrollEndTime;\n var isAnimating = timeSinceLastMomentumScrollEnd < IS_ANIMATING_TOUCH_START_THRESHOLD_MS || this.state.lastMomentumScrollEndTime < this.state.lastMomentumScrollBeginTime;\n return isAnimating;\n },\n\n /**\n * Returns the node that represents native view that can be scrolled.\n * Components can pass what node to use by defining a `getScrollableNode`\n * function otherwise `this` is used.\n */\n scrollResponderGetScrollableNode: function scrollResponderGetScrollableNode() {\n return this.getScrollableNode ? this.getScrollableNode() : findNodeHandle(this);\n },\n\n /**\n * A helper function to scroll to a specific point in the scrollview.\n * This is currently used to help focus on child textviews, but can also\n * be used to quickly scroll to any element we want to focus. Syntax:\n *\n * scrollResponderScrollTo(options: {x: number = 0; y: number = 0; animated: boolean = true})\n *\n * Note: The weird argument signature is due to the fact that, for historical reasons,\n * the function also accepts separate arguments as as alternative to the options object.\n * This is deprecated due to ambiguity (y before x), and SHOULD NOT BE USED.\n */\n scrollResponderScrollTo: function scrollResponderScrollTo(x, y, animated) {\n if (typeof x === 'number') {\n console.warn('`scrollResponderScrollTo(x, y, animated)` is deprecated. Use `scrollResponderScrollTo({x: 5, y: 5, animated: true})` instead.');\n } else {\n var _ref = x || emptyObject;\n\n x = _ref.x;\n y = _ref.y;\n animated = _ref.animated;\n }\n\n var node = this.scrollResponderGetScrollableNode();\n var left = x || 0;\n var top = y || 0;\n\n if (typeof node.scroll === 'function') {\n node.scroll({\n top,\n left,\n behavior: !animated ? 'auto' : 'smooth'\n });\n } else {\n node.scrollLeft = left;\n node.scrollTop = top;\n }\n },\n\n /**\n * A helper function to zoom to a specific rect in the scrollview. The argument has the shape\n * {x: number; y: number; width: number; height: number; animated: boolean = true}\n *\n * @platform ios\n */\n scrollResponderZoomTo: function scrollResponderZoomTo(rect, animated) {\n if (Platform.OS !== 'ios') {\n invariant('zoomToRect is not implemented');\n }\n },\n\n /**\n * Displays the scroll indicators momentarily.\n */\n scrollResponderFlashScrollIndicators: function scrollResponderFlashScrollIndicators() {},\n\n /**\n * This method should be used as the callback to onFocus in a TextInputs'\n * parent view. Note that any module using this mixin needs to return\n * the parent view's ref in getScrollViewRef() in order to use this method.\n * @param {any} nodeHandle The TextInput node handle\n * @param {number} additionalOffset The scroll view's top \"contentInset\".\n * Default is 0.\n * @param {bool} preventNegativeScrolling Whether to allow pulling the content\n * down to make it meet the keyboard's top. Default is false.\n */\n scrollResponderScrollNativeHandleToKeyboard: function scrollResponderScrollNativeHandleToKeyboard(nodeHandle, additionalOffset, preventNegativeScrollOffset) {\n this.additionalScrollOffset = additionalOffset || 0;\n this.preventNegativeScrollOffset = !!preventNegativeScrollOffset;\n UIManager.measureLayout(nodeHandle, findNodeHandle(this.getInnerViewNode()), this.scrollResponderTextInputFocusError, this.scrollResponderInputMeasureAndScrollToKeyboard);\n },\n\n /**\n * The calculations performed here assume the scroll view takes up the entire\n * screen - even if has some content inset. We then measure the offsets of the\n * keyboard, and compensate both for the scroll view's \"contentInset\".\n *\n * @param {number} left Position of input w.r.t. table view.\n * @param {number} top Position of input w.r.t. table view.\n * @param {number} width Width of the text input.\n * @param {number} height Height of the text input.\n */\n scrollResponderInputMeasureAndScrollToKeyboard: function scrollResponderInputMeasureAndScrollToKeyboard(left, top, width, height) {\n var keyboardScreenY = Dimensions.get('window').height;\n\n if (this.keyboardWillOpenTo) {\n keyboardScreenY = this.keyboardWillOpenTo.endCoordinates.screenY;\n }\n\n var scrollOffsetY = top - keyboardScreenY + height + this.additionalScrollOffset; // By default, this can scroll with negative offset, pulling the content\n // down so that the target component's bottom meets the keyboard's top.\n // If requested otherwise, cap the offset at 0 minimum to avoid content\n // shifting down.\n\n if (this.preventNegativeScrollOffset) {\n scrollOffsetY = Math.max(0, scrollOffsetY);\n }\n\n this.scrollResponderScrollTo({\n x: 0,\n y: scrollOffsetY,\n animated: true\n });\n this.additionalOffset = 0;\n this.preventNegativeScrollOffset = false;\n },\n scrollResponderTextInputFocusError: function scrollResponderTextInputFocusError(e) {\n console.error('Error measuring text field: ', e);\n },\n\n /**\n * `componentWillMount` is the closest thing to a standard \"constructor\" for\n * React components.\n *\n * The `keyboardWillShow` is called before input focus.\n */\n UNSAFE_componentWillMount: function UNSAFE_componentWillMount() {\n this.keyboardWillOpenTo = null;\n this.additionalScrollOffset = 0; // this.addListenerOn(RCTDeviceEventEmitter, 'keyboardWillShow', this.scrollResponderKeyboardWillShow);\n // this.addListenerOn(RCTDeviceEventEmitter, 'keyboardWillHide', this.scrollResponderKeyboardWillHide);\n // this.addListenerOn(RCTDeviceEventEmitter, 'keyboardDidShow', this.scrollResponderKeyboardDidShow);\n // this.addListenerOn(RCTDeviceEventEmitter, 'keyboardDidHide', this.scrollResponderKeyboardDidHide);\n },\n\n /**\n * Warning, this may be called several times for a single keyboard opening.\n * It's best to store the information in this method and then take any action\n * at a later point (either in `keyboardDidShow` or other).\n *\n * Here's the order that events occur in:\n * - focus\n * - willShow {startCoordinates, endCoordinates} several times\n * - didShow several times\n * - blur\n * - willHide {startCoordinates, endCoordinates} several times\n * - didHide several times\n *\n * The `ScrollResponder` providesModule callbacks for each of these events.\n * Even though any user could have easily listened to keyboard events\n * themselves, using these `props` callbacks ensures that ordering of events\n * is consistent - and not dependent on the order that the keyboard events are\n * subscribed to. This matters when telling the scroll view to scroll to where\n * the keyboard is headed - the scroll responder better have been notified of\n * the keyboard destination before being instructed to scroll to where the\n * keyboard will be. Stick to the `ScrollResponder` callbacks, and everything\n * will work.\n *\n * WARNING: These callbacks will fire even if a keyboard is displayed in a\n * different navigation pane. Filter out the events to determine if they are\n * relevant to you. (For example, only if you receive these callbacks after\n * you had explicitly focused a node etc).\n */\n scrollResponderKeyboardWillShow: function scrollResponderKeyboardWillShow(e) {\n this.keyboardWillOpenTo = e;\n this.props.onKeyboardWillShow && this.props.onKeyboardWillShow(e);\n },\n scrollResponderKeyboardWillHide: function scrollResponderKeyboardWillHide(e) {\n this.keyboardWillOpenTo = null;\n this.props.onKeyboardWillHide && this.props.onKeyboardWillHide(e);\n },\n scrollResponderKeyboardDidShow: function scrollResponderKeyboardDidShow(e) {\n // TODO(7693961): The event for DidShow is not available on iOS yet.\n // Use the one from WillShow and do not assign.\n if (e) {\n this.keyboardWillOpenTo = e;\n }\n\n this.props.onKeyboardDidShow && this.props.onKeyboardDidShow(e);\n },\n scrollResponderKeyboardDidHide: function scrollResponderKeyboardDidHide(e) {\n this.keyboardWillOpenTo = null;\n this.props.onKeyboardDidHide && this.props.onKeyboardDidHide(e);\n }\n};\nvar ScrollResponder = {\n Mixin: ScrollResponderMixin\n};\nexport default ScrollResponder;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"onScroll\", \"onTouchMove\", \"onWheel\", \"scrollEnabled\", \"scrollEventThrottle\", \"showsHorizontalScrollIndicator\", \"showsVerticalScrollIndicator\", \"style\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nimport useMergeRefs from '../../modules/useMergeRefs';\n\nfunction normalizeScrollEvent(e) {\n return {\n nativeEvent: {\n contentOffset: {\n get x() {\n return e.target.scrollLeft;\n },\n\n get y() {\n return e.target.scrollTop;\n }\n\n },\n contentSize: {\n get height() {\n return e.target.scrollHeight;\n },\n\n get width() {\n return e.target.scrollWidth;\n }\n\n },\n layoutMeasurement: {\n get height() {\n return e.target.offsetHeight;\n },\n\n get width() {\n return e.target.offsetWidth;\n }\n\n }\n },\n timeStamp: Date.now()\n };\n}\n\nfunction shouldEmitScrollEvent(lastTick, eventThrottle) {\n var timeSinceLastTick = Date.now() - lastTick;\n return eventThrottle > 0 && timeSinceLastTick >= eventThrottle;\n}\n/**\n * Encapsulates the Web-specific scroll throttling and disabling logic\n */\n\n\nvar ScrollViewBase = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var onScroll = props.onScroll,\n onTouchMove = props.onTouchMove,\n onWheel = props.onWheel,\n _props$scrollEnabled = props.scrollEnabled,\n scrollEnabled = _props$scrollEnabled === void 0 ? true : _props$scrollEnabled,\n _props$scrollEventThr = props.scrollEventThrottle,\n scrollEventThrottle = _props$scrollEventThr === void 0 ? 0 : _props$scrollEventThr,\n showsHorizontalScrollIndicator = props.showsHorizontalScrollIndicator,\n showsVerticalScrollIndicator = props.showsVerticalScrollIndicator,\n style = props.style,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n\n var scrollState = React.useRef({\n isScrolling: false,\n scrollLastTick: 0\n });\n var scrollTimeout = React.useRef(null);\n var scrollRef = React.useRef(null);\n\n function createPreventableScrollHandler(handler) {\n return e => {\n if (scrollEnabled) {\n if (handler) {\n handler(e);\n }\n }\n };\n }\n\n function handleScroll(e) {\n e.stopPropagation();\n\n if (e.target === scrollRef.current) {\n e.persist(); // A scroll happened, so the scroll resets the scrollend timeout.\n\n if (scrollTimeout.current != null) {\n clearTimeout(scrollTimeout.current);\n }\n\n scrollTimeout.current = setTimeout(() => {\n handleScrollEnd(e);\n }, 100);\n\n if (scrollState.current.isScrolling) {\n // Scroll last tick may have changed, check if we need to notify\n if (shouldEmitScrollEvent(scrollState.current.scrollLastTick, scrollEventThrottle)) {\n handleScrollTick(e);\n }\n } else {\n // Weren't scrolling, so we must have just started\n handleScrollStart(e);\n }\n }\n }\n\n function handleScrollStart(e) {\n scrollState.current.isScrolling = true;\n handleScrollTick(e);\n }\n\n function handleScrollTick(e) {\n scrollState.current.scrollLastTick = Date.now();\n\n if (onScroll) {\n onScroll(normalizeScrollEvent(e));\n }\n }\n\n function handleScrollEnd(e) {\n scrollState.current.isScrolling = false;\n\n if (onScroll) {\n onScroll(normalizeScrollEvent(e));\n }\n }\n\n var hideScrollbar = showsHorizontalScrollIndicator === false || showsVerticalScrollIndicator === false;\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, {\n onScroll: handleScroll,\n onTouchMove: createPreventableScrollHandler(onTouchMove),\n onWheel: createPreventableScrollHandler(onWheel),\n ref: useMergeRefs(scrollRef, forwardedRef),\n style: [style, !scrollEnabled && styles.scrollDisabled, hideScrollbar && styles.hideScrollbar]\n }));\n}); // Chrome doesn't support e.preventDefault in this case; touch-action must be\n// used to disable scrolling.\n// https://developers.google.com/web/updates/2017/01/scrolling-intervention\n\nvar styles = StyleSheet.create({\n scrollDisabled: {\n overflowX: 'hidden',\n overflowY: 'hidden',\n touchAction: 'none'\n },\n hideScrollbar: {\n scrollbarWidth: 'none'\n }\n});\nexport default ScrollViewBase;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"contentContainerStyle\", \"horizontal\", \"onContentSizeChange\", \"refreshControl\", \"stickyHeaderIndices\", \"pagingEnabled\", \"forwardedRef\", \"keyboardDismissMode\", \"onScroll\", \"centerContent\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport createReactClass from 'create-react-class';\nimport dismissKeyboard from '../../modules/dismissKeyboard';\nimport invariant from 'fbjs/lib/invariant';\nimport mergeRefs from '../../modules/mergeRefs';\nimport ScrollResponder from '../../modules/ScrollResponder';\nimport ScrollViewBase from './ScrollViewBase';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nimport React from 'react';\nvar emptyObject = {};\n/* eslint-disable react/prefer-es6-class */\n\nvar ScrollView = createReactClass({\n displayName: \"ScrollView\",\n mixins: [ScrollResponder.Mixin],\n\n getInitialState() {\n return this.scrollResponderMixinGetInitialState();\n },\n\n flashScrollIndicators() {\n this.scrollResponderFlashScrollIndicators();\n },\n\n /**\n * Returns a reference to the underlying scroll responder, which supports\n * operations like `scrollTo`. All ScrollView-like components should\n * implement this method so that they can be composed while providing access\n * to the underlying scroll responder's methods.\n */\n getScrollResponder() {\n return this;\n },\n\n getScrollableNode() {\n return this._scrollNodeRef;\n },\n\n getInnerViewRef() {\n return this._innerViewRef;\n },\n\n getInnerViewNode() {\n return this._innerViewRef;\n },\n\n getNativeScrollRef() {\n return this._scrollNodeRef;\n },\n\n /**\n * Scrolls to a given x, y offset, either immediately or with a smooth animation.\n * Syntax:\n *\n * scrollTo(options: {x: number = 0; y: number = 0; animated: boolean = true})\n *\n * Note: The weird argument signature is due to the fact that, for historical reasons,\n * the function also accepts separate arguments as as alternative to the options object.\n * This is deprecated due to ambiguity (y before x), and SHOULD NOT BE USED.\n */\n scrollTo(y, x, animated) {\n if (typeof y === 'number') {\n console.warn('`scrollTo(y, x, animated)` is deprecated. Use `scrollTo({x: 5, y: 5, animated: true})` instead.');\n } else {\n var _ref = y || emptyObject;\n\n x = _ref.x;\n y = _ref.y;\n animated = _ref.animated;\n }\n\n this.getScrollResponder().scrollResponderScrollTo({\n x: x || 0,\n y: y || 0,\n animated: animated !== false\n });\n },\n\n /**\n * If this is a vertical ScrollView scrolls to the bottom.\n * If this is a horizontal ScrollView scrolls to the right.\n *\n * Use `scrollToEnd({ animated: true })` for smooth animated scrolling,\n * `scrollToEnd({ animated: false })` for immediate scrolling.\n * If no options are passed, `animated` defaults to true.\n */\n scrollToEnd(options) {\n // Default to true\n var animated = (options && options.animated) !== false;\n var horizontal = this.props.horizontal;\n var scrollResponder = this.getScrollResponder();\n var scrollResponderNode = scrollResponder.scrollResponderGetScrollableNode();\n var x = horizontal ? scrollResponderNode.scrollWidth : 0;\n var y = horizontal ? 0 : scrollResponderNode.scrollHeight;\n scrollResponder.scrollResponderScrollTo({\n x,\n y,\n animated\n });\n },\n\n render() {\n var _this$props = this.props,\n contentContainerStyle = _this$props.contentContainerStyle,\n horizontal = _this$props.horizontal,\n onContentSizeChange = _this$props.onContentSizeChange,\n refreshControl = _this$props.refreshControl,\n stickyHeaderIndices = _this$props.stickyHeaderIndices,\n pagingEnabled = _this$props.pagingEnabled,\n forwardedRef = _this$props.forwardedRef,\n keyboardDismissMode = _this$props.keyboardDismissMode,\n onScroll = _this$props.onScroll,\n centerContent = _this$props.centerContent,\n other = _objectWithoutPropertiesLoose(_this$props, _excluded);\n\n if (process.env.NODE_ENV !== 'production' && this.props.style) {\n var style = StyleSheet.flatten(this.props.style);\n var childLayoutProps = ['alignItems', 'justifyContent'].filter(prop => style && style[prop] !== undefined);\n invariant(childLayoutProps.length === 0, \"ScrollView child layout (\" + JSON.stringify(childLayoutProps) + \") \" + 'must be applied through the contentContainerStyle prop.');\n }\n\n var contentSizeChangeProps = {};\n\n if (onContentSizeChange) {\n contentSizeChangeProps = {\n onLayout: this._handleContentOnLayout\n };\n }\n\n var hasStickyHeaderIndices = !horizontal && Array.isArray(stickyHeaderIndices);\n var children = hasStickyHeaderIndices || pagingEnabled ? React.Children.map(this.props.children, (child, i) => {\n var isSticky = hasStickyHeaderIndices && stickyHeaderIndices.indexOf(i) > -1;\n\n if (child != null && (isSticky || pagingEnabled)) {\n return /*#__PURE__*/React.createElement(View, {\n style: StyleSheet.compose(isSticky && styles.stickyHeader, pagingEnabled && styles.pagingEnabledChild)\n }, child);\n } else {\n return child;\n }\n }) : this.props.children;\n var contentContainer = /*#__PURE__*/React.createElement(View, _extends({}, contentSizeChangeProps, {\n children: children,\n collapsable: false,\n ref: this._setInnerViewRef,\n style: [horizontal && styles.contentContainerHorizontal, centerContent && styles.contentContainerCenterContent, contentContainerStyle]\n }));\n var baseStyle = horizontal ? styles.baseHorizontal : styles.baseVertical;\n var pagingEnabledStyle = horizontal ? styles.pagingEnabledHorizontal : styles.pagingEnabledVertical;\n\n var props = _objectSpread(_objectSpread({}, other), {}, {\n style: [baseStyle, pagingEnabled && pagingEnabledStyle, this.props.style],\n onTouchStart: this.scrollResponderHandleTouchStart,\n onTouchMove: this.scrollResponderHandleTouchMove,\n onTouchEnd: this.scrollResponderHandleTouchEnd,\n onScrollBeginDrag: this.scrollResponderHandleScrollBeginDrag,\n onScrollEndDrag: this.scrollResponderHandleScrollEndDrag,\n onMomentumScrollBegin: this.scrollResponderHandleMomentumScrollBegin,\n onMomentumScrollEnd: this.scrollResponderHandleMomentumScrollEnd,\n onStartShouldSetResponder: this.scrollResponderHandleStartShouldSetResponder,\n onStartShouldSetResponderCapture: this.scrollResponderHandleStartShouldSetResponderCapture,\n onScrollShouldSetResponder: this.scrollResponderHandleScrollShouldSetResponder,\n onScroll: this._handleScroll,\n onResponderGrant: this.scrollResponderHandleResponderGrant,\n onResponderTerminationRequest: this.scrollResponderHandleTerminationRequest,\n onResponderTerminate: this.scrollResponderHandleTerminate,\n onResponderRelease: this.scrollResponderHandleResponderRelease,\n onResponderReject: this.scrollResponderHandleResponderReject\n });\n\n var ScrollViewClass = ScrollViewBase;\n invariant(ScrollViewClass !== undefined, 'ScrollViewClass must not be undefined');\n var scrollView = /*#__PURE__*/React.createElement(ScrollViewClass, _extends({}, props, {\n ref: this._setScrollNodeRef\n }), contentContainer);\n\n if (refreshControl) {\n return /*#__PURE__*/React.cloneElement(refreshControl, {\n style: props.style\n }, scrollView);\n }\n\n return scrollView;\n },\n\n _handleContentOnLayout(e) {\n var _e$nativeEvent$layout = e.nativeEvent.layout,\n width = _e$nativeEvent$layout.width,\n height = _e$nativeEvent$layout.height;\n this.props.onContentSizeChange(width, height);\n },\n\n _handleScroll(e) {\n if (process.env.NODE_ENV !== 'production') {\n if (this.props.onScroll && this.props.scrollEventThrottle == null) {\n console.log('You specified `onScroll` on a but not ' + '`scrollEventThrottle`. You will only receive one event. ' + 'Using `16` you get all the events but be aware that it may ' + \"cause frame drops, use a bigger number if you don't need as \" + 'much precision.');\n }\n }\n\n if (this.props.keyboardDismissMode === 'on-drag') {\n dismissKeyboard();\n }\n\n this.scrollResponderHandleScroll(e);\n },\n\n _setInnerViewRef(node) {\n this._innerViewRef = node;\n },\n\n _setScrollNodeRef(node) {\n this._scrollNodeRef = node; // ScrollView needs to add more methods to the hostNode in addition to those\n // added by `usePlatformMethods`. This is temporarily until an API like\n // `ScrollView.scrollTo(hostNode, { x, y })` is added to React Native.\n\n if (node != null) {\n node.getScrollResponder = this.getScrollResponder;\n node.getInnerViewNode = this.getInnerViewNode;\n node.getInnerViewRef = this.getInnerViewRef;\n node.getNativeScrollRef = this.getNativeScrollRef;\n node.getScrollableNode = this.getScrollableNode;\n node.scrollTo = this.scrollTo;\n node.scrollToEnd = this.scrollToEnd;\n node.flashScrollIndicators = this.flashScrollIndicators;\n node.scrollResponderZoomTo = this.scrollResponderZoomTo;\n node.scrollResponderScrollNativeHandleToKeyboard = this.scrollResponderScrollNativeHandleToKeyboard;\n }\n\n var ref = mergeRefs(this.props.forwardedRef);\n ref(node);\n }\n\n});\nvar commonStyle = {\n flexGrow: 1,\n flexShrink: 1,\n // Enable hardware compositing in modern browsers.\n // Creates a new layer with its own backing surface that can significantly\n // improve scroll performance.\n transform: [{\n translateZ: 0\n }],\n // iOS native scrolling\n WebkitOverflowScrolling: 'touch'\n};\nvar styles = StyleSheet.create({\n baseVertical: _objectSpread(_objectSpread({}, commonStyle), {}, {\n flexDirection: 'column',\n overflowX: 'hidden',\n overflowY: 'auto'\n }),\n baseHorizontal: _objectSpread(_objectSpread({}, commonStyle), {}, {\n flexDirection: 'row',\n overflowX: 'auto',\n overflowY: 'hidden'\n }),\n contentContainerHorizontal: {\n flexDirection: 'row'\n },\n contentContainerCenterContent: {\n justifyContent: 'center',\n flexGrow: 1\n },\n stickyHeader: {\n position: 'sticky',\n top: 0,\n zIndex: 10\n },\n pagingEnabledHorizontal: {\n scrollSnapType: 'x mandatory'\n },\n pagingEnabledVertical: {\n scrollSnapType: 'y mandatory'\n },\n pagingEnabledChild: {\n scrollSnapAlign: 'start'\n }\n});\nvar ForwardedScrollView = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n return /*#__PURE__*/React.createElement(ScrollView, _extends({}, props, {\n forwardedRef: forwardedRef\n }));\n});\nForwardedScrollView.displayName = 'ScrollView';\nexport default ForwardedScrollView;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _createForOfIteratorHelperLoose from \"@babel/runtime/helpers/createForOfIteratorHelperLoose\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nvar _excluded = [\"ItemSeparatorComponent\", \"SectionSeparatorComponent\", \"renderItem\", \"renderSectionFooter\", \"renderSectionHeader\", \"sections\", \"stickySectionHeadersEnabled\"];\nimport { keyExtractor as defaultKeyExtractor } from '../VirtualizeUtils';\nimport View from '../../../exports/View';\nimport VirtualizedList from '../VirtualizedList';\nimport * as React from 'react';\nimport invariant from 'fbjs/lib/invariant';\n\n/**\n * Right now this just flattens everything into one list and uses VirtualizedList under the\n * hood. The only operation that might not scale well is concatting the data arrays of all the\n * sections when new props are received, which should be plenty fast for up to ~10,000 items.\n */\nclass VirtualizedSectionList extends React.PureComponent {\n constructor() {\n super(...arguments);\n\n this._keyExtractor = (item, index) => {\n var info = this._subExtractor(index);\n\n return info && info.key || String(index);\n };\n\n this._convertViewable = viewable => {\n var _info$index;\n\n invariant(viewable.index != null, 'Received a broken ViewToken');\n\n var info = this._subExtractor(viewable.index);\n\n if (!info) {\n return null;\n }\n\n var keyExtractorWithNullableIndex = info.section.keyExtractor;\n var keyExtractorWithNonNullableIndex = this.props.keyExtractor || defaultKeyExtractor;\n var key = keyExtractorWithNullableIndex != null ? keyExtractorWithNullableIndex(viewable.item, info.index) : keyExtractorWithNonNullableIndex(viewable.item, (_info$index = info.index) !== null && _info$index !== void 0 ? _info$index : 0);\n return _objectSpread(_objectSpread({}, viewable), {}, {\n index: info.index,\n key,\n section: info.section\n });\n };\n\n this._onViewableItemsChanged = _ref => {\n var viewableItems = _ref.viewableItems,\n changed = _ref.changed;\n var onViewableItemsChanged = this.props.onViewableItemsChanged;\n\n if (onViewableItemsChanged != null) {\n onViewableItemsChanged({\n viewableItems: viewableItems.map(this._convertViewable, this).filter(Boolean),\n changed: changed.map(this._convertViewable, this).filter(Boolean)\n });\n }\n };\n\n this._renderItem = listItemCount => _ref2 => {\n var item = _ref2.item,\n index = _ref2.index;\n\n var info = this._subExtractor(index);\n\n if (!info) {\n return null;\n }\n\n var infoIndex = info.index;\n\n if (infoIndex == null) {\n var section = info.section;\n\n if (info.header === true) {\n var renderSectionHeader = this.props.renderSectionHeader;\n return renderSectionHeader ? renderSectionHeader({\n section\n }) : null;\n } else {\n var renderSectionFooter = this.props.renderSectionFooter;\n return renderSectionFooter ? renderSectionFooter({\n section\n }) : null;\n }\n } else {\n var renderItem = info.section.renderItem || this.props.renderItem;\n\n var SeparatorComponent = this._getSeparatorComponent(index, info, listItemCount);\n\n invariant(renderItem, 'no renderItem!');\n return /*#__PURE__*/React.createElement(ItemWithSeparator, {\n SeparatorComponent: SeparatorComponent,\n LeadingSeparatorComponent: infoIndex === 0 ? this.props.SectionSeparatorComponent : undefined,\n cellKey: info.key,\n index: infoIndex,\n item: item,\n leadingItem: info.leadingItem,\n leadingSection: info.leadingSection,\n prevCellKey: (this._subExtractor(index - 1) || {}).key // Callback to provide updateHighlight for this item\n ,\n setSelfHighlightCallback: this._setUpdateHighlightFor,\n setSelfUpdatePropsCallback: this._setUpdatePropsFor // Provide child ability to set highlight/updateProps for previous item using prevCellKey\n ,\n updateHighlightFor: this._updateHighlightFor,\n updatePropsFor: this._updatePropsFor,\n renderItem: renderItem,\n section: info.section,\n trailingItem: info.trailingItem,\n trailingSection: info.trailingSection,\n inverted: !!this.props.inverted\n });\n }\n };\n\n this._updatePropsFor = (cellKey, value) => {\n var updateProps = this._updatePropsMap[cellKey];\n\n if (updateProps != null) {\n updateProps(value);\n }\n };\n\n this._updateHighlightFor = (cellKey, value) => {\n var updateHighlight = this._updateHighlightMap[cellKey];\n\n if (updateHighlight != null) {\n updateHighlight(value);\n }\n };\n\n this._setUpdateHighlightFor = (cellKey, updateHighlightFn) => {\n if (updateHighlightFn != null) {\n this._updateHighlightMap[cellKey] = updateHighlightFn;\n } else {\n delete this._updateHighlightFor[cellKey];\n }\n };\n\n this._setUpdatePropsFor = (cellKey, updatePropsFn) => {\n if (updatePropsFn != null) {\n this._updatePropsMap[cellKey] = updatePropsFn;\n } else {\n delete this._updatePropsMap[cellKey];\n }\n };\n\n this._updateHighlightMap = {};\n this._updatePropsMap = {};\n\n this._captureRef = ref => {\n this._listRef = ref;\n };\n }\n\n scrollToLocation(params) {\n var index = params.itemIndex;\n\n for (var i = 0; i < params.sectionIndex; i++) {\n index += this.props.getItemCount(this.props.sections[i].data) + 2;\n }\n\n var viewOffset = params.viewOffset || 0;\n\n if (this._listRef == null) {\n return;\n }\n\n if (params.itemIndex > 0 && this.props.stickySectionHeadersEnabled) {\n // $FlowFixMe[prop-missing] Cannot access private property\n var frame = this._listRef._getFrameMetricsApprox(index - params.itemIndex);\n\n viewOffset += frame.length;\n }\n\n var toIndexParams = _objectSpread(_objectSpread({}, params), {}, {\n viewOffset,\n index\n });\n\n this._listRef.scrollToIndex(toIndexParams);\n }\n\n getListRef() {\n return this._listRef;\n }\n\n render() {\n var _this$props = this.props,\n ItemSeparatorComponent = _this$props.ItemSeparatorComponent,\n SectionSeparatorComponent = _this$props.SectionSeparatorComponent,\n _renderItem = _this$props.renderItem,\n renderSectionFooter = _this$props.renderSectionFooter,\n renderSectionHeader = _this$props.renderSectionHeader,\n _sections = _this$props.sections,\n stickySectionHeadersEnabled = _this$props.stickySectionHeadersEnabled,\n passThroughProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\n\n var listHeaderOffset = this.props.ListHeaderComponent ? 1 : 0;\n var stickyHeaderIndices = this.props.stickySectionHeadersEnabled ? [] : undefined;\n var itemCount = 0;\n\n for (var _iterator = _createForOfIteratorHelperLoose(this.props.sections), _step; !(_step = _iterator()).done;) {\n var section = _step.value;\n\n // Track the section header indices\n if (stickyHeaderIndices != null) {\n stickyHeaderIndices.push(itemCount + listHeaderOffset);\n } // Add two for the section header and footer.\n\n\n itemCount += 2;\n itemCount += this.props.getItemCount(section.data);\n }\n\n var renderItem = this._renderItem(itemCount);\n\n return /*#__PURE__*/React.createElement(VirtualizedList, _extends({}, passThroughProps, {\n keyExtractor: this._keyExtractor,\n stickyHeaderIndices: stickyHeaderIndices,\n renderItem: renderItem,\n data: this.props.sections,\n getItem: (sections, index) => this._getItem(this.props, sections, index),\n getItemCount: () => itemCount,\n onViewableItemsChanged: this.props.onViewableItemsChanged ? this._onViewableItemsChanged : undefined,\n ref: this._captureRef\n }));\n }\n\n _getItem(props, sections, index) {\n if (!sections) {\n return null;\n }\n\n var itemIdx = index - 1;\n\n for (var i = 0; i < sections.length; i++) {\n var section = sections[i];\n var sectionData = section.data;\n var itemCount = props.getItemCount(sectionData);\n\n if (itemIdx === -1 || itemIdx === itemCount) {\n // We intend for there to be overflow by one on both ends of the list.\n // This will be for headers and footers. When returning a header or footer\n // item the section itself is the item.\n return section;\n } else if (itemIdx < itemCount) {\n // If we are in the bounds of the list's data then return the item.\n return props.getItem(sectionData, itemIdx);\n } else {\n itemIdx -= itemCount + 2; // Add two for the header and footer\n }\n }\n\n return null;\n }\n\n _subExtractor(index) {\n var itemIndex = index;\n var _this$props2 = this.props,\n getItem = _this$props2.getItem,\n getItemCount = _this$props2.getItemCount,\n keyExtractor = _this$props2.keyExtractor,\n sections = _this$props2.sections;\n\n for (var i = 0; i < sections.length; i++) {\n var section = sections[i];\n var sectionData = section.data;\n var key = section.key || String(i);\n itemIndex -= 1; // The section adds an item for the header\n\n if (itemIndex >= getItemCount(sectionData) + 1) {\n itemIndex -= getItemCount(sectionData) + 1; // The section adds an item for the footer.\n } else if (itemIndex === -1) {\n return {\n section,\n key: key + ':header',\n index: null,\n header: true,\n trailingSection: sections[i + 1]\n };\n } else if (itemIndex === getItemCount(sectionData)) {\n return {\n section,\n key: key + ':footer',\n index: null,\n header: false,\n trailingSection: sections[i + 1]\n };\n } else {\n var extractor = section.keyExtractor || keyExtractor || defaultKeyExtractor;\n return {\n section,\n key: key + ':' + extractor(getItem(sectionData, itemIndex), itemIndex),\n index: itemIndex,\n leadingItem: getItem(sectionData, itemIndex - 1),\n leadingSection: sections[i - 1],\n trailingItem: getItem(sectionData, itemIndex + 1),\n trailingSection: sections[i + 1]\n };\n }\n }\n }\n\n _getSeparatorComponent(index, info, listItemCount) {\n info = info || this._subExtractor(index);\n\n if (!info) {\n return null;\n }\n\n var ItemSeparatorComponent = info.section.ItemSeparatorComponent || this.props.ItemSeparatorComponent;\n var SectionSeparatorComponent = this.props.SectionSeparatorComponent;\n var isLastItemInList = index === listItemCount - 1;\n var isLastItemInSection = info.index === this.props.getItemCount(info.section.data) - 1;\n\n if (SectionSeparatorComponent && isLastItemInSection) {\n return SectionSeparatorComponent;\n }\n\n if (ItemSeparatorComponent && !isLastItemInSection && !isLastItemInList) {\n return ItemSeparatorComponent;\n }\n\n return null;\n }\n\n}\n\nfunction ItemWithSeparator(props) {\n var LeadingSeparatorComponent = props.LeadingSeparatorComponent,\n SeparatorComponent = props.SeparatorComponent,\n cellKey = props.cellKey,\n prevCellKey = props.prevCellKey,\n setSelfHighlightCallback = props.setSelfHighlightCallback,\n updateHighlightFor = props.updateHighlightFor,\n setSelfUpdatePropsCallback = props.setSelfUpdatePropsCallback,\n updatePropsFor = props.updatePropsFor,\n item = props.item,\n index = props.index,\n section = props.section,\n inverted = props.inverted;\n\n var _React$useState = React.useState(false),\n leadingSeparatorHiglighted = _React$useState[0],\n setLeadingSeparatorHighlighted = _React$useState[1];\n\n var _React$useState2 = React.useState(false),\n separatorHighlighted = _React$useState2[0],\n setSeparatorHighlighted = _React$useState2[1];\n\n var _React$useState3 = React.useState({\n leadingItem: props.leadingItem,\n leadingSection: props.leadingSection,\n section: props.section,\n trailingItem: props.item,\n trailingSection: props.trailingSection\n }),\n leadingSeparatorProps = _React$useState3[0],\n setLeadingSeparatorProps = _React$useState3[1];\n\n var _React$useState4 = React.useState({\n leadingItem: props.item,\n leadingSection: props.leadingSection,\n section: props.section,\n trailingItem: props.trailingItem,\n trailingSection: props.trailingSection\n }),\n separatorProps = _React$useState4[0],\n setSeparatorProps = _React$useState4[1];\n\n React.useEffect(() => {\n setSelfHighlightCallback(cellKey, setSeparatorHighlighted);\n setSelfUpdatePropsCallback(cellKey, setSeparatorProps);\n return () => {\n setSelfUpdatePropsCallback(cellKey, null);\n setSelfHighlightCallback(cellKey, null);\n };\n }, [cellKey, setSelfHighlightCallback, setSeparatorProps, setSelfUpdatePropsCallback]);\n var separators = {\n highlight: () => {\n setLeadingSeparatorHighlighted(true);\n setSeparatorHighlighted(true);\n\n if (prevCellKey != null) {\n updateHighlightFor(prevCellKey, true);\n }\n },\n unhighlight: () => {\n setLeadingSeparatorHighlighted(false);\n setSeparatorHighlighted(false);\n\n if (prevCellKey != null) {\n updateHighlightFor(prevCellKey, false);\n }\n },\n updateProps: (select, newProps) => {\n if (select === 'leading') {\n if (LeadingSeparatorComponent != null) {\n setLeadingSeparatorProps(_objectSpread(_objectSpread({}, leadingSeparatorProps), newProps));\n } else if (prevCellKey != null) {\n // update the previous item's separator\n updatePropsFor(prevCellKey, _objectSpread(_objectSpread({}, leadingSeparatorProps), newProps));\n }\n } else if (select === 'trailing' && SeparatorComponent != null) {\n setSeparatorProps(_objectSpread(_objectSpread({}, separatorProps), newProps));\n }\n }\n };\n var element = props.renderItem({\n item,\n index,\n section,\n separators\n });\n var leadingSeparator = LeadingSeparatorComponent != null && /*#__PURE__*/React.createElement(LeadingSeparatorComponent, _extends({\n highlighted: leadingSeparatorHiglighted\n }, leadingSeparatorProps));\n var separator = SeparatorComponent != null && /*#__PURE__*/React.createElement(SeparatorComponent, _extends({\n highlighted: separatorHighlighted\n }, separatorProps));\n return leadingSeparator || separator ? /*#__PURE__*/React.createElement(View, null, inverted === false ? leadingSeparator : separator, element, inverted === false ? separator : leadingSeparator) : element;\n}\n\nexport default VirtualizedSectionList;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"stickySectionHeadersEnabled\"];\nimport Platform from '../../../exports/Platform';\nimport * as React from 'react';\nimport VirtualizedSectionList from '../VirtualizedSectionList';\n\n/**\n * A performant interface for rendering sectioned lists, supporting the most handy features:\n *\n * - Fully cross-platform.\n * - Configurable viewability callbacks.\n * - List header support.\n * - List footer support.\n * - Item separator support.\n * - Section header support.\n * - Section separator support.\n * - Heterogeneous data and item rendering support.\n * - Pull to Refresh.\n * - Scroll loading.\n *\n * If you don't need section support and want a simpler interface, use\n * [``](https://reactnative.dev/docs/flatlist).\n *\n * Simple Examples:\n *\n * }\n * renderSectionHeader={({section}) =>
}\n * sections={[ // homogeneous rendering between sections\n * {data: [...], title: ...},\n * {data: [...], title: ...},\n * {data: [...], title: ...},\n * ]}\n * />\n *\n * \n *\n * This is a convenience wrapper around [``](docs/virtualizedlist),\n * and thus inherits its props (as well as those of `ScrollView`) that aren't explicitly listed\n * here, along with the following caveats:\n *\n * - Internal state is not preserved when content scrolls out of the render window. Make sure all\n * your data is captured in the item data or external stores like Flux, Redux, or Relay.\n * - This is a `PureComponent` which means that it will not re-render if `props` remain shallow-\n * equal. Make sure that everything your `renderItem` function depends on is passed as a prop\n * (e.g. `extraData`) that is not `===` after updates, otherwise your UI may not update on\n * changes. This includes the `data` prop and parent component state.\n * - In order to constrain memory and enable smooth scrolling, content is rendered asynchronously\n * offscreen. This means it's possible to scroll faster than the fill rate and momentarily see\n * blank content. This is a tradeoff that can be adjusted to suit the needs of each application,\n * and we are working on improving it behind the scenes.\n * - By default, the list looks for a `key` prop on each item and uses that for the React key.\n * Alternatively, you can provide a custom `keyExtractor` prop.\n *\n */\nexport default class SectionList extends React.PureComponent {\n constructor() {\n super(...arguments);\n\n this._captureRef = ref => {\n this._wrapperListRef = ref;\n };\n }\n\n /**\n * Scrolls to the item at the specified `sectionIndex` and `itemIndex` (within the section)\n * positioned in the viewable area such that `viewPosition` 0 places it at the top (and may be\n * covered by a sticky header), 1 at the bottom, and 0.5 centered in the middle. `viewOffset` is a\n * fixed number of pixels to offset the final target position, e.g. to compensate for sticky\n * headers.\n *\n * Note: cannot scroll to locations outside the render window without specifying the\n * `getItemLayout` prop.\n */\n scrollToLocation(params) {\n if (this._wrapperListRef != null) {\n this._wrapperListRef.scrollToLocation(params);\n }\n }\n /**\n * Tells the list an interaction has occurred, which should trigger viewability calculations, e.g.\n * if `waitForInteractions` is true and the user has not scrolled. This is typically called by\n * taps on items or by navigation actions.\n */\n\n\n recordInteraction() {\n var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n\n listRef && listRef.recordInteraction();\n }\n /**\n * Displays the scroll indicators momentarily.\n *\n * @platform ios\n */\n\n\n flashScrollIndicators() {\n var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n\n listRef && listRef.flashScrollIndicators();\n }\n /**\n * Provides a handle to the underlying scroll responder.\n */\n\n\n getScrollResponder() {\n var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n\n if (listRef) {\n return listRef.getScrollResponder();\n }\n }\n\n getScrollableNode() {\n var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n\n if (listRef) {\n return listRef.getScrollableNode();\n }\n }\n\n setNativeProps(props) {\n var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n\n if (listRef) {\n listRef.setNativeProps(props);\n }\n }\n\n render() {\n var _this$props = this.props,\n _stickySectionHeadersEnabled = _this$props.stickySectionHeadersEnabled,\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\n\n var stickySectionHeadersEnabled = _stickySectionHeadersEnabled !== null && _stickySectionHeadersEnabled !== void 0 ? _stickySectionHeadersEnabled : Platform.OS === 'ios';\n return /*#__PURE__*/React.createElement(VirtualizedSectionList, _extends({}, restProps, {\n stickySectionHeadersEnabled: stickySectionHeadersEnabled,\n ref: this._captureRef,\n getItemCount: items => items.length,\n getItem: (items, index) => items[index]\n }));\n }\n\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport SectionList from '../../vendor/react-native/SectionList';\nexport default SectionList;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar emptyFunction = () => {};\n\nfunction StatusBar() {\n return null;\n}\n\nStatusBar.setBackgroundColor = emptyFunction;\nStatusBar.setBarStyle = emptyFunction;\nStatusBar.setHidden = emptyFunction;\nStatusBar.setNetworkActivityIndicatorVisible = emptyFunction;\nStatusBar.setTranslucent = emptyFunction;\nexport default StatusBar;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar isWebColor = color => color === 'currentcolor' || color === 'currentColor' || color === 'inherit' || color.indexOf('var(') === 0;\n\nexport default isWebColor;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport isWebColor from '../../../modules/isWebColor';\nimport processColor from '../../../exports/processColor';\n\nvar normalizeColor = function normalizeColor(color, opacity) {\n if (opacity === void 0) {\n opacity = 1;\n }\n\n if (color == null) return;\n\n if (typeof color === 'string' && isWebColor(color)) {\n return color;\n }\n\n var colorInt = processColor(color);\n\n if (colorInt != null) {\n var r = colorInt >> 16 & 255;\n var g = colorInt >> 8 & 255;\n var b = colorInt & 255;\n var a = (colorInt >> 24 & 255) / 255;\n var alpha = (a * opacity).toFixed(2);\n return \"rgba(\" + r + \",\" + g + \",\" + b + \",\" + alpha + \")\";\n }\n};\n\nexport default normalizeColor;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar unitlessNumbers = {\n animationIterationCount: true,\n aspectRatio: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n flex: true,\n flexGrow: true,\n flexOrder: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n fontWeight: true,\n gridRow: true,\n gridRowEnd: true,\n gridRowGap: true,\n gridRowStart: true,\n gridColumn: true,\n gridColumnEnd: true,\n gridColumnGap: true,\n gridColumnStart: true,\n lineClamp: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n // SVG-related\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true,\n // transform types\n scale: true,\n scaleX: true,\n scaleY: true,\n scaleZ: true,\n // RN properties\n shadowOpacity: true\n};\n/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\n\nvar prefixes = ['ms', 'Moz', 'O', 'Webkit'];\n\nvar prefixKey = (prefix, key) => {\n return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n};\n\nObject.keys(unitlessNumbers).forEach(prop => {\n prefixes.forEach(prefix => {\n unitlessNumbers[prefixKey(prefix, prop)] = unitlessNumbers[prop];\n });\n});\nexport default unitlessNumbers;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport unitlessNumbers from './unitlessNumbers';\nimport normalizeColor from './normalizeColor';\nvar colorProps = {\n backgroundColor: true,\n borderColor: true,\n borderTopColor: true,\n borderRightColor: true,\n borderBottomColor: true,\n borderLeftColor: true,\n color: true,\n shadowColor: true,\n textDecorationColor: true,\n textShadowColor: true\n};\nexport default function normalizeValueWithProperty(value, property) {\n var returnValue = value;\n\n if ((property == null || !unitlessNumbers[property]) && typeof value === 'number') {\n returnValue = value + \"px\";\n } else if (property != null && colorProps[property]) {\n returnValue = normalizeColor(value);\n }\n\n return returnValue;\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport canUseDOM from '../../../modules/canUseDom'; // $FlowFixMe: HTMLStyleElement is incorrectly typed - https://github.com/facebook/flow/issues/2696\n\nexport default function createCSSStyleSheet(id, rootNode, textContent) {\n if (canUseDOM) {\n var root = rootNode != null ? rootNode : document;\n var element = root.getElementById(id);\n\n if (element == null) {\n element = document.createElement('style');\n element.setAttribute('id', id);\n\n if (typeof textContent === 'string') {\n element.appendChild(document.createTextNode(textContent));\n }\n\n if (root instanceof ShadowRoot) {\n root.insertBefore(element, root.firstChild);\n } else {\n var head = root.head;\n\n if (head) {\n head.insertBefore(element, head.firstChild);\n }\n }\n } // $FlowFixMe: HTMLElement is incorrectly typed\n\n\n return element.sheet;\n } else {\n return null;\n }\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar slice = Array.prototype.slice;\n/**\n * Order-based insertion of CSS.\n *\n * Each rule is associated with a numerically defined group.\n * Groups are ordered within the style sheet according to their number, with the\n * lowest first.\n *\n * Groups are implemented using marker rules. The selector of the first rule of\n * each group is used only to encode the group number for hydration. An\n * alternative implementation could rely on CSSMediaRule, allowing groups to be\n * treated as a sub-sheet, but the Edge implementation of CSSMediaRule is\n * broken.\n * https://developer.mozilla.org/en-US/docs/Web/API/CSSMediaRule\n * https://gist.github.com/necolas/aa0c37846ad6bd3b05b727b959e82674\n */\n\nexport default function createOrderedCSSStyleSheet(sheet) {\n var groups = {};\n var selectors = {};\n /**\n * Hydrate approximate record from any existing rules in the sheet.\n */\n\n if (sheet != null) {\n var group;\n slice.call(sheet.cssRules).forEach((cssRule, i) => {\n var cssText = cssRule.cssText; // Create record of existing selectors and rules\n\n if (cssText.indexOf('stylesheet-group') > -1) {\n group = decodeGroupRule(cssRule);\n groups[group] = {\n start: i,\n rules: [cssText]\n };\n } else {\n var selectorText = getSelectorText(cssText);\n\n if (selectorText != null) {\n selectors[selectorText] = true;\n groups[group].rules.push(cssText);\n }\n }\n });\n }\n\n function sheetInsert(sheet, group, text) {\n var orderedGroups = getOrderedGroups(groups);\n var groupIndex = orderedGroups.indexOf(group);\n var nextGroupIndex = groupIndex + 1;\n var nextGroup = orderedGroups[nextGroupIndex]; // Insert rule before the next group, or at the end of the stylesheet\n\n var position = nextGroup != null && groups[nextGroup].start != null ? groups[nextGroup].start : sheet.cssRules.length;\n var isInserted = insertRuleAt(sheet, text, position);\n\n if (isInserted) {\n // Set the starting index of the new group\n if (groups[group].start == null) {\n groups[group].start = position;\n } // Increment the starting index of all subsequent groups\n\n\n for (var i = nextGroupIndex; i < orderedGroups.length; i += 1) {\n var groupNumber = orderedGroups[i];\n var previousStart = groups[groupNumber].start || 0;\n groups[groupNumber].start = previousStart + 1;\n }\n }\n\n return isInserted;\n }\n\n var OrderedCSSStyleSheet = {\n /**\n * The textContent of the style sheet.\n */\n getTextContent() {\n return getOrderedGroups(groups).map(group => {\n var rules = groups[group].rules; // Sorting provides deterministic order of styles in group for\n // build-time extraction of the style sheet.\n\n var marker = rules.shift();\n rules.sort();\n rules.unshift(marker);\n return rules.join('\\n');\n }).join('\\n');\n },\n\n /**\n * Insert a rule into the style sheet\n */\n insert(cssText, groupValue) {\n var group = Number(groupValue); // Create a new group.\n\n if (groups[group] == null) {\n var markerRule = encodeGroupRule(group); // Create the internal record.\n\n groups[group] = {\n start: null,\n rules: [markerRule]\n }; // Update CSSOM.\n\n if (sheet != null) {\n sheetInsert(sheet, group, markerRule);\n }\n } // selectorText is more reliable than cssText for insertion checks. The\n // browser excludes vendor-prefixed properties and rewrites certain values\n // making cssText more likely to be different from what was inserted.\n\n\n var selectorText = getSelectorText(cssText);\n\n if (selectorText != null && selectors[selectorText] == null) {\n // Update the internal records.\n selectors[selectorText] = true;\n groups[group].rules.push(cssText); // Update CSSOM.\n\n if (sheet != null) {\n var isInserted = sheetInsert(sheet, group, cssText);\n\n if (!isInserted) {\n // Revert internal record change if a rule was rejected (e.g.,\n // unrecognized pseudo-selector)\n groups[group].rules.pop();\n }\n }\n }\n }\n\n };\n return OrderedCSSStyleSheet;\n}\n/**\n * Helper functions\n */\n\nfunction encodeGroupRule(group) {\n return \"[stylesheet-group=\\\"\" + group + \"\\\"]{}\";\n}\n\nvar groupPattern = /[\"']/g;\n\nfunction decodeGroupRule(cssRule) {\n return Number(cssRule.selectorText.split(groupPattern)[1]);\n}\n\nfunction getOrderedGroups(obj) {\n return Object.keys(obj).map(Number).sort((a, b) => a > b ? 1 : -1);\n}\n\nvar selectorPattern = /\\s*([,])\\s*/g;\n\nfunction getSelectorText(cssText) {\n var selector = cssText.split('{')[0].trim();\n return selector !== '' ? selector.replace(selectorPattern, '$1') : null;\n}\n\nfunction insertRuleAt(root, cssText, position) {\n try {\n // $FlowFixMe: Flow is missing CSSOM types needed to type 'root'.\n root.insertRule(cssText, position);\n return true;\n } catch (e) {\n // JSDOM doesn't support `CSSSMediaRule#insertRule`.\n // Also ignore errors that occur from attempting to insert vendor-prefixed selectors.\n return false;\n }\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport canUseDOM from '../../../modules/canUseDom';\nimport createCSSStyleSheet from './createCSSStyleSheet';\nimport createOrderedCSSStyleSheet from './createOrderedCSSStyleSheet';\nvar defaultId = 'react-native-stylesheet';\nvar roots = new WeakMap();\nvar sheets = [];\nvar initialRules = [// minimal top-level reset\n'html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0);}', 'body{margin:0;}', // minimal form pseudo-element reset\n'button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0;}', 'input::-webkit-search-cancel-button,input::-webkit-search-decoration,input::-webkit-search-results-button,input::-webkit-search-results-decoration{display:none;}'];\nexport function createSheet(root, id) {\n if (id === void 0) {\n id = defaultId;\n }\n\n var sheet;\n\n if (canUseDOM) {\n var rootNode = root != null ? root.getRootNode() : document; // Create the initial style sheet\n\n if (sheets.length === 0) {\n sheet = createOrderedCSSStyleSheet(createCSSStyleSheet(id));\n initialRules.forEach(rule => {\n sheet.insert(rule, 0);\n });\n roots.set(rootNode, sheets.length);\n sheets.push(sheet);\n } else {\n var index = roots.get(rootNode);\n\n if (index == null) {\n var initialSheet = sheets[0]; // If we're creating a new sheet, populate it with existing styles\n\n var textContent = initialSheet != null ? initialSheet.getTextContent() : ''; // Cast rootNode to 'any' because Flow types for getRootNode are wrong\n\n sheet = createOrderedCSSStyleSheet(createCSSStyleSheet(id, rootNode, textContent));\n roots.set(rootNode, sheets.length);\n sheets.push(sheet);\n } else {\n sheet = sheets[index];\n }\n }\n } else {\n // Create the initial style sheet\n if (sheets.length === 0) {\n sheet = createOrderedCSSStyleSheet(createCSSStyleSheet(id));\n initialRules.forEach(rule => {\n sheet.insert(rule, 0);\n });\n sheets.push(sheet);\n } else {\n sheet = sheets[0];\n }\n }\n\n return {\n getTextContent() {\n return sheet.getTextContent();\n },\n\n id,\n\n insert(cssText, groupValue) {\n sheets.forEach(s => {\n s.insert(cssText, groupValue);\n });\n }\n\n };\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport normalizeValueWithProperty from './normalizeValueWithProperty';\nimport canUseDOM from '../../../modules/canUseDom';\n\n/**\n * The browser implements the CSS cascade, where the order of properties is a\n * factor in determining which styles to paint. React Native is different. It\n * gives giving precedence to the more specific style property. For example,\n * the value of `paddingTop` takes precedence over that of `padding`.\n *\n * This module creates mutally exclusive style declarations by expanding all of\n * React Native's supported shortform properties (e.g. `padding`) to their\n * longfrom equivalents.\n */\nvar emptyObject = {};\nvar supportsCSS3TextDecoration = !canUseDOM || window.CSS != null && window.CSS.supports != null && (window.CSS.supports('text-decoration-line', 'none') || window.CSS.supports('-webkit-text-decoration-line', 'none'));\nvar ignoredProps = {\n elevation: true,\n overlayColor: true,\n resizeMode: true,\n tintColor: true\n};\nvar MONOSPACE_FONT_STACK = 'monospace,monospace';\nvar SYSTEM_FONT_STACK = '-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif';\nvar STYLE_SHORT_FORM_EXPANSIONS = {\n borderColor: ['borderTopColor', 'borderRightColor', 'borderBottomColor', 'borderLeftColor'],\n borderRadius: ['borderTopLeftRadius', 'borderTopRightRadius', 'borderBottomRightRadius', 'borderBottomLeftRadius'],\n borderStyle: ['borderTopStyle', 'borderRightStyle', 'borderBottomStyle', 'borderLeftStyle'],\n borderWidth: ['borderTopWidth', 'borderRightWidth', 'borderBottomWidth', 'borderLeftWidth'],\n marginHorizontal: ['marginRight', 'marginLeft'],\n marginVertical: ['marginTop', 'marginBottom'],\n overflow: ['overflowX', 'overflowY'],\n overscrollBehavior: ['overscrollBehaviorX', 'overscrollBehaviorY'],\n paddingHorizontal: ['paddingRight', 'paddingLeft'],\n paddingVertical: ['paddingTop', 'paddingBottom']\n};\n/**\n * Transform\n */\n// { scale: 2 } => 'scale(2)'\n// { translateX: 20 } => 'translateX(20px)'\n// { matrix: [1,2,3,4,5,6] } => 'matrix(1,2,3,4,5,6)'\n\nvar mapTransform = transform => {\n var type = Object.keys(transform)[0];\n var value = transform[type];\n\n if (type === 'matrix' || type === 'matrix3d') {\n return type + \"(\" + value.join(',') + \")\";\n } else {\n var normalizedValue = normalizeValueWithProperty(value, type);\n return type + \"(\" + normalizedValue + \")\";\n }\n};\n\nexport var createTransformValue = style => {\n var transform = style.transform;\n\n if (Array.isArray(style.transform)) {\n transform = style.transform.map(mapTransform).join(' ');\n }\n\n return transform;\n};\n/**\n * Reducer\n */\n\nvar createReactDOMStyle = (style, isInline) => {\n if (!style) {\n return emptyObject;\n }\n\n var resolvedStyle = {};\n\n for (var prop in style) {\n var value = style[prop];\n\n if ( // Ignore everything with a null value\n value == null || // Ignore some React Native styles\n ignoredProps[prop]) {\n continue;\n }\n\n if (prop === 'aspectRatio') {\n resolvedStyle[prop] = value.toString();\n } else if (prop === 'backgroundClip') {\n // TODO: remove once this issue is fixed\n // https://github.com/rofrischmann/inline-style-prefixer/issues/159\n if (value === 'text') {\n resolvedStyle.backgroundClip = value;\n resolvedStyle.WebkitBackgroundClip = value;\n }\n } else if (prop === 'flex') {\n if (value === -1) {\n resolvedStyle.flexGrow = 0;\n resolvedStyle.flexShrink = 1;\n resolvedStyle.flexBasis = 'auto';\n } else {\n resolvedStyle.flex = value;\n }\n } else if (prop === 'font') {\n resolvedStyle[prop] = value.replace('System', SYSTEM_FONT_STACK);\n } else if (prop === 'fontFamily') {\n if (value.indexOf('System') > -1) {\n var stack = value.split(/,\\s*/);\n stack[stack.indexOf('System')] = SYSTEM_FONT_STACK;\n resolvedStyle[prop] = stack.join(',');\n } else if (value === 'monospace') {\n resolvedStyle[prop] = MONOSPACE_FONT_STACK;\n } else {\n resolvedStyle[prop] = value;\n }\n } else if (prop === 'fontVariant') {\n if (Array.isArray(value) && value.length > 0) {\n resolvedStyle.fontVariant = value.join(' ');\n }\n } else if (prop === 'textAlignVertical') {\n resolvedStyle.verticalAlign = value === 'center' ? 'middle' : value;\n } else if (prop === 'textDecorationLine') {\n // use 'text-decoration' for browsers that only support CSS2\n // text-decoration (e.g., IE, Edge)\n if (!supportsCSS3TextDecoration) {\n resolvedStyle.textDecoration = value;\n } else {\n resolvedStyle.textDecorationLine = value;\n }\n } else if (prop === 'transform' || prop === 'transformMatrix') {\n resolvedStyle.transform = createTransformValue(style);\n } else if (prop === 'writingDirection') {\n resolvedStyle.direction = value;\n } else {\n (function () {\n var value = normalizeValueWithProperty(style[prop], prop);\n var longFormProperties = STYLE_SHORT_FORM_EXPANSIONS[prop];\n\n if (isInline && prop === 'margin') {\n if (style.marginHorizontal == null) {\n resolvedStyle.marginLeft = value;\n resolvedStyle.marginRight = value;\n }\n\n if (style.marginVertical == null) {\n resolvedStyle.marginTop = value;\n resolvedStyle.marginBottom = value;\n }\n } else if (isInline && prop === 'padding') {\n if (style.paddingHorizontal == null) {\n resolvedStyle.paddingLeft = value;\n resolvedStyle.paddingRight = value;\n }\n\n if (style.paddingVertical == null) {\n resolvedStyle.paddingTop = value;\n resolvedStyle.paddingBottom = value;\n }\n } else if (longFormProperties) {\n longFormProperties.forEach((longForm, i) => {\n // The value of any longform property in the original styles takes\n // precedence over the shortform's value.\n if (style[longForm] == null) {\n resolvedStyle[longForm] = value;\n }\n });\n } else {\n resolvedStyle[prop] = Array.isArray(value) ? value.join(',') : value;\n }\n })();\n }\n }\n\n return resolvedStyle;\n};\n\nexport default createReactDOMStyle;","/* eslint-disable */\n\n/**\n * JS Implementation of MurmurHash2\n *\n * @author Gary Court\n * @see http://github.com/garycourt/murmurhash-js\n * @author Austin Appleby\n * @see http://sites.google.com/site/murmurhash/\n *\n * @param {string} str ASCII only\n * @param {number} seed Positive integer only\n * @return {number} 32-bit positive integer hash\n *\n * \n */\nfunction murmurhash2_32_gc(str, seed) {\n var l = str.length,\n h = seed ^ l,\n i = 0,\n k;\n\n while (l >= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k = (k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n k ^= k >>> 24;\n k = (k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16) ^ k;\n l -= 4;\n ++i;\n }\n\n switch (l) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n }\n\n h ^= h >>> 13;\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n h ^= h >>> 15;\n return h >>> 0;\n}\n\nvar hash = str => murmurhash2_32_gc(str, 1).toString(36);\n\nexport default hash;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar uppercasePattern = /[A-Z]/g;\nvar msPattern = /^ms-/;\nvar cache = {};\n\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase();\n}\n\nfunction hyphenateStyleName(name) {\n if (name in cache) {\n return cache[name];\n }\n\n var hName = name.replace(uppercasePattern, toHyphenLower);\n return cache[name] = msPattern.test(hName) ? '-' + hName : hName;\n}\n\nexport default hyphenateStyleName;","import backgroundClip from 'inline-style-prefixer/lib/plugins/backgroundClip';\nimport crossFade from 'inline-style-prefixer/lib/plugins/crossFade';\nimport cursor from 'inline-style-prefixer/lib/plugins/cursor';\nimport filter from 'inline-style-prefixer/lib/plugins/filter';\nimport imageSet from 'inline-style-prefixer/lib/plugins/imageSet';\nimport logical from 'inline-style-prefixer/lib/plugins/logical';\nimport position from 'inline-style-prefixer/lib/plugins/position';\nimport sizing from 'inline-style-prefixer/lib/plugins/sizing';\nimport transition from 'inline-style-prefixer/lib/plugins/transition';\nvar w = ['Webkit'];\nvar m = ['Moz'];\nvar wm = ['Webkit', 'Moz'];\nvar wms = ['Webkit', 'ms'];\nvar wmms = ['Webkit', 'Moz', 'ms'];\nexport default {\n plugins: [backgroundClip, crossFade, cursor, filter, imageSet, logical, position, sizing, transition],\n prefixMap: {\n appearance: wmms,\n userSelect: wm,\n textEmphasisPosition: wms,\n textEmphasis: wms,\n textEmphasisStyle: wms,\n textEmphasisColor: wms,\n boxDecorationBreak: wms,\n clipPath: w,\n maskImage: wms,\n maskMode: wms,\n maskRepeat: wms,\n maskPosition: wms,\n maskClip: wms,\n maskOrigin: wms,\n maskSize: wms,\n maskComposite: wms,\n mask: wms,\n maskBorderSource: wms,\n maskBorderMode: wms,\n maskBorderSlice: wms,\n maskBorderWidth: wms,\n maskBorderOutset: wms,\n maskBorderRepeat: wms,\n maskBorder: wms,\n maskType: wms,\n textDecorationStyle: w,\n textDecorationSkip: w,\n textDecorationLine: w,\n textDecorationColor: w,\n filter: w,\n breakAfter: w,\n breakBefore: w,\n breakInside: w,\n columnCount: w,\n columnFill: w,\n columnGap: w,\n columnRule: w,\n columnRuleColor: w,\n columnRuleStyle: w,\n columnRuleWidth: w,\n columns: w,\n columnSpan: w,\n columnWidth: w,\n backdropFilter: w,\n hyphens: w,\n flowInto: w,\n flowFrom: w,\n regionFragment: w,\n textOrientation: w,\n tabSize: m,\n fontKerning: w,\n textSizeAdjust: w\n }\n};","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport createPrefixer from 'inline-style-prefixer/lib/createPrefixer';\nimport staticData from './static';\nvar prefixAll = createPrefixer(staticData);\nexport default prefixAll;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"animationKeyframes\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport createReactDOMStyle from './createReactDOMStyle';\nimport hash from './hash';\nimport hyphenateStyleName from './hyphenateStyleName';\nimport normalizeValueWithProperty from './normalizeValueWithProperty';\nimport prefixStyles from '../../../modules/prefixStyles';\nvar cache = new Map();\nvar emptyObject = {};\nvar classicGroup = 1;\nvar atomicGroup = 2.2;\nvar customGroup = {\n borderColor: 2,\n borderRadius: 2,\n borderStyle: 2,\n borderWidth: 2,\n display: 2,\n flex: 2,\n margin: 2,\n overflow: 2,\n overscrollBehavior: 2,\n padding: 2,\n marginHorizontal: 2.1,\n marginVertical: 2.1,\n paddingHorizontal: 2.1,\n paddingVertical: 2.1\n};\nvar borderTopLeftRadius = 'borderTopLeftRadius';\nvar borderTopRightRadius = 'borderTopRightRadius';\nvar borderBottomLeftRadius = 'borderBottomLeftRadius';\nvar borderBottomRightRadius = 'borderBottomRightRadius';\nvar borderLeftColor = 'borderLeftColor';\nvar borderLeftStyle = 'borderLeftStyle';\nvar borderLeftWidth = 'borderLeftWidth';\nvar borderRightColor = 'borderRightColor';\nvar borderRightStyle = 'borderRightStyle';\nvar borderRightWidth = 'borderRightWidth';\nvar right = 'right';\nvar marginLeft = 'marginLeft';\nvar marginRight = 'marginRight';\nvar paddingLeft = 'paddingLeft';\nvar paddingRight = 'paddingRight';\nvar left = 'left'; // Map of LTR property names to their BiDi equivalent.\n\nvar PROPERTIES_FLIP = {\n [borderTopLeftRadius]: borderTopRightRadius,\n [borderTopRightRadius]: borderTopLeftRadius,\n [borderBottomLeftRadius]: borderBottomRightRadius,\n [borderBottomRightRadius]: borderBottomLeftRadius,\n [borderLeftColor]: borderRightColor,\n [borderLeftStyle]: borderRightStyle,\n [borderLeftWidth]: borderRightWidth,\n [borderRightColor]: borderLeftColor,\n [borderRightStyle]: borderLeftStyle,\n [borderRightWidth]: borderLeftWidth,\n [left]: right,\n [marginLeft]: marginRight,\n [marginRight]: marginLeft,\n [paddingLeft]: paddingRight,\n [paddingRight]: paddingLeft,\n [right]: left\n}; // Map of I18N property names to their LTR equivalent.\n\nvar PROPERTIES_I18N = {\n borderTopStartRadius: borderTopLeftRadius,\n borderTopEndRadius: borderTopRightRadius,\n borderBottomStartRadius: borderBottomLeftRadius,\n borderBottomEndRadius: borderBottomRightRadius,\n borderStartColor: borderLeftColor,\n borderStartStyle: borderLeftStyle,\n borderStartWidth: borderLeftWidth,\n borderEndColor: borderRightColor,\n borderEndStyle: borderRightStyle,\n borderEndWidth: borderRightWidth,\n end: right,\n marginStart: marginLeft,\n marginEnd: marginRight,\n paddingStart: paddingLeft,\n paddingEnd: paddingRight,\n start: left\n};\nvar PROPERTIES_VALUE = ['clear', 'float', 'textAlign'];\nexport function atomic(style) {\n var compiledStyle = {\n $$css: true\n };\n var compiledRules = [];\n\n function atomicCompile(prop, value) {\n var valueString = stringifyValueWithProperty(value, prop);\n var cacheKey = prop + valueString;\n var cachedResult = cache.get(cacheKey);\n var identifier;\n\n if (cachedResult != null) {\n identifier = cachedResult[0];\n compiledRules.push(cachedResult[1]);\n } else {\n identifier = createIdentifier('r', prop, value);\n var order = customGroup[prop] || atomicGroup;\n var rules = createAtomicRules(identifier, prop, value);\n var orderedRules = [rules, order];\n compiledRules.push(orderedRules);\n cache.set(cacheKey, [identifier, orderedRules]);\n }\n\n return identifier;\n }\n\n Object.keys(style).sort().forEach(prop => {\n var value = style[prop];\n\n if (value != null) {\n var localizeableValue; // BiDi flip values\n\n if (PROPERTIES_VALUE.indexOf(prop) > -1) {\n var _left = atomicCompile(prop, 'left');\n\n var _right = atomicCompile(prop, 'right');\n\n if (value === 'start') {\n localizeableValue = [_left, _right];\n } else if (value === 'end') {\n localizeableValue = [_right, _left];\n }\n } // BiDi flip properties\n\n\n var propPolyfill = PROPERTIES_I18N[prop];\n\n if (propPolyfill != null) {\n var ltr = atomicCompile(propPolyfill, value);\n var rtl = atomicCompile(PROPERTIES_FLIP[propPolyfill], value);\n localizeableValue = [ltr, rtl];\n } // BiDi flip transitionProperty value\n\n\n if (prop === 'transitionProperty') {\n var values = Array.isArray(value) ? value : [value];\n var polyfillIndices = [];\n\n for (var i = 0; i < values.length; i++) {\n var val = values[i];\n\n if (typeof val === 'string' && PROPERTIES_I18N[val] != null) {\n polyfillIndices.push(i);\n }\n }\n\n if (polyfillIndices.length > 0) {\n var ltrPolyfillValues = [...values];\n var rtlPolyfillValues = [...values];\n polyfillIndices.forEach(i => {\n var ltrVal = ltrPolyfillValues[i];\n\n if (typeof ltrVal === 'string') {\n var ltrPolyfill = PROPERTIES_I18N[ltrVal];\n var rtlPolyfill = PROPERTIES_FLIP[ltrPolyfill];\n ltrPolyfillValues[i] = ltrPolyfill;\n rtlPolyfillValues[i] = rtlPolyfill;\n\n var _ltr = atomicCompile(prop, ltrPolyfillValues);\n\n var _rtl = atomicCompile(prop, rtlPolyfillValues);\n\n localizeableValue = [_ltr, _rtl];\n }\n });\n }\n }\n\n if (localizeableValue == null) {\n localizeableValue = atomicCompile(prop, value);\n } else {\n compiledStyle['$$css$localize'] = true;\n }\n\n compiledStyle[prop] = localizeableValue;\n }\n });\n return [compiledStyle, compiledRules];\n}\n/**\n * Compile simple style object to classic CSS rules.\n * No support for 'placeholderTextColor', 'scrollbarWidth', or 'pointerEvents'.\n */\n\nexport function classic(style, name) {\n var compiledStyle = {\n $$css: true\n };\n var compiledRules = [];\n\n var animationKeyframes = style.animationKeyframes,\n rest = _objectWithoutPropertiesLoose(style, _excluded);\n\n var identifier = createIdentifier('css', name, style);\n var selector = \".\" + identifier;\n var animationName;\n\n if (animationKeyframes != null) {\n var _processKeyframesValu = processKeyframesValue(animationKeyframes),\n animationNames = _processKeyframesValu[0],\n keyframesRules = _processKeyframesValu[1];\n\n animationName = animationNames.join(',');\n compiledRules.push(...keyframesRules);\n }\n\n var block = createDeclarationBlock(_objectSpread(_objectSpread({}, rest), {}, {\n animationName\n }));\n compiledRules.push(\"\" + selector + block);\n compiledStyle[identifier] = identifier;\n return [compiledStyle, [[compiledRules, classicGroup]]];\n}\n/**\n * Compile simple style object to inline DOM styles.\n * No support for 'animationKeyframes', 'placeholderTextColor', 'scrollbarWidth', or 'pointerEvents'.\n */\n\nexport function inline(originalStyle, isRTL) {\n var style = originalStyle || emptyObject;\n var frozenProps = {};\n var nextStyle = {};\n\n for (var originalProp in style) {\n var originalValue = style[originalProp];\n var prop = originalProp;\n var value = originalValue;\n\n if (!Object.prototype.hasOwnProperty.call(style, originalProp) || originalValue == null) {\n continue;\n } // BiDi flip values\n\n\n if (PROPERTIES_VALUE.indexOf(originalProp) > -1) {\n if (originalValue === 'start') {\n value = isRTL ? 'right' : 'left';\n } else if (originalValue === 'end') {\n value = isRTL ? 'left' : 'right';\n }\n } // BiDi flip properties\n\n\n var propPolyfill = PROPERTIES_I18N[originalProp];\n\n if (propPolyfill != null) {\n prop = isRTL ? PROPERTIES_FLIP[propPolyfill] : propPolyfill;\n } // BiDi flip transitionProperty value\n\n\n if (originalProp === 'transitionProperty') {\n (function () {\n // $FlowFixMe\n var originalValues = Array.isArray(originalValue) ? originalValue : [originalValue];\n originalValues.forEach((val, i) => {\n if (typeof val === 'string') {\n var valuePolyfill = PROPERTIES_I18N[val];\n\n if (valuePolyfill != null) {\n originalValues[i] = isRTL ? PROPERTIES_FLIP[valuePolyfill] : valuePolyfill;\n }\n }\n });\n })();\n } // Create finalized style\n\n\n if (!frozenProps[prop]) {\n nextStyle[prop] = value;\n }\n\n if (PROPERTIES_I18N.hasOwnProperty(originalProp)) {\n frozenProps[prop] = true;\n }\n }\n\n return createReactDOMStyle(nextStyle, true);\n}\n/**\n * Create a value string that normalizes different input values with a common\n * output.\n */\n\nexport function stringifyValueWithProperty(value, property) {\n // e.g., 0 => '0px', 'black' => 'rgba(0,0,0,1)'\n var normalizedValue = normalizeValueWithProperty(value, property);\n return typeof normalizedValue !== 'string' ? JSON.stringify(normalizedValue || '') : normalizedValue;\n}\n/**\n * Create the Atomic CSS rules needed for a given StyleSheet rule.\n * Translates StyleSheet declarations to CSS.\n */\n\nfunction createAtomicRules(identifier, property, value) {\n var rules = [];\n var selector = \".\" + identifier; // Handle non-standard properties and object values that require multiple\n // CSS rules to be created.\n\n switch (property) {\n case 'animationKeyframes':\n {\n var _processKeyframesValu2 = processKeyframesValue(value),\n animationNames = _processKeyframesValu2[0],\n keyframesRules = _processKeyframesValu2[1];\n\n var block = createDeclarationBlock({\n animationName: animationNames.join(',')\n });\n rules.push(\"\" + selector + block, ...keyframesRules);\n break;\n }\n // Equivalent to using '::placeholder'\n\n case 'placeholderTextColor':\n {\n var _block = createDeclarationBlock({\n color: value,\n opacity: 1\n });\n\n rules.push(selector + \"::-webkit-input-placeholder\" + _block, selector + \"::-moz-placeholder\" + _block, selector + \":-ms-input-placeholder\" + _block, selector + \"::placeholder\" + _block);\n break;\n }\n // Polyfill for additional 'pointer-events' values\n // See d13f78622b233a0afc0c7a200c0a0792c8ca9e58\n\n case 'pointerEvents':\n {\n var finalValue = value;\n\n if (value === 'auto' || value === 'box-only') {\n finalValue = 'auto!important';\n\n if (value === 'box-only') {\n var _block3 = createDeclarationBlock({\n pointerEvents: 'none'\n });\n\n rules.push(selector + \">*\" + _block3);\n }\n } else if (value === 'none' || value === 'box-none') {\n finalValue = 'none!important';\n\n if (value === 'box-none') {\n var _block4 = createDeclarationBlock({\n pointerEvents: 'auto'\n });\n\n rules.push(selector + \">*\" + _block4);\n }\n }\n\n var _block2 = createDeclarationBlock({\n pointerEvents: finalValue\n });\n\n rules.push(\"\" + selector + _block2);\n break;\n }\n // Polyfill for draft spec\n // https://drafts.csswg.org/css-scrollbars-1/\n\n case 'scrollbarWidth':\n {\n if (value === 'none') {\n rules.push(selector + \"::-webkit-scrollbar{display:none}\");\n }\n\n var _block5 = createDeclarationBlock({\n scrollbarWidth: value\n });\n\n rules.push(\"\" + selector + _block5);\n break;\n }\n\n default:\n {\n var _block6 = createDeclarationBlock({\n [property]: value\n });\n\n rules.push(\"\" + selector + _block6);\n break;\n }\n }\n\n return rules;\n}\n/**\n * Creates a CSS declaration block from a StyleSheet object.\n */\n\n\nfunction createDeclarationBlock(style) {\n var domStyle = prefixStyles(createReactDOMStyle(style));\n var declarationsString = Object.keys(domStyle).map(property => {\n var value = domStyle[property];\n var prop = hyphenateStyleName(property); // The prefixer may return an array of values:\n // { display: [ '-webkit-flex', 'flex' ] }\n // to represent \"fallback\" declarations\n // { display: -webkit-flex; display: flex; }\n\n if (Array.isArray(value)) {\n return value.map(v => prop + \":\" + v).join(';');\n } else {\n return prop + \":\" + value;\n }\n }) // Once properties are hyphenated, this will put the vendor\n // prefixed and short-form properties first in the list.\n .sort().join(';');\n return \"{\" + declarationsString + \";}\";\n}\n/**\n * An identifier is associated with a unique set of styles.\n */\n\n\nfunction createIdentifier(prefix, name, value) {\n var hashedString = hash(name + stringifyValueWithProperty(value, name));\n return process.env.NODE_ENV !== 'production' ? prefix + \"-\" + name + \"-\" + hashedString : prefix + \"-\" + hashedString;\n}\n/**\n * Create individual CSS keyframes rules.\n */\n\n\nfunction createKeyframes(keyframes) {\n var prefixes = ['-webkit-', ''];\n var identifier = createIdentifier('r', 'animation', keyframes);\n var steps = '{' + Object.keys(keyframes).map(stepName => {\n var rule = keyframes[stepName];\n var block = createDeclarationBlock(rule);\n return \"\" + stepName + block;\n }).join('') + '}';\n var rules = prefixes.map(prefix => {\n return \"@\" + prefix + \"keyframes \" + identifier + steps;\n });\n return [identifier, rules];\n}\n/**\n * Create CSS keyframes rules and names from a StyleSheet keyframes object.\n */\n\n\nfunction processKeyframesValue(keyframesValue) {\n if (typeof keyframesValue === 'number') {\n throw new Error(\"Invalid CSS keyframes type: \" + typeof keyframesValue);\n }\n\n var animationNames = [];\n var rules = [];\n var value = Array.isArray(keyframesValue) ? keyframesValue : [keyframesValue];\n value.forEach(keyframes => {\n if (typeof keyframes === 'string') {\n // Support external animation libraries (identifiers only)\n animationNames.push(keyframes);\n } else {\n // Create rules for each of the keyframes\n var _createKeyframes = createKeyframes(keyframes),\n identifier = _createKeyframes[0],\n keyframesRules = _createKeyframes[1];\n\n animationNames.push(identifier);\n rules.push(...keyframesRules);\n }\n });\n return [animationNames, rules];\n}","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\n\n/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { atomic, classic, inline } from './compiler';\nimport { createSheet } from './dom';\nimport { localizeStyle } from 'styleq/transform-localize-style';\nimport { preprocess } from './preprocess';\nimport { styleq } from 'styleq';\nimport { validate } from './validate';\nimport canUseDOM from '../../modules/canUseDom';\nvar staticStyleMap = new WeakMap();\nvar sheet = createSheet();\n\nfunction customStyleq(styles, isRTL) {\n return styleq.factory({\n transform(style) {\n var compiledStyle = staticStyleMap.get(style);\n\n if (compiledStyle != null) {\n return localizeStyle(compiledStyle, isRTL);\n }\n\n return style;\n }\n\n })(styles);\n}\n\nfunction insertRules(compiledOrderedRules) {\n compiledOrderedRules.forEach(_ref => {\n var rules = _ref[0],\n order = _ref[1];\n\n if (sheet != null) {\n rules.forEach(rule => {\n sheet.insert(rule, order);\n });\n }\n });\n}\n\nfunction compileAndInsertAtomic(style) {\n var _atomic = atomic(preprocess(style)),\n compiledStyle = _atomic[0],\n compiledOrderedRules = _atomic[1];\n\n insertRules(compiledOrderedRules);\n return compiledStyle;\n}\n\nfunction compileAndInsertReset(style, key) {\n var _classic = classic(style, key),\n compiledStyle = _classic[0],\n compiledOrderedRules = _classic[1];\n\n insertRules(compiledOrderedRules);\n return compiledStyle;\n}\n/* ----- API ----- */\n\n\nvar absoluteFillObject = {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n};\nvar absoluteFill = create({\n x: _objectSpread({}, absoluteFillObject)\n}).x;\n/**\n * create\n */\n\nfunction create(styles) {\n Object.keys(styles).forEach(key => {\n var styleObj = styles[key]; // Only compile at runtime if the style is not already compiled\n\n if (styleObj != null && styleObj.$$css !== true) {\n var compiledStyles;\n\n if (key.indexOf('$raw') > -1) {\n compiledStyles = compileAndInsertReset(styleObj, key.split('$raw')[0]);\n } else {\n if (process.env.NODE_ENV !== 'production') {\n validate(styleObj);\n styles[key] = Object.freeze(styleObj);\n }\n\n compiledStyles = compileAndInsertAtomic(styleObj);\n }\n\n staticStyleMap.set(styleObj, compiledStyles);\n }\n });\n return styles;\n}\n/**\n * compose\n */\n\n\nfunction compose(style1, style2) {\n if (process.env.NODE_ENV !== 'production') {\n /* eslint-disable prefer-rest-params */\n var len = arguments.length;\n\n if (len > 2) {\n var readableStyles = [...arguments].map(a => flatten(a));\n throw new Error(\"StyleSheet.compose() only accepts 2 arguments, received \" + len + \": \" + JSON.stringify(readableStyles));\n }\n /* eslint-enable prefer-rest-params */\n\n }\n\n if (style1 && style2) {\n return [style1, style2];\n } else {\n return style1 || style2;\n }\n}\n/**\n * flatten\n */\n\n\nfunction flatten() {\n for (var _len = arguments.length, styles = new Array(_len), _key = 0; _key < _len; _key++) {\n styles[_key] = arguments[_key];\n }\n\n var flatArray = styles.flat(Infinity);\n var result = {};\n\n for (var i = 0; i < flatArray.length; i++) {\n var style = flatArray[i];\n\n if (style != null && typeof style === 'object') {\n // $FlowFixMe\n Object.assign(result, style);\n }\n }\n\n return result;\n}\n/**\n * getSheet\n */\n\n\nfunction getSheet() {\n return {\n id: sheet.id,\n textContent: sheet.getTextContent()\n };\n}\n/**\n * resolve\n */\n\n\nfunction StyleSheet(styles, options) {\n var isRTL = options != null && options.writingDirection === 'rtl';\n var styleProps = customStyleq(styles, isRTL);\n\n if (Array.isArray(styleProps) && styleProps[1] != null) {\n styleProps[1] = inline(preprocess(styleProps[1]), isRTL);\n }\n\n return styleProps;\n}\n\nStyleSheet.absoluteFill = absoluteFill;\nStyleSheet.absoluteFillObject = absoluteFillObject;\nStyleSheet.create = create;\nStyleSheet.compose = compose;\nStyleSheet.flatten = flatten;\nStyleSheet.getSheet = getSheet; // `hairlineWidth` is not implemented using screen density as browsers may\n// round sub-pixel values down to `0`, causing the line not to be rendered.\n\nStyleSheet.hairlineWidth = 1;\n\nif (canUseDOM && window.__REACT_DEVTOOLS_GLOBAL_HOOK__) {\n window.__REACT_DEVTOOLS_GLOBAL_HOOK__.resolveRNStyle = StyleSheet.flatten;\n}\n\nvar stylesheet = StyleSheet;\nexport default stylesheet;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport normalizeColor from './compiler/normalizeColor';\nimport normalizeValueWithProperty from './compiler/normalizeValueWithProperty';\nvar emptyObject = {};\n/**\n * Shadows\n */\n\nvar defaultOffset = {\n height: 0,\n width: 0\n};\nexport var createBoxShadowValue = style => {\n var shadowColor = style.shadowColor,\n shadowOffset = style.shadowOffset,\n shadowOpacity = style.shadowOpacity,\n shadowRadius = style.shadowRadius;\n\n var _ref = shadowOffset || defaultOffset,\n height = _ref.height,\n width = _ref.width;\n\n var offsetX = normalizeValueWithProperty(width);\n var offsetY = normalizeValueWithProperty(height);\n var blurRadius = normalizeValueWithProperty(shadowRadius || 0);\n var color = normalizeColor(shadowColor || 'black', shadowOpacity);\n\n if (color != null && offsetX != null && offsetY != null && blurRadius != null) {\n return offsetX + \" \" + offsetY + \" \" + blurRadius + \" \" + color;\n }\n};\nexport var createTextShadowValue = style => {\n var textShadowColor = style.textShadowColor,\n textShadowOffset = style.textShadowOffset,\n textShadowRadius = style.textShadowRadius;\n\n var _ref2 = textShadowOffset || defaultOffset,\n height = _ref2.height,\n width = _ref2.width;\n\n var radius = textShadowRadius || 0;\n var offsetX = normalizeValueWithProperty(width);\n var offsetY = normalizeValueWithProperty(height);\n var blurRadius = normalizeValueWithProperty(radius);\n var color = normalizeValueWithProperty(textShadowColor, 'textShadowColor');\n\n if (color && (height !== 0 || width !== 0 || radius !== 0) && offsetX != null && offsetY != null && blurRadius != null) {\n return offsetX + \" \" + offsetY + \" \" + blurRadius + \" \" + color;\n }\n};\n/**\n * Preprocess styles\n */\n\nexport var preprocess = originalStyle => {\n var style = originalStyle || emptyObject;\n var nextStyle = {};\n\n for (var originalProp in style) {\n var originalValue = style[originalProp];\n var prop = originalProp;\n var value = originalValue;\n\n if (!Object.prototype.hasOwnProperty.call(style, originalProp) || originalValue == null) {\n continue;\n } // Convert shadow styles\n\n\n if (prop === 'shadowColor' || prop === 'shadowOffset' || prop === 'shadowOpacity' || prop === 'shadowRadius') {\n var boxShadowValue = createBoxShadowValue(style);\n\n if (boxShadowValue != null && nextStyle.boxShadow == null) {\n var boxShadow = style.boxShadow;\n prop = 'boxShadow';\n value = boxShadow ? boxShadow + \", \" + boxShadowValue : boxShadowValue;\n } else {\n continue;\n }\n } // Convert text shadow styles\n\n\n if (prop === 'textShadowColor' || prop === 'textShadowOffset' || prop === 'textShadowRadius') {\n var textShadowValue = createTextShadowValue(style);\n\n if (textShadowValue != null && nextStyle.textShadow == null) {\n var textShadow = style.textShadow;\n prop = 'textShadow';\n value = textShadow ? textShadow + \", \" + textShadowValue : textShadowValue;\n } else {\n continue;\n }\n }\n\n nextStyle[prop] = value;\n } // $FlowIgnore\n\n\n return nextStyle;\n};\nexport default preprocess;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar CSS_UNIT_RE = /^[+-]?\\d*(?:\\.\\d+)?(?:[Ee][+-]?\\d+)?(%|\\w*)/;\n\nvar getUnit = str => str.match(CSS_UNIT_RE)[1];\n\nvar isNumeric = n => {\n return !isNaN(parseFloat(n)) && isFinite(n);\n};\n\nvar multiplyStyleLengthValue = (value, multiple) => {\n if (typeof value === 'string') {\n var number = parseFloat(value) * multiple;\n var unit = getUnit(value);\n return \"\" + number + unit;\n } else if (isNumeric(value)) {\n return value * multiple;\n }\n};\n\nexport default multiplyStyleLengthValue;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"accessibilityLabel\", \"activeThumbColor\", \"activeTrackColor\", \"disabled\", \"onValueChange\", \"style\", \"thumbColor\", \"trackColor\", \"value\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport multiplyStyleLengthValue from '../../modules/multiplyStyleLengthValue';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar emptyObject = {};\nvar thumbDefaultBoxShadow = '0px 1px 3px rgba(0,0,0,0.5)';\nvar thumbFocusedBoxShadow = thumbDefaultBoxShadow + \", 0 0 0 10px rgba(0,0,0,0.1)\";\nvar defaultActiveTrackColor = '#A3D3CF';\nvar defaultTrackColor = '#939393';\nvar defaultDisabledTrackColor = '#D5D5D5';\nvar defaultActiveThumbColor = '#009688';\nvar defaultThumbColor = '#FAFAFA';\nvar defaultDisabledThumbColor = '#BDBDBD';\nvar Switch = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var accessibilityLabel = props.accessibilityLabel,\n activeThumbColor = props.activeThumbColor,\n activeTrackColor = props.activeTrackColor,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled,\n onValueChange = props.onValueChange,\n _props$style = props.style,\n style = _props$style === void 0 ? emptyObject : _props$style,\n thumbColor = props.thumbColor,\n trackColor = props.trackColor,\n _props$value = props.value,\n value = _props$value === void 0 ? false : _props$value,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n var thumbRef = React.useRef(null);\n\n function handleChange(event) {\n if (onValueChange != null) {\n onValueChange(event.nativeEvent.target.checked);\n }\n }\n\n function handleFocusState(event) {\n var isFocused = event.nativeEvent.type === 'focus';\n var boxShadow = isFocused ? thumbFocusedBoxShadow : thumbDefaultBoxShadow;\n\n if (thumbRef.current != null) {\n thumbRef.current.style.boxShadow = boxShadow;\n }\n }\n\n var _StyleSheet$flatten = StyleSheet.flatten(style),\n styleHeight = _StyleSheet$flatten.height,\n styleWidth = _StyleSheet$flatten.width;\n\n var height = styleHeight || '20px';\n var minWidth = multiplyStyleLengthValue(height, 2);\n var width = styleWidth > minWidth ? styleWidth : minWidth;\n var trackBorderRadius = multiplyStyleLengthValue(height, 0.5);\n\n var trackCurrentColor = function () {\n if (value === true) {\n if (trackColor != null && typeof trackColor === 'object') {\n return trackColor.true;\n } else {\n return activeTrackColor !== null && activeTrackColor !== void 0 ? activeTrackColor : defaultActiveTrackColor;\n }\n } else {\n if (trackColor != null && typeof trackColor === 'object') {\n return trackColor.false;\n } else {\n return trackColor !== null && trackColor !== void 0 ? trackColor : defaultTrackColor;\n }\n }\n }();\n\n var thumbCurrentColor = value ? activeThumbColor !== null && activeThumbColor !== void 0 ? activeThumbColor : defaultActiveThumbColor : thumbColor !== null && thumbColor !== void 0 ? thumbColor : defaultThumbColor;\n var thumbHeight = height;\n var thumbWidth = thumbHeight;\n var rootStyle = [styles.root, style, disabled && styles.cursorDefault, {\n height,\n width\n }];\n\n var disabledTrackColor = function () {\n if (value === true) {\n if (typeof activeTrackColor === 'string' && activeTrackColor != null || typeof trackColor === 'object' && trackColor != null && trackColor.true) {\n return trackCurrentColor;\n } else {\n return defaultDisabledTrackColor;\n }\n } else {\n if (typeof trackColor === 'string' && trackColor != null || typeof trackColor === 'object' && trackColor != null && trackColor.false) {\n return trackCurrentColor;\n } else {\n return defaultDisabledTrackColor;\n }\n }\n }();\n\n var disabledThumbColor = function () {\n if (value === true) {\n if (activeThumbColor == null) {\n return defaultDisabledThumbColor;\n } else {\n return thumbCurrentColor;\n }\n } else {\n if (thumbColor == null) {\n return defaultDisabledThumbColor;\n } else {\n return thumbCurrentColor;\n }\n }\n }();\n\n var trackStyle = [styles.track, {\n backgroundColor: disabled ? disabledTrackColor : trackCurrentColor,\n borderRadius: trackBorderRadius\n }];\n var thumbStyle = [styles.thumb, value && styles.thumbActive, {\n backgroundColor: disabled ? disabledThumbColor : thumbCurrentColor,\n height: thumbHeight,\n marginStart: value ? multiplyStyleLengthValue(thumbWidth, -1) : 0,\n width: thumbWidth\n }];\n var nativeControl = createElement('input', {\n accessibilityLabel,\n checked: value,\n disabled: disabled,\n onBlur: handleFocusState,\n onChange: handleChange,\n onFocus: handleFocusState,\n ref: forwardedRef,\n style: [styles.nativeControl, styles.cursorInherit],\n type: 'checkbox',\n role: 'switch'\n });\n return /*#__PURE__*/React.createElement(View, _extends({}, other, {\n style: rootStyle\n }), /*#__PURE__*/React.createElement(View, {\n style: trackStyle\n }), /*#__PURE__*/React.createElement(View, {\n ref: thumbRef,\n style: thumbStyle\n }), nativeControl);\n});\nSwitch.displayName = 'Switch';\nvar styles = StyleSheet.create({\n root: {\n cursor: 'pointer',\n userSelect: 'none'\n },\n cursorDefault: {\n cursor: 'default'\n },\n cursorInherit: {\n cursor: 'inherit'\n },\n track: _objectSpread(_objectSpread({\n forcedColorAdjust: 'none'\n }, StyleSheet.absoluteFillObject), {}, {\n height: '70%',\n margin: 'auto',\n transitionDuration: '0.1s',\n width: '100%'\n }),\n thumb: {\n forcedColorAdjust: 'none',\n alignSelf: 'flex-start',\n borderRadius: '100%',\n boxShadow: thumbDefaultBoxShadow,\n start: '0%',\n transform: [{\n translateZ: 0\n }],\n transitionDuration: '0.1s'\n },\n thumbActive: {\n start: '100%'\n },\n nativeControl: _objectSpread(_objectSpread({}, StyleSheet.absoluteFillObject), {}, {\n height: '100%',\n margin: 0,\n appearance: 'none',\n padding: 0,\n width: '100%'\n })\n});\nexport default Switch;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { createContext } from 'react';\nvar TextAncestorContext = /*#__PURE__*/createContext(false);\nexport default TextAncestorContext;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"hrefAttrs\", \"numberOfLines\", \"onClick\", \"onLayout\", \"onPress\", \"onMoveShouldSetResponder\", \"onMoveShouldSetResponderCapture\", \"onResponderEnd\", \"onResponderGrant\", \"onResponderMove\", \"onResponderReject\", \"onResponderRelease\", \"onResponderStart\", \"onResponderTerminate\", \"onResponderTerminationRequest\", \"onScrollShouldSetResponder\", \"onScrollShouldSetResponderCapture\", \"onSelectionChangeShouldSetResponder\", \"onSelectionChangeShouldSetResponderCapture\", \"onStartShouldSetResponder\", \"onStartShouldSetResponderCapture\", \"selectable\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport * as forwardedProps from '../../modules/forwardedProps';\nimport pick from '../../modules/pick';\nimport useElementLayout from '../../modules/useElementLayout';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePlatformMethods from '../../modules/usePlatformMethods';\nimport useResponderEvents from '../../modules/useResponderEvents';\nimport StyleSheet from '../StyleSheet';\nimport TextAncestorContext from './TextAncestorContext';\nimport { useLocaleContext, getLocaleDirection } from '../../modules/useLocale';\nvar forwardPropsList = Object.assign({}, forwardedProps.defaultProps, forwardedProps.accessibilityProps, forwardedProps.clickProps, forwardedProps.focusProps, forwardedProps.keyboardProps, forwardedProps.mouseProps, forwardedProps.touchProps, forwardedProps.styleProps, {\n href: true,\n lang: true,\n pointerEvents: true\n});\n\nvar pickProps = props => pick(props, forwardPropsList);\n\nvar Text = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var hrefAttrs = props.hrefAttrs,\n numberOfLines = props.numberOfLines,\n onClick = props.onClick,\n onLayout = props.onLayout,\n onPress = props.onPress,\n onMoveShouldSetResponder = props.onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture = props.onMoveShouldSetResponderCapture,\n onResponderEnd = props.onResponderEnd,\n onResponderGrant = props.onResponderGrant,\n onResponderMove = props.onResponderMove,\n onResponderReject = props.onResponderReject,\n onResponderRelease = props.onResponderRelease,\n onResponderStart = props.onResponderStart,\n onResponderTerminate = props.onResponderTerminate,\n onResponderTerminationRequest = props.onResponderTerminationRequest,\n onScrollShouldSetResponder = props.onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture = props.onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder = props.onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture = props.onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder = props.onStartShouldSetResponder,\n onStartShouldSetResponderCapture = props.onStartShouldSetResponderCapture,\n selectable = props.selectable,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n\n var hasTextAncestor = React.useContext(TextAncestorContext);\n var hostRef = React.useRef(null);\n\n var _useLocaleContext = useLocaleContext(),\n contextDirection = _useLocaleContext.direction;\n\n useElementLayout(hostRef, onLayout);\n useResponderEvents(hostRef, {\n onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture,\n onResponderEnd,\n onResponderGrant,\n onResponderMove,\n onResponderReject,\n onResponderRelease,\n onResponderStart,\n onResponderTerminate,\n onResponderTerminationRequest,\n onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder,\n onStartShouldSetResponderCapture\n });\n var handleClick = React.useCallback(e => {\n if (onClick != null) {\n onClick(e);\n } else if (onPress != null) {\n e.stopPropagation();\n onPress(e);\n }\n }, [onClick, onPress]);\n var component = hasTextAncestor ? 'span' : 'div';\n var langDirection = props.lang != null ? getLocaleDirection(props.lang) : null;\n var componentDirection = props.dir || langDirection;\n var writingDirection = componentDirection || contextDirection;\n var supportedProps = pickProps(rest);\n supportedProps.dir = componentDirection; // 'auto' by default allows browsers to infer writing direction (root elements only)\n\n if (!hasTextAncestor) {\n supportedProps.dir = componentDirection != null ? componentDirection : 'auto';\n }\n\n if (onClick || onPress) {\n supportedProps.onClick = handleClick;\n }\n\n supportedProps.style = [numberOfLines != null && numberOfLines > 1 && {\n WebkitLineClamp: numberOfLines\n }, hasTextAncestor === true ? styles.textHasAncestor$raw : styles.text$raw, numberOfLines === 1 && styles.textOneLine, numberOfLines != null && numberOfLines > 1 && styles.textMultiLine, props.style, selectable === true && styles.selectable, selectable === false && styles.notSelectable, onPress && styles.pressable];\n\n if (props.href != null) {\n component = 'a';\n\n if (hrefAttrs != null) {\n var download = hrefAttrs.download,\n rel = hrefAttrs.rel,\n target = hrefAttrs.target;\n\n if (download != null) {\n supportedProps.download = download;\n }\n\n if (rel != null) {\n supportedProps.rel = rel;\n }\n\n if (typeof target === 'string') {\n supportedProps.target = target.charAt(0) !== '_' ? '_' + target : target;\n }\n }\n }\n\n var platformMethodsRef = usePlatformMethods(supportedProps);\n var setRef = useMergeRefs(hostRef, platformMethodsRef, forwardedRef);\n supportedProps.ref = setRef;\n var element = createElement(component, supportedProps, {\n writingDirection\n });\n return hasTextAncestor ? element : /*#__PURE__*/React.createElement(TextAncestorContext.Provider, {\n value: true\n }, element);\n});\nText.displayName = 'Text';\nvar textStyle = {\n backgroundColor: 'transparent',\n border: '0 solid black',\n boxSizing: 'border-box',\n color: 'black',\n display: 'inline',\n font: '14px System',\n listStyle: 'none',\n margin: 0,\n padding: 0,\n textAlign: 'inherit',\n textDecoration: 'none',\n whiteSpace: 'pre-wrap',\n wordWrap: 'break-word'\n};\nvar styles = StyleSheet.create({\n text$raw: textStyle,\n textHasAncestor$raw: _objectSpread(_objectSpread({}, textStyle), {}, {\n color: 'inherit',\n font: 'inherit',\n whiteSpace: 'inherit'\n }),\n textOneLine: {\n maxWidth: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n wordWrap: 'normal'\n },\n // See #13\n textMultiLine: {\n display: '-webkit-box',\n maxWidth: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n WebkitBoxOrient: 'vertical'\n },\n notSelectable: {\n userSelect: 'none'\n },\n selectable: {\n userSelect: 'text'\n },\n pressable: {\n cursor: 'pointer'\n }\n});\nexport default Text;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport * as forwardedProps from '../../modules/forwardedProps';\nimport pick from '../../modules/pick';\nimport useElementLayout from '../../modules/useElementLayout';\nimport useLayoutEffect from '../../modules/useLayoutEffect';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePlatformMethods from '../../modules/usePlatformMethods';\nimport useResponderEvents from '../../modules/useResponderEvents';\nimport { getLocaleDirection, useLocaleContext } from '../../modules/useLocale';\nimport StyleSheet from '../StyleSheet';\nimport TextInputState from '../../modules/TextInputState';\n/**\n * Determines whether a 'selection' prop differs from a node's existing\n * selection state.\n */\n\nvar isSelectionStale = (node, selection) => {\n var selectionEnd = node.selectionEnd,\n selectionStart = node.selectionStart;\n var start = selection.start,\n end = selection.end;\n return start !== selectionStart || end !== selectionEnd;\n};\n/**\n * Certain input types do no support 'selectSelectionRange' and will throw an\n * error.\n */\n\n\nvar setSelection = (node, selection) => {\n if (isSelectionStale(node, selection)) {\n var start = selection.start,\n end = selection.end;\n\n try {\n node.setSelectionRange(start, end || start);\n } catch (e) {}\n }\n};\n\nvar forwardPropsList = Object.assign({}, forwardedProps.defaultProps, forwardedProps.accessibilityProps, forwardedProps.clickProps, forwardedProps.focusProps, forwardedProps.keyboardProps, forwardedProps.mouseProps, forwardedProps.touchProps, forwardedProps.styleProps, {\n autoCapitalize: true,\n autoComplete: true,\n autoCorrect: true,\n autoFocus: true,\n defaultValue: true,\n disabled: true,\n lang: true,\n maxLength: true,\n onChange: true,\n onScroll: true,\n placeholder: true,\n pointerEvents: true,\n readOnly: true,\n rows: true,\n spellCheck: true,\n value: true,\n type: true\n});\n\nvar pickProps = props => pick(props, forwardPropsList); // If an Input Method Editor is processing key input, the 'keyCode' is 229.\n// https://www.w3.org/TR/uievents/#determine-keydown-keyup-keyCode\n\n\nfunction isEventComposing(nativeEvent) {\n return nativeEvent.isComposing || nativeEvent.keyCode === 229;\n}\n\nvar focusTimeout = null;\nvar TextInput = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var _props$autoCapitalize = props.autoCapitalize,\n autoCapitalize = _props$autoCapitalize === void 0 ? 'sentences' : _props$autoCapitalize,\n autoComplete = props.autoComplete,\n autoCompleteType = props.autoCompleteType,\n _props$autoCorrect = props.autoCorrect,\n autoCorrect = _props$autoCorrect === void 0 ? true : _props$autoCorrect,\n blurOnSubmit = props.blurOnSubmit,\n clearTextOnFocus = props.clearTextOnFocus,\n dir = props.dir,\n _props$editable = props.editable,\n editable = _props$editable === void 0 ? true : _props$editable,\n _props$keyboardType = props.keyboardType,\n keyboardType = _props$keyboardType === void 0 ? 'default' : _props$keyboardType,\n _props$multiline = props.multiline,\n multiline = _props$multiline === void 0 ? false : _props$multiline,\n _props$numberOfLines = props.numberOfLines,\n numberOfLines = _props$numberOfLines === void 0 ? 1 : _props$numberOfLines,\n onBlur = props.onBlur,\n onChange = props.onChange,\n onChangeText = props.onChangeText,\n onContentSizeChange = props.onContentSizeChange,\n onFocus = props.onFocus,\n onKeyPress = props.onKeyPress,\n onLayout = props.onLayout,\n onMoveShouldSetResponder = props.onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture = props.onMoveShouldSetResponderCapture,\n onResponderEnd = props.onResponderEnd,\n onResponderGrant = props.onResponderGrant,\n onResponderMove = props.onResponderMove,\n onResponderReject = props.onResponderReject,\n onResponderRelease = props.onResponderRelease,\n onResponderStart = props.onResponderStart,\n onResponderTerminate = props.onResponderTerminate,\n onResponderTerminationRequest = props.onResponderTerminationRequest,\n onScrollShouldSetResponder = props.onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture = props.onScrollShouldSetResponderCapture,\n onSelectionChange = props.onSelectionChange,\n onSelectionChangeShouldSetResponder = props.onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture = props.onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder = props.onStartShouldSetResponder,\n onStartShouldSetResponderCapture = props.onStartShouldSetResponderCapture,\n onSubmitEditing = props.onSubmitEditing,\n placeholderTextColor = props.placeholderTextColor,\n returnKeyType = props.returnKeyType,\n _props$secureTextEntr = props.secureTextEntry,\n secureTextEntry = _props$secureTextEntr === void 0 ? false : _props$secureTextEntr,\n selection = props.selection,\n selectTextOnFocus = props.selectTextOnFocus,\n spellCheck = props.spellCheck;\n var type;\n var inputMode;\n\n switch (keyboardType) {\n case 'email-address':\n type = 'email';\n break;\n\n case 'number-pad':\n case 'numeric':\n inputMode = 'numeric';\n break;\n\n case 'decimal-pad':\n inputMode = 'decimal';\n break;\n\n case 'phone-pad':\n type = 'tel';\n break;\n\n case 'search':\n case 'web-search':\n type = 'search';\n break;\n\n case 'url':\n type = 'url';\n break;\n\n default:\n type = 'text';\n }\n\n if (secureTextEntry) {\n type = 'password';\n }\n\n var dimensions = React.useRef({\n height: null,\n width: null\n });\n var hostRef = React.useRef(null);\n var handleContentSizeChange = React.useCallback(hostNode => {\n if (multiline && onContentSizeChange && hostNode != null) {\n var newHeight = hostNode.scrollHeight;\n var newWidth = hostNode.scrollWidth;\n\n if (newHeight !== dimensions.current.height || newWidth !== dimensions.current.width) {\n dimensions.current.height = newHeight;\n dimensions.current.width = newWidth;\n onContentSizeChange({\n nativeEvent: {\n contentSize: {\n height: dimensions.current.height,\n width: dimensions.current.width\n }\n }\n });\n }\n }\n }, [multiline, onContentSizeChange]);\n var imperativeRef = React.useMemo(() => hostNode => {\n // TextInput needs to add more methods to the hostNode in addition to those\n // added by `usePlatformMethods`. This is temporarily until an API like\n // `TextInput.clear(hostRef)` is added to React Native.\n if (hostNode != null) {\n hostNode.clear = function () {\n if (hostNode != null) {\n hostNode.value = '';\n }\n };\n\n hostNode.isFocused = function () {\n return hostNode != null && TextInputState.currentlyFocusedField() === hostNode;\n };\n\n handleContentSizeChange(hostNode);\n }\n }, [handleContentSizeChange]);\n\n function handleBlur(e) {\n TextInputState._currentlyFocusedNode = null;\n\n if (onBlur) {\n e.nativeEvent.text = e.target.value;\n onBlur(e);\n }\n }\n\n function handleChange(e) {\n var hostNode = e.target;\n var text = hostNode.value;\n e.nativeEvent.text = text;\n handleContentSizeChange(hostNode);\n\n if (onChange) {\n onChange(e);\n }\n\n if (onChangeText) {\n onChangeText(text);\n }\n }\n\n function handleFocus(e) {\n var hostNode = e.target;\n\n if (onFocus) {\n e.nativeEvent.text = hostNode.value;\n onFocus(e);\n }\n\n if (hostNode != null) {\n TextInputState._currentlyFocusedNode = hostNode;\n\n if (clearTextOnFocus) {\n hostNode.value = '';\n }\n\n if (selectTextOnFocus) {\n // Safari requires selection to occur in a setTimeout\n if (focusTimeout != null) {\n clearTimeout(focusTimeout);\n }\n\n focusTimeout = setTimeout(() => {\n if (hostNode != null) {\n hostNode.select();\n }\n }, 0);\n }\n }\n }\n\n function handleKeyDown(e) {\n var hostNode = e.target; // Prevent key events bubbling (see #612)\n\n e.stopPropagation();\n var blurOnSubmitDefault = !multiline;\n var shouldBlurOnSubmit = blurOnSubmit == null ? blurOnSubmitDefault : blurOnSubmit;\n var nativeEvent = e.nativeEvent;\n var isComposing = isEventComposing(nativeEvent);\n\n if (onKeyPress) {\n onKeyPress(e);\n }\n\n if (e.key === 'Enter' && !e.shiftKey && // Do not call submit if composition is occuring.\n !isComposing && !e.isDefaultPrevented()) {\n if ((blurOnSubmit || !multiline) && onSubmitEditing) {\n // prevent \"Enter\" from inserting a newline or submitting a form\n e.preventDefault();\n nativeEvent.text = e.target.value;\n onSubmitEditing(e);\n }\n\n if (shouldBlurOnSubmit && hostNode != null) {\n setTimeout(() => hostNode.blur(), 0);\n }\n }\n }\n\n function handleSelectionChange(e) {\n if (onSelectionChange) {\n try {\n var node = e.target;\n var selectionStart = node.selectionStart,\n selectionEnd = node.selectionEnd;\n e.nativeEvent.selection = {\n start: selectionStart,\n end: selectionEnd\n };\n e.nativeEvent.text = e.target.value;\n onSelectionChange(e);\n } catch (e) {}\n }\n }\n\n useLayoutEffect(() => {\n var node = hostRef.current;\n\n if (node != null && selection != null) {\n setSelection(node, selection);\n }\n\n if (document.activeElement === node) {\n TextInputState._currentlyFocusedNode = node;\n }\n }, [hostRef, selection]);\n var component = multiline ? 'textarea' : 'input';\n useElementLayout(hostRef, onLayout);\n useResponderEvents(hostRef, {\n onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture,\n onResponderEnd,\n onResponderGrant,\n onResponderMove,\n onResponderReject,\n onResponderRelease,\n onResponderStart,\n onResponderTerminate,\n onResponderTerminationRequest,\n onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder,\n onStartShouldSetResponderCapture\n });\n\n var _useLocaleContext = useLocaleContext(),\n contextDirection = _useLocaleContext.direction;\n\n var supportedProps = pickProps(props);\n supportedProps.autoCapitalize = autoCapitalize;\n supportedProps.autoComplete = autoComplete || autoCompleteType || 'on';\n supportedProps.autoCorrect = autoCorrect ? 'on' : 'off'; // 'auto' by default allows browsers to infer writing direction\n\n supportedProps.dir = dir !== undefined ? dir : 'auto';\n supportedProps.enterKeyHint = returnKeyType;\n supportedProps.inputMode = inputMode;\n supportedProps.onBlur = handleBlur;\n supportedProps.onChange = handleChange;\n supportedProps.onFocus = handleFocus;\n supportedProps.onKeyDown = handleKeyDown;\n supportedProps.onSelect = handleSelectionChange;\n supportedProps.readOnly = !editable;\n supportedProps.rows = multiline ? numberOfLines : undefined;\n supportedProps.spellCheck = spellCheck != null ? spellCheck : autoCorrect;\n supportedProps.style = [{\n '--placeholderTextColor': placeholderTextColor\n }, styles.textinput$raw, styles.placeholder, props.style];\n supportedProps.type = multiline ? undefined : type;\n var platformMethodsRef = usePlatformMethods(supportedProps);\n var setRef = useMergeRefs(hostRef, platformMethodsRef, imperativeRef, forwardedRef);\n supportedProps.ref = setRef;\n var langDirection = props.lang != null ? getLocaleDirection(props.lang) : null;\n var componentDirection = props.dir || langDirection;\n var writingDirection = componentDirection || contextDirection;\n var element = createElement(component, supportedProps, {\n writingDirection\n });\n return element;\n});\nTextInput.displayName = 'TextInput'; // $FlowFixMe\n\nTextInput.State = TextInputState;\nvar styles = StyleSheet.create({\n textinput$raw: {\n MozAppearance: 'textfield',\n WebkitAppearance: 'none',\n backgroundColor: 'transparent',\n border: '0 solid black',\n borderRadius: 0,\n boxSizing: 'border-box',\n font: '14px System',\n margin: 0,\n padding: 0,\n resize: 'none'\n },\n placeholder: {\n placeholderTextColor: 'var(--placeholderTextColor)'\n }\n});\nexport default TextInput;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"activeOpacity\", \"children\", \"delayPressIn\", \"delayPressOut\", \"delayLongPress\", \"disabled\", \"focusable\", \"onHideUnderlay\", \"onLongPress\", \"onPress\", \"onPressIn\", \"onPressOut\", \"onShowUnderlay\", \"rejectResponderTermination\", \"style\", \"testOnly_pressed\", \"underlayColor\"];\nimport * as React from 'react';\nimport { useCallback, useMemo, useState, useRef } from 'react';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePressEvents from '../../modules/usePressEvents';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\n\nfunction createExtraStyles(activeOpacity, underlayColor) {\n return {\n child: {\n opacity: activeOpacity !== null && activeOpacity !== void 0 ? activeOpacity : 0.85\n },\n underlay: {\n backgroundColor: underlayColor === undefined ? 'black' : underlayColor\n }\n };\n}\n\nfunction hasPressHandler(props) {\n return props.onPress != null || props.onPressIn != null || props.onPressOut != null || props.onLongPress != null;\n}\n/**\n * A wrapper for making views respond properly to touches.\n * On press down, the opacity of the wrapped view is decreased, which allows\n * the underlay color to show through, darkening or tinting the view.\n *\n * The underlay comes from wrapping the child in a new View, which can affect\n * layout, and sometimes cause unwanted visual artifacts if not used correctly,\n * for example if the backgroundColor of the wrapped view isn't explicitly set\n * to an opaque color.\n *\n * TouchableHighlight must have one child (not zero or more than one).\n * If you wish to have several child components, wrap them in a View.\n */\n\n\nfunction TouchableHighlight(props, forwardedRef) {\n var activeOpacity = props.activeOpacity,\n children = props.children,\n delayPressIn = props.delayPressIn,\n delayPressOut = props.delayPressOut,\n delayLongPress = props.delayLongPress,\n disabled = props.disabled,\n focusable = props.focusable,\n onHideUnderlay = props.onHideUnderlay,\n onLongPress = props.onLongPress,\n onPress = props.onPress,\n onPressIn = props.onPressIn,\n onPressOut = props.onPressOut,\n onShowUnderlay = props.onShowUnderlay,\n rejectResponderTermination = props.rejectResponderTermination,\n style = props.style,\n testOnly_pressed = props.testOnly_pressed,\n underlayColor = props.underlayColor,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n\n var hostRef = useRef(null);\n var setRef = useMergeRefs(forwardedRef, hostRef);\n\n var _useState = useState(testOnly_pressed === true ? createExtraStyles(activeOpacity, underlayColor) : null),\n extraStyles = _useState[0],\n setExtraStyles = _useState[1];\n\n var showUnderlay = useCallback(() => {\n if (!hasPressHandler(props)) {\n return;\n }\n\n setExtraStyles(createExtraStyles(activeOpacity, underlayColor));\n\n if (onShowUnderlay != null) {\n onShowUnderlay();\n }\n }, [activeOpacity, onShowUnderlay, props, underlayColor]);\n var hideUnderlay = useCallback(() => {\n if (testOnly_pressed === true) {\n return;\n }\n\n if (hasPressHandler(props)) {\n setExtraStyles(null);\n\n if (onHideUnderlay != null) {\n onHideUnderlay();\n }\n }\n }, [onHideUnderlay, props, testOnly_pressed]);\n var pressConfig = useMemo(() => ({\n cancelable: !rejectResponderTermination,\n disabled,\n delayLongPress,\n delayPressStart: delayPressIn,\n delayPressEnd: delayPressOut,\n onLongPress,\n onPress,\n\n onPressStart(event) {\n showUnderlay();\n\n if (onPressIn != null) {\n onPressIn(event);\n }\n },\n\n onPressEnd(event) {\n hideUnderlay();\n\n if (onPressOut != null) {\n onPressOut(event);\n }\n }\n\n }), [delayLongPress, delayPressIn, delayPressOut, disabled, onLongPress, onPress, onPressIn, onPressOut, rejectResponderTermination, showUnderlay, hideUnderlay]);\n var pressEventHandlers = usePressEvents(hostRef, pressConfig);\n var child = React.Children.only(children);\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, pressEventHandlers, {\n accessibilityDisabled: disabled,\n focusable: !disabled && focusable !== false,\n pointerEvents: disabled ? 'none' : undefined,\n ref: setRef,\n style: [styles.root, style, !disabled && styles.actionable, extraStyles && extraStyles.underlay]\n }), /*#__PURE__*/React.cloneElement(child, {\n style: StyleSheet.compose(child.props.style, extraStyles && extraStyles.child)\n }));\n}\n\nvar styles = StyleSheet.create({\n root: {\n userSelect: 'none'\n },\n actionable: {\n cursor: 'pointer',\n touchAction: 'manipulation'\n }\n});\nvar MemoedTouchableHighlight = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(TouchableHighlight));\nMemoedTouchableHighlight.displayName = 'TouchableHighlight';\nexport default MemoedTouchableHighlight;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"activeOpacity\", \"delayPressIn\", \"delayPressOut\", \"delayLongPress\", \"disabled\", \"focusable\", \"onLongPress\", \"onPress\", \"onPressIn\", \"onPressOut\", \"rejectResponderTermination\", \"style\"];\nimport * as React from 'react';\nimport { useCallback, useMemo, useState, useRef } from 'react';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePressEvents from '../../modules/usePressEvents';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\n\n/**\n * A wrapper for making views respond properly to touches.\n * On press down, the opacity of the wrapped view is decreased, dimming it.\n */\nfunction TouchableOpacity(props, forwardedRef) {\n var activeOpacity = props.activeOpacity,\n delayPressIn = props.delayPressIn,\n delayPressOut = props.delayPressOut,\n delayLongPress = props.delayLongPress,\n disabled = props.disabled,\n focusable = props.focusable,\n onLongPress = props.onLongPress,\n onPress = props.onPress,\n onPressIn = props.onPressIn,\n onPressOut = props.onPressOut,\n rejectResponderTermination = props.rejectResponderTermination,\n style = props.style,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n\n var hostRef = useRef(null);\n var setRef = useMergeRefs(forwardedRef, hostRef);\n\n var _useState = useState('0s'),\n duration = _useState[0],\n setDuration = _useState[1];\n\n var _useState2 = useState(null),\n opacityOverride = _useState2[0],\n setOpacityOverride = _useState2[1];\n\n var setOpacityTo = useCallback((value, duration) => {\n setOpacityOverride(value);\n setDuration(duration ? duration / 1000 + \"s\" : '0s');\n }, [setOpacityOverride, setDuration]);\n var setOpacityActive = useCallback(duration => {\n setOpacityTo(activeOpacity !== null && activeOpacity !== void 0 ? activeOpacity : 0.2, duration);\n }, [activeOpacity, setOpacityTo]);\n var setOpacityInactive = useCallback(duration => {\n setOpacityTo(null, duration);\n }, [setOpacityTo]);\n var pressConfig = useMemo(() => ({\n cancelable: !rejectResponderTermination,\n disabled,\n delayLongPress,\n delayPressStart: delayPressIn,\n delayPressEnd: delayPressOut,\n onLongPress,\n onPress,\n\n onPressStart(event) {\n var isGrant = event.dispatchConfig != null ? event.dispatchConfig.registrationName === 'onResponderGrant' : event.type === 'keydown';\n setOpacityActive(isGrant ? 0 : 150);\n\n if (onPressIn != null) {\n onPressIn(event);\n }\n },\n\n onPressEnd(event) {\n setOpacityInactive(250);\n\n if (onPressOut != null) {\n onPressOut(event);\n }\n }\n\n }), [delayLongPress, delayPressIn, delayPressOut, disabled, onLongPress, onPress, onPressIn, onPressOut, rejectResponderTermination, setOpacityActive, setOpacityInactive]);\n var pressEventHandlers = usePressEvents(hostRef, pressConfig);\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, pressEventHandlers, {\n accessibilityDisabled: disabled,\n focusable: !disabled && focusable !== false,\n pointerEvents: disabled ? 'none' : undefined,\n ref: setRef,\n style: [styles.root, !disabled && styles.actionable, style, opacityOverride != null && {\n opacity: opacityOverride\n }, {\n transitionDuration: duration\n }]\n }));\n}\n\nvar styles = StyleSheet.create({\n root: {\n transitionProperty: 'opacity',\n transitionDuration: '0.15s',\n userSelect: 'none'\n },\n actionable: {\n cursor: 'pointer',\n touchAction: 'manipulation'\n }\n});\nvar MemoedTouchableOpacity = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(TouchableOpacity));\nMemoedTouchableOpacity.displayName = 'TouchableOpacity';\nexport default MemoedTouchableOpacity;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport * as React from 'react';\nimport { useMemo, useRef } from 'react';\nimport pick from '../../modules/pick';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePressEvents from '../../modules/usePressEvents';\nvar forwardPropsList = {\n accessibilityDisabled: true,\n accessibilityLabel: true,\n accessibilityLiveRegion: true,\n accessibilityRole: true,\n accessibilityState: true,\n accessibilityValue: true,\n children: true,\n disabled: true,\n focusable: true,\n nativeID: true,\n onBlur: true,\n onFocus: true,\n onLayout: true,\n testID: true\n};\n\nvar pickProps = props => pick(props, forwardPropsList);\n\nfunction TouchableWithoutFeedback(props, forwardedRef) {\n var delayPressIn = props.delayPressIn,\n delayPressOut = props.delayPressOut,\n delayLongPress = props.delayLongPress,\n disabled = props.disabled,\n focusable = props.focusable,\n onLongPress = props.onLongPress,\n onPress = props.onPress,\n onPressIn = props.onPressIn,\n onPressOut = props.onPressOut,\n rejectResponderTermination = props.rejectResponderTermination;\n var hostRef = useRef(null);\n var pressConfig = useMemo(() => ({\n cancelable: !rejectResponderTermination,\n disabled,\n delayLongPress,\n delayPressStart: delayPressIn,\n delayPressEnd: delayPressOut,\n onLongPress,\n onPress,\n onPressStart: onPressIn,\n onPressEnd: onPressOut\n }), [disabled, delayPressIn, delayPressOut, delayLongPress, onLongPress, onPress, onPressIn, onPressOut, rejectResponderTermination]);\n var pressEventHandlers = usePressEvents(hostRef, pressConfig);\n var element = React.Children.only(props.children);\n var children = [element.props.children];\n var supportedProps = pickProps(props);\n supportedProps.accessibilityDisabled = disabled;\n supportedProps.focusable = !disabled && focusable !== false;\n supportedProps.ref = useMergeRefs(forwardedRef, hostRef, element.ref);\n var elementProps = Object.assign(supportedProps, pressEventHandlers);\n return /*#__PURE__*/React.cloneElement(element, elementProps, ...children);\n}\n\nvar MemoedTouchableWithoutFeedback = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(TouchableWithoutFeedback));\nMemoedTouchableWithoutFeedback.displayName = 'TouchableWithoutFeedback';\nexport default MemoedTouchableWithoutFeedback;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar unitlessNumbers = {\n animationIterationCount: true,\n aspectRatio: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n flex: true,\n flexGrow: true,\n flexOrder: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n fontWeight: true,\n gridRow: true,\n gridRowEnd: true,\n gridRowGap: true,\n gridRowStart: true,\n gridColumn: true,\n gridColumnEnd: true,\n gridColumnGap: true,\n gridColumnStart: true,\n lineClamp: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n // SVG-related\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true,\n // transform types\n scale: true,\n scaleX: true,\n scaleY: true,\n scaleZ: true,\n // RN properties\n shadowOpacity: true\n};\n/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\n\nvar prefixes = ['ms', 'Moz', 'O', 'Webkit'];\n\nvar prefixKey = (prefix, key) => {\n return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n};\n\nObject.keys(unitlessNumbers).forEach(prop => {\n prefixes.forEach(prefix => {\n unitlessNumbers[prefixKey(prefix, prop)] = unitlessNumbers[prop];\n });\n});\nexport default unitlessNumbers;","/* eslint-disable */\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * From React 16.0.0\n * \n */\nimport isUnitlessNumber from '../unitlessNumbers';\n/**\n * Convert a value into the proper css writable value. The style name `name`\n * should be logical (no hyphens), as specified\n * in `CSSProperty.isUnitlessNumber`.\n *\n * @param {string} name CSS property name such as `topMargin`.\n * @param {*} value CSS property value such as `10px`.\n * @return {string} Normalized style value with dimensions applied.\n */\n\nfunction dangerousStyleValue(name, value, isCustomProperty) {\n // Note that we've removed escapeTextForBrowser() calls here since the\n // whole string will be escaped when the attribute is injected into\n // the markup. If you provide unsafe user data here they can inject\n // arbitrary CSS which may be problematic (I couldn't repro this):\n // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet\n // http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/\n // This is not an XSS hole but instead a potential CSS injection issue\n // which has lead to a greater discussion about how we're going to\n // trust URLs moving forward. See #2115901\n var isEmpty = value == null || typeof value === 'boolean' || value === '';\n\n if (isEmpty) {\n return '';\n }\n\n if (!isCustomProperty && typeof value === 'number' && value !== 0 && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name])) {\n return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers\n }\n\n return ('' + value).trim();\n}\n\nexport default dangerousStyleValue;","/* eslint-disable */\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * From React 16.3.0\n * \n */\nimport dangerousStyleValue from './dangerousStyleValue';\n/**\n * Sets the value for multiple styles on a node. If a value is specified as\n * '' (empty string), the corresponding style property will be unset.\n *\n * @param {DOMElement} node\n * @param {object} styles\n */\n\nfunction setValueForStyles(node, styles) {\n var style = node.style;\n\n for (var styleName in styles) {\n if (!styles.hasOwnProperty(styleName)) {\n continue;\n }\n\n var isCustomProperty = styleName.indexOf('--') === 0;\n var styleValue = dangerousStyleValue(styleName, styles[styleName], isCustomProperty);\n\n if (styleName === 'float') {\n styleName = 'cssFloat';\n }\n\n if (isCustomProperty) {\n style.setProperty(styleName, styleValue);\n } else {\n style[styleName] = styleValue;\n }\n }\n}\n\nexport default setValueForStyles;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport getBoundingClientRect from '../../modules/getBoundingClientRect';\nimport setValueForStyles from '../../modules/setValueForStyles';\n\nvar getRect = node => {\n // Unlike the DOM's getBoundingClientRect, React Native layout measurements\n // for \"height\" and \"width\" ignore scale transforms.\n // https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model/Determining_the_dimensions_of_elements\n var _getBoundingClientRec = getBoundingClientRect(node),\n x = _getBoundingClientRec.x,\n y = _getBoundingClientRec.y,\n top = _getBoundingClientRec.top,\n left = _getBoundingClientRec.left;\n\n var width = node.offsetWidth;\n var height = node.offsetHeight;\n return {\n x,\n y,\n width,\n height,\n top,\n left\n };\n};\n\nvar measureLayout = (node, relativeToNativeNode, callback) => {\n var relativeNode = relativeToNativeNode || node && node.parentNode;\n\n if (node && relativeNode) {\n setTimeout(() => {\n var relativeRect = getBoundingClientRect(relativeNode);\n\n var _getRect = getRect(node),\n height = _getRect.height,\n left = _getRect.left,\n top = _getRect.top,\n width = _getRect.width;\n\n var x = left - relativeRect.left;\n var y = top - relativeRect.top;\n callback(x, y, width, height, left, top);\n }, 0);\n }\n};\n\nvar focusableElements = {\n A: true,\n INPUT: true,\n SELECT: true,\n TEXTAREA: true\n};\nvar UIManager = {\n blur(node) {\n try {\n node.blur();\n } catch (err) {}\n },\n\n focus(node) {\n try {\n var name = node.nodeName; // A tabIndex of -1 allows element to be programmatically focused but\n // prevents keyboard focus, so we don't want to set the value on elements\n // that support keyboard focus by default.\n\n if (node.getAttribute('tabIndex') == null && focusableElements[name] == null) {\n node.setAttribute('tabIndex', '-1');\n }\n\n node.focus();\n } catch (err) {}\n },\n\n measure(node, callback) {\n measureLayout(node, null, callback);\n },\n\n measureInWindow(node, callback) {\n if (node) {\n setTimeout(() => {\n var _getRect2 = getRect(node),\n height = _getRect2.height,\n left = _getRect2.left,\n top = _getRect2.top,\n width = _getRect2.width;\n\n callback(left, top, width, height);\n }, 0);\n }\n },\n\n measureLayout(node, relativeToNativeNode, onFail, onSuccess) {\n measureLayout(node, relativeToNativeNode, onSuccess);\n },\n\n updateView(node, props) {\n for (var prop in props) {\n if (!Object.prototype.hasOwnProperty.call(props, prop)) {\n continue;\n }\n\n var value = props[prop];\n\n switch (prop) {\n case 'style':\n {\n setValueForStyles(node, value);\n break;\n }\n\n case 'class':\n case 'className':\n {\n node.setAttribute('class', value);\n break;\n }\n\n case 'text':\n case 'value':\n // native platforms use `text` prop to replace text input value\n node.value = value;\n break;\n\n default:\n node.setAttribute(prop, value);\n }\n }\n },\n\n configureNextLayoutAnimation(config, onAnimationDidEnd) {\n onAnimationDidEnd();\n },\n\n // mocks\n setLayoutAnimationEnabledExperimental() {}\n\n};\nexport default UIManager;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"hrefAttrs\", \"onLayout\", \"onMoveShouldSetResponder\", \"onMoveShouldSetResponderCapture\", \"onResponderEnd\", \"onResponderGrant\", \"onResponderMove\", \"onResponderReject\", \"onResponderRelease\", \"onResponderStart\", \"onResponderTerminate\", \"onResponderTerminationRequest\", \"onScrollShouldSetResponder\", \"onScrollShouldSetResponderCapture\", \"onSelectionChangeShouldSetResponder\", \"onSelectionChangeShouldSetResponderCapture\", \"onStartShouldSetResponder\", \"onStartShouldSetResponderCapture\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport * as forwardedProps from '../../modules/forwardedProps';\nimport pick from '../../modules/pick';\nimport useElementLayout from '../../modules/useElementLayout';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePlatformMethods from '../../modules/usePlatformMethods';\nimport useResponderEvents from '../../modules/useResponderEvents';\nimport StyleSheet from '../StyleSheet';\nimport TextAncestorContext from '../Text/TextAncestorContext';\nimport { useLocaleContext, getLocaleDirection } from '../../modules/useLocale';\nvar forwardPropsList = Object.assign({}, forwardedProps.defaultProps, forwardedProps.accessibilityProps, forwardedProps.clickProps, forwardedProps.defaultProps, forwardedProps.accessibilityProps, forwardedProps.clickProps, forwardedProps.focusProps, forwardedProps.keyboardProps, forwardedProps.mouseProps, forwardedProps.touchProps, forwardedProps.styleProps, {\n href: true,\n lang: true,\n onScroll: true,\n onWheel: true,\n pointerEvents: true\n});\n\nvar pickProps = props => pick(props, forwardPropsList);\n\nvar View = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var hrefAttrs = props.hrefAttrs,\n onLayout = props.onLayout,\n onMoveShouldSetResponder = props.onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture = props.onMoveShouldSetResponderCapture,\n onResponderEnd = props.onResponderEnd,\n onResponderGrant = props.onResponderGrant,\n onResponderMove = props.onResponderMove,\n onResponderReject = props.onResponderReject,\n onResponderRelease = props.onResponderRelease,\n onResponderStart = props.onResponderStart,\n onResponderTerminate = props.onResponderTerminate,\n onResponderTerminationRequest = props.onResponderTerminationRequest,\n onScrollShouldSetResponder = props.onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture = props.onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder = props.onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture = props.onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder = props.onStartShouldSetResponder,\n onStartShouldSetResponderCapture = props.onStartShouldSetResponderCapture,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n\n if (process.env.NODE_ENV !== 'production') {\n React.Children.toArray(props.children).forEach(item => {\n if (typeof item === 'string') {\n console.error(\"Unexpected text node: \" + item + \". A text node cannot be a child of a .\");\n }\n });\n }\n\n var hasTextAncestor = React.useContext(TextAncestorContext);\n var hostRef = React.useRef(null);\n\n var _useLocaleContext = useLocaleContext(),\n contextDirection = _useLocaleContext.direction;\n\n useElementLayout(hostRef, onLayout);\n useResponderEvents(hostRef, {\n onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture,\n onResponderEnd,\n onResponderGrant,\n onResponderMove,\n onResponderReject,\n onResponderRelease,\n onResponderStart,\n onResponderTerminate,\n onResponderTerminationRequest,\n onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder,\n onStartShouldSetResponderCapture\n });\n var component = 'div';\n var langDirection = props.lang != null ? getLocaleDirection(props.lang) : null;\n var componentDirection = props.dir || langDirection;\n var writingDirection = componentDirection || contextDirection;\n var supportedProps = pickProps(rest);\n supportedProps.dir = componentDirection;\n supportedProps.style = [styles.view$raw, hasTextAncestor && styles.inline, props.style];\n\n if (props.href != null) {\n component = 'a';\n\n if (hrefAttrs != null) {\n var download = hrefAttrs.download,\n rel = hrefAttrs.rel,\n target = hrefAttrs.target;\n\n if (download != null) {\n supportedProps.download = download;\n }\n\n if (rel != null) {\n supportedProps.rel = rel;\n }\n\n if (typeof target === 'string') {\n supportedProps.target = target.charAt(0) !== '_' ? '_' + target : target;\n }\n }\n }\n\n var platformMethodsRef = usePlatformMethods(supportedProps);\n var setRef = useMergeRefs(hostRef, platformMethodsRef, forwardedRef);\n supportedProps.ref = setRef;\n return createElement(component, supportedProps, {\n writingDirection\n });\n});\nView.displayName = 'View';\nvar styles = StyleSheet.create({\n view$raw: {\n alignItems: 'stretch',\n backgroundColor: 'transparent',\n border: '0 solid black',\n boxSizing: 'border-box',\n display: 'flex',\n flexBasis: 'auto',\n flexDirection: 'column',\n flexShrink: 0,\n listStyle: 'none',\n margin: 0,\n minHeight: 0,\n minWidth: 0,\n padding: 0,\n position: 'relative',\n textDecoration: 'none',\n zIndex: 0\n },\n inline: {\n display: 'inline-flex'\n }\n});\nexport default View;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport AccessibilityUtil from '../../modules/AccessibilityUtil';\nimport createDOMProps from '../../modules/createDOMProps';\nimport React from 'react';\nimport { LocaleProvider } from '../../modules/useLocale';\n\nvar createElement = (component, props, options) => {\n // Use equivalent platform elements where possible.\n var accessibilityComponent;\n\n if (component && component.constructor === String) {\n accessibilityComponent = AccessibilityUtil.propsToAccessibilityComponent(props);\n }\n\n var Component = accessibilityComponent || component;\n var domProps = createDOMProps(Component, props, options);\n var element = /*#__PURE__*/React.createElement(Component, domProps); // Update locale context if element's writing direction prop changes\n\n var elementWithLocaleProvider = domProps.dir ? /*#__PURE__*/React.createElement(LocaleProvider, {\n children: element,\n direction: domProps.dir,\n locale: domProps.lang\n }) : element;\n return elementWithLocaleProvider;\n};\n\nexport default createElement;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { findDOMNode } from 'react-dom';\n\nvar findNodeHandle = component => {\n var node;\n\n try {\n node = findDOMNode(component);\n } catch (e) {}\n\n return node;\n};\n\nexport default findNodeHandle;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport normalizeColor from 'normalize-css-color';\n\nvar processColor = color => {\n if (color === undefined || color === null) {\n return color;\n } // convert number and hex\n\n\n var int32Color = normalizeColor(color);\n\n if (int32Color === undefined || int32Color === null) {\n return undefined;\n }\n\n int32Color = (int32Color << 24 | int32Color >>> 8) >>> 0;\n return int32Color;\n};\n\nexport default processColor;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n'use strict';\n\nimport Dimensions from '../Dimensions';\nimport { useEffect, useState } from 'react';\nexport default function useWindowDimensions() {\n var _useState = useState(() => Dimensions.get('window')),\n dims = _useState[0],\n setDims = _useState[1];\n\n useEffect(() => {\n function handleChange(_ref) {\n var window = _ref.window;\n\n if (window != null) {\n setDims(window);\n }\n }\n\n Dimensions.addEventListener('change', handleChange); // We might have missed an update between calling `get` in render and\n // `addEventListener` in this handler, so we set it here. If there was\n // no change, React will filter out this update as a no-op.\n\n setDims(Dimensions.get('window'));\n return () => {\n Dimensions.removeEventListener('change', handleChange);\n };\n }, []);\n return dims;\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { hydrate as domHydrate, render as domRender } from 'react-dom';\nimport { createSheet } from '../StyleSheet/dom';\nexport function hydrate(element, root, callback) {\n createSheet(root);\n return domHydrate(element, root, callback);\n}\nexport default function render(element, root, callback) {\n createSheet(root);\n return domRender(element, root, callback);\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { unmountComponentAtNode } from 'react-dom';\nexport default unmountComponentAtNode;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport canUseDOM from '../../modules/canUseDom';\n\nfunction isScreenReaderEnabled() {\n return new Promise((resolve, reject) => {\n resolve(true);\n });\n}\n\nvar prefersReducedMotionMedia = canUseDOM && typeof window.matchMedia === 'function' ? window.matchMedia('(prefers-reduced-motion: reduce)') : null;\n\nfunction isReduceMotionEnabled() {\n return new Promise((resolve, reject) => {\n resolve(prefersReducedMotionMedia ? prefersReducedMotionMedia.matches : true);\n });\n}\n\nfunction addChangeListener(fn) {\n if (prefersReducedMotionMedia != null) {\n prefersReducedMotionMedia.addEventListener != null ? prefersReducedMotionMedia.addEventListener('change', fn) : prefersReducedMotionMedia.addListener(fn);\n }\n}\n\nfunction removeChangeListener(fn) {\n if (prefersReducedMotionMedia != null) {\n prefersReducedMotionMedia.removeEventListener != null ? prefersReducedMotionMedia.removeEventListener('change', fn) : prefersReducedMotionMedia.removeListener(fn);\n }\n}\n\nvar handlers = {};\nvar AccessibilityInfo = {\n /**\n * Query whether a screen reader is currently enabled.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when a screen reader is enabled and `false` otherwise.\n */\n isScreenReaderEnabled,\n\n /**\n * Query whether the user prefers reduced motion.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when a screen reader is enabled and `false` otherwise.\n */\n isReduceMotionEnabled,\n\n /**\n * Deprecated\n */\n fetch: isScreenReaderEnabled,\n\n /**\n * Add an event handler. Supported events: reduceMotionChanged\n */\n addEventListener: function addEventListener(eventName, handler) {\n if (eventName === 'reduceMotionChanged') {\n if (!prefersReducedMotionMedia) {\n return;\n }\n\n var listener = event => {\n handler(event.matches);\n };\n\n addChangeListener(listener);\n handlers[handler] = listener;\n }\n\n return {\n remove: () => AccessibilityInfo.removeEventListener(eventName, handler)\n };\n },\n\n /**\n * Set accessibility focus to a react component.\n */\n setAccessibilityFocus: function setAccessibilityFocus(reactTag) {},\n\n /**\n * Post a string to be announced by the screen reader.\n */\n announceForAccessibility: function announceForAccessibility(announcement) {},\n\n /**\n * Remove an event handler.\n */\n removeEventListener: function removeEventListener(eventName, handler) {\n if (eventName === 'reduceMotionChanged') {\n var listener = handlers[handler];\n\n if (!listener || !prefersReducedMotionMedia) {\n return;\n }\n\n removeChangeListener(listener);\n }\n\n return;\n }\n};\nexport default AccessibilityInfo;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nclass Alert {\n static alert() {}\n\n}\n\nexport default Alert;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport canUseDOM from '../../modules/canUseDom';\n\nfunction getQuery() {\n return canUseDOM && window.matchMedia != null ? window.matchMedia('(prefers-color-scheme: dark)') : null;\n}\n\nvar query = getQuery();\nvar listenerMapping = new WeakMap();\nvar Appearance = {\n getColorScheme() {\n return query && query.matches ? 'dark' : 'light';\n },\n\n addChangeListener(listener) {\n var mappedListener = listenerMapping.get(listener);\n\n if (!mappedListener) {\n mappedListener = _ref => {\n var matches = _ref.matches;\n listener({\n colorScheme: matches ? 'dark' : 'light'\n });\n };\n\n listenerMapping.set(listener, mappedListener);\n }\n\n if (query) {\n query.addListener(mappedListener);\n }\n\n function remove() {\n var mappedListener = listenerMapping.get(listener);\n\n if (query && mappedListener) {\n query.removeListener(mappedListener);\n }\n\n listenerMapping.delete(listener);\n }\n\n return {\n remove\n };\n }\n\n};\nexport default Appearance;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar RootTagContext = /*#__PURE__*/React.createContext(null);\nexport default function AppContainer(props) {\n var children = props.children,\n WrapperComponent = props.WrapperComponent;\n var innerView = /*#__PURE__*/React.createElement(View, {\n children: children,\n key: 1,\n pointerEvents: \"box-none\",\n style: styles.appContainer\n });\n\n if (WrapperComponent) {\n innerView = /*#__PURE__*/React.createElement(WrapperComponent, null, innerView);\n }\n\n return /*#__PURE__*/React.createElement(RootTagContext.Provider, {\n value: props.rootTag\n }, /*#__PURE__*/React.createElement(View, {\n pointerEvents: \"box-none\",\n style: styles.appContainer\n }, innerView));\n}\nvar styles = StyleSheet.create({\n appContainer: {\n flex: 1\n }\n});","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport invariant from 'fbjs/lib/invariant';\nimport unmountComponentAtNode from '../unmountComponentAtNode';\nimport renderApplication, { getApplication as _getApplication } from './renderApplication';\nvar emptyObject = {};\nvar runnables = {};\n\nvar componentProviderInstrumentationHook = component => component();\n\nvar wrapperComponentProvider;\n/**\n * `AppRegistry` is the JS entry point to running all React Native apps.\n */\n\nexport default class AppRegistry {\n static getAppKeys() {\n return Object.keys(runnables);\n }\n\n static getApplication(appKey, appParameters) {\n invariant(runnables[appKey] && runnables[appKey].getApplication, \"Application \" + appKey + \" has not been registered. \" + 'This is either due to an import error during initialization or failure to call AppRegistry.registerComponent.');\n return runnables[appKey].getApplication(appParameters);\n }\n\n static registerComponent(appKey, componentProvider) {\n runnables[appKey] = {\n getApplication: appParameters => _getApplication(componentProviderInstrumentationHook(componentProvider), appParameters ? appParameters.initialProps : emptyObject, wrapperComponentProvider && wrapperComponentProvider(appParameters)),\n run: appParameters => renderApplication(componentProviderInstrumentationHook(componentProvider), wrapperComponentProvider && wrapperComponentProvider(appParameters), appParameters.callback, {\n hydrate: appParameters.hydrate || false,\n initialProps: appParameters.initialProps || emptyObject,\n rootTag: appParameters.rootTag\n })\n };\n return appKey;\n }\n\n static registerConfig(config) {\n config.forEach(_ref => {\n var appKey = _ref.appKey,\n component = _ref.component,\n run = _ref.run;\n\n if (run) {\n AppRegistry.registerRunnable(appKey, run);\n } else {\n invariant(component, 'No component provider passed in');\n AppRegistry.registerComponent(appKey, component);\n }\n });\n } // TODO: fix style sheet creation when using this method\n\n\n static registerRunnable(appKey, run) {\n runnables[appKey] = {\n run\n };\n return appKey;\n }\n\n static runApplication(appKey, appParameters) {\n var isDevelopment = process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test';\n\n if (isDevelopment) {\n var params = _objectSpread({}, appParameters);\n\n params.rootTag = \"#\" + params.rootTag.id;\n console.log(\"Running application \\\"\" + appKey + \"\\\" with appParams:\\n\", params, \"\\nDevelopment-level warnings: \" + (isDevelopment ? 'ON' : 'OFF') + \".\" + (\"\\nPerformance optimizations: \" + (isDevelopment ? 'OFF' : 'ON') + \".\"));\n }\n\n invariant(runnables[appKey] && runnables[appKey].run, \"Application \\\"\" + appKey + \"\\\" has not been registered. \" + 'This is either due to an import error during initialization or failure to call AppRegistry.registerComponent.');\n runnables[appKey].run(appParameters);\n }\n\n static setComponentProviderInstrumentationHook(hook) {\n componentProviderInstrumentationHook = hook;\n }\n\n static setWrapperComponentProvider(provider) {\n wrapperComponentProvider = provider;\n }\n\n static unmountApplicationComponentAtRootTag(rootTag) {\n unmountComponentAtNode(rootTag);\n }\n\n}","import _extends from \"@babel/runtime/helpers/extends\";\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport AppContainer from './AppContainer';\nimport invariant from 'fbjs/lib/invariant';\nimport render, { hydrate } from '../render';\nimport StyleSheet from '../StyleSheet';\nimport React from 'react';\nexport default function renderApplication(RootComponent, WrapperComponent, callback, options) {\n var shouldHydrate = options.hydrate,\n initialProps = options.initialProps,\n rootTag = options.rootTag;\n var renderFn = shouldHydrate ? hydrate : render;\n invariant(rootTag, 'Expect to have a valid rootTag, instead got ', rootTag);\n renderFn( /*#__PURE__*/React.createElement(AppContainer, {\n WrapperComponent: WrapperComponent,\n rootTag: rootTag\n }, /*#__PURE__*/React.createElement(RootComponent, initialProps)), rootTag, callback);\n}\nexport function getApplication(RootComponent, initialProps, WrapperComponent) {\n var element = /*#__PURE__*/React.createElement(AppContainer, {\n WrapperComponent: WrapperComponent,\n rootTag: {}\n }, /*#__PURE__*/React.createElement(RootComponent, initialProps)); // Don't escape CSS text\n\n var getStyleElement = props => {\n var sheet = StyleSheet.getSheet();\n return /*#__PURE__*/React.createElement(\"style\", _extends({}, props, {\n dangerouslySetInnerHTML: {\n __html: sheet.textContent\n },\n id: sheet.id\n }));\n };\n\n return {\n element,\n getStyleElement\n };\n}","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport invariant from 'fbjs/lib/invariant';\nimport EventEmitter from '../../vendor/react-native/emitter/_EventEmitter';\nimport canUseDOM from '../../modules/canUseDom'; // Android 4.4 browser\n\nvar isPrefixed = canUseDOM && !document.hasOwnProperty('hidden') && document.hasOwnProperty('webkitHidden');\nvar EVENT_TYPES = ['change', 'memoryWarning'];\nvar VISIBILITY_CHANGE_EVENT = isPrefixed ? 'webkitvisibilitychange' : 'visibilitychange';\nvar VISIBILITY_STATE_PROPERTY = isPrefixed ? 'webkitVisibilityState' : 'visibilityState';\nvar AppStates = {\n BACKGROUND: 'background',\n ACTIVE: 'active'\n};\nvar changeEmitter = null;\nexport default class AppState {\n static get currentState() {\n if (!AppState.isAvailable) {\n return AppStates.ACTIVE;\n }\n\n switch (document[VISIBILITY_STATE_PROPERTY]) {\n case 'hidden':\n case 'prerender':\n case 'unloaded':\n return AppStates.BACKGROUND;\n\n default:\n return AppStates.ACTIVE;\n }\n }\n\n static addEventListener(type, handler) {\n if (AppState.isAvailable) {\n invariant(EVENT_TYPES.indexOf(type) !== -1, 'Trying to subscribe to unknown event: \"%s\"', type);\n\n if (type === 'change') {\n if (!changeEmitter) {\n changeEmitter = new EventEmitter();\n document.addEventListener(VISIBILITY_CHANGE_EVENT, () => {\n if (changeEmitter) {\n changeEmitter.emit('change', AppState.currentState);\n }\n }, false);\n }\n\n return changeEmitter.addListener(type, handler);\n }\n }\n }\n\n static removeEventListener(type, handler) {\n if (AppState.isAvailable) {\n console.error(\"AppState.removeListener('\" + type + \"', ...): Method has been \" + 'deprecated. Please instead use `remove()` on the subscription ' + 'returned by `AppState.addEventListener`.');\n invariant(EVENT_TYPES.indexOf(type) !== -1, 'Trying to remove listener for unknown event: \"%s\"', type);\n\n if (type === 'change' && changeEmitter) {\n changeEmitter.removeListener(handler);\n }\n }\n }\n\n}\nAppState.isAvailable = canUseDOM && document[VISIBILITY_STATE_PROPERTY];","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nfunction emptyFunction() {}\n\nvar BackHandler = {\n exitApp: emptyFunction,\n\n addEventListener() {\n return {\n remove: emptyFunction\n };\n },\n\n removeEventListener: emptyFunction\n};\nexport default BackHandler;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar clipboardAvailable;\nexport default class Clipboard {\n static isAvailable() {\n if (clipboardAvailable === undefined) {\n clipboardAvailable = typeof document.queryCommandSupported === 'function' && document.queryCommandSupported('copy');\n }\n\n return clipboardAvailable;\n }\n\n static getString() {\n return Promise.resolve('');\n }\n\n static setString(text) {\n var success = false;\n var body = document.body;\n\n if (body) {\n // add the text to a hidden node\n var node = document.createElement('span');\n node.textContent = text;\n node.style.opacity = '0';\n node.style.position = 'absolute';\n node.style.whiteSpace = 'pre-wrap';\n node.style.userSelect = 'auto';\n body.appendChild(node); // select the text\n\n var selection = window.getSelection();\n selection.removeAllRanges();\n var range = document.createRange();\n range.selectNodeContents(node);\n selection.addRange(range); // attempt to copy\n\n try {\n document.execCommand('copy');\n success = true;\n } catch (e) {} // remove selection and node\n\n\n selection.removeAllRanges();\n body.removeChild(node);\n }\n\n return success;\n }\n\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport Dimensions from '../Dimensions';\nimport canUseDOM from '../../modules/canUseDom';\nvar DeviceInfo = {\n Dimensions: {\n get windowPhysicalPixels() {\n var _Dimensions$get = Dimensions.get('window'),\n width = _Dimensions$get.width,\n height = _Dimensions$get.height,\n fontScale = _Dimensions$get.fontScale,\n scale = _Dimensions$get.scale;\n\n return {\n width: width * scale,\n height: height * scale,\n scale,\n fontScale\n };\n },\n\n get screenPhysicalPixels() {\n var _Dimensions$get2 = Dimensions.get('screen'),\n width = _Dimensions$get2.width,\n height = _Dimensions$get2.height,\n fontScale = _Dimensions$get2.fontScale,\n scale = _Dimensions$get2.scale;\n\n return {\n width: width * scale,\n height: height * scale,\n scale,\n fontScale\n };\n }\n\n },\n\n get locale() {\n if (canUseDOM) {\n if (navigator.languages) {\n return navigator.languages[0];\n } else {\n return navigator.language;\n }\n }\n },\n\n get totalMemory() {\n // $FlowIssue deviceMemory not defined in navigator\n return canUseDOM ? navigator.deviceMemory : undefined;\n },\n\n get userAgent() {\n return canUseDOM ? navigator.userAgent : '';\n }\n\n};\nexport default DeviceInfo;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport Platform from '../../../exports/Platform';\nimport UIManager from '../../../exports/UIManager';\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nfunction configureNext(config, onAnimationDidEnd) {\n if (!Platform.isTesting) {\n UIManager.configureNextLayoutAnimation(config, onAnimationDidEnd !== null && onAnimationDidEnd !== void 0 ? onAnimationDidEnd : function () {}, function () {}\n /* unused onError */\n );\n }\n}\n\nfunction create(duration, type, property) {\n return {\n duration,\n create: {\n type,\n property\n },\n update: {\n type\n },\n delete: {\n type,\n property\n }\n };\n}\n\nvar Presets = {\n easeInEaseOut: create(300, 'easeInEaseOut', 'opacity'),\n linear: create(500, 'linear', 'opacity'),\n spring: {\n duration: 700,\n create: {\n type: 'linear',\n property: 'opacity'\n },\n update: {\n type: 'spring',\n springDamping: 0.4\n },\n delete: {\n type: 'linear',\n property: 'opacity'\n }\n }\n};\n/**\n * Automatically animates views to their new positions when the\n * next layout happens.\n *\n * A common way to use this API is to call it before calling `setState`.\n *\n * Note that in order to get this to work on **Android** you need to set the following flags via `UIManager`:\n *\n * UIManager.setLayoutAnimationEnabledExperimental && UIManager.setLayoutAnimationEnabledExperimental(true);\n */\n\nvar LayoutAnimation = {\n /**\n * Schedules an animation to happen on the next layout.\n *\n * @param config Specifies animation properties:\n *\n * - `duration` in milliseconds\n * - `create`, `AnimationConfig` for animating in new views\n * - `update`, `AnimationConfig` for animating views that have been updated\n *\n * @param onAnimationDidEnd Called when the animation finished.\n * Only supported on iOS.\n * @param onError Called on error. Only supported on iOS.\n */\n configureNext,\n\n /**\n * Helper for creating a config for `configureNext`.\n */\n create,\n Types: Object.freeze({\n spring: 'spring',\n linear: 'linear',\n easeInEaseOut: 'easeInEaseOut',\n easeIn: 'easeIn',\n easeOut: 'easeOut',\n keyboard: 'keyboard'\n }),\n Properties: Object.freeze({\n opacity: 'opacity',\n scaleX: 'scaleX',\n scaleY: 'scaleY',\n scaleXY: 'scaleXY'\n }),\n\n checkConfig() {\n console.error('LayoutAnimation.checkConfig(...) has been disabled.');\n },\n\n Presets,\n easeInEaseOut: configureNext.bind(null, Presets.easeInEaseOut),\n linear: configureNext.bind(null, Presets.linear),\n spring: configureNext.bind(null, Presets.spring)\n};\nexport default LayoutAnimation;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport LayoutAnimation from '../../vendor/react-native/LayoutAnimation';\nexport default LayoutAnimation;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport invariant from 'fbjs/lib/invariant';\nimport canUseDOM from '../../modules/canUseDom';\nvar initialURL = canUseDOM ? window.location.href : '';\n\nclass Linking {\n constructor() {\n this._eventCallbacks = {};\n\n this.addEventListener = (event, callback) => {\n if (!this._eventCallbacks[event]) {\n this._eventCallbacks[event] = [callback];\n return;\n }\n\n this._eventCallbacks[event].push(callback);\n };\n\n this.removeEventListener = (event, callback) => {\n var callbacks = this._eventCallbacks[event];\n var filteredCallbacks = callbacks.filter(c => c.toString() !== callback.toString());\n this._eventCallbacks[event] = filteredCallbacks;\n };\n }\n\n _dispatchEvent(event) {\n for (var _len = arguments.length, data = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n data[_key - 1] = arguments[_key];\n }\n\n var listeners = this._eventCallbacks[event];\n\n if (listeners != null && Array.isArray(listeners)) {\n listeners.map(listener => {\n listener(...data);\n });\n }\n }\n /**\n * Adds a event listener for the specified event. The callback will be called when the\n * said event is dispatched.\n */\n\n\n canOpenURL() {\n return Promise.resolve(true);\n }\n\n getInitialURL() {\n return Promise.resolve(initialURL);\n }\n /**\n * Try to open the given url in a secure fashion. The method returns a Promise object.\n * If a target is passed (including undefined) that target will be used, otherwise '_blank'.\n * If the url opens, the promise is resolved. If not, the promise is rejected.\n * Dispatches the `onOpen` event if `url` is opened successfully.\n */\n\n\n openURL(url, target) {\n if (arguments.length === 1) {\n target = '_blank';\n }\n\n try {\n open(url, target);\n\n this._dispatchEvent('onOpen', url);\n\n return Promise.resolve();\n } catch (e) {\n return Promise.reject(e);\n }\n }\n\n _validateURL(url) {\n invariant(typeof url === 'string', 'Invalid URL: should be a string. Was: ' + url);\n invariant(url, 'Invalid URL: cannot be empty');\n }\n\n}\n\nvar open = (url, target) => {\n if (canUseDOM) {\n var urlToOpen = new URL(url, window.location).toString();\n\n if (urlToOpen.indexOf('tel:') === 0) {\n window.location = urlToOpen;\n } else {\n window.open(urlToOpen, target, 'noopener');\n }\n }\n};\n\nexport default new Linking();","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport NativeEventEmitter from '../../vendor/react-native/NativeEventEmitter';\nexport default NativeEventEmitter;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\nvar TouchHistoryMath = {\n /**\n * This code is optimized and not intended to look beautiful. This allows\n * computing of touch centroids that have moved after `touchesChangedAfter`\n * timeStamp. You can compute the current centroid involving all touches\n * moves after `touchesChangedAfter`, or you can compute the previous\n * centroid of all touches that were moved after `touchesChangedAfter`.\n *\n * @param {TouchHistoryMath} touchHistory Standard Responder touch track\n * data.\n * @param {number} touchesChangedAfter timeStamp after which moved touches\n * are considered \"actively moving\" - not just \"active\".\n * @param {boolean} isXAxis Consider `x` dimension vs. `y` dimension.\n * @param {boolean} ofCurrent Compute current centroid for actively moving\n * touches vs. previous centroid of now actively moving touches.\n * @return {number} value of centroid in specified dimension.\n */\n centroidDimension: function centroidDimension(touchHistory, touchesChangedAfter, isXAxis, ofCurrent) {\n var touchBank = touchHistory.touchBank;\n var total = 0;\n var count = 0;\n var oneTouchData = touchHistory.numberActiveTouches === 1 ? touchHistory.touchBank[touchHistory.indexOfSingleActiveTouch] : null;\n\n if (oneTouchData !== null) {\n if (oneTouchData.touchActive && oneTouchData.currentTimeStamp > touchesChangedAfter) {\n total += ofCurrent && isXAxis ? oneTouchData.currentPageX : ofCurrent && !isXAxis ? oneTouchData.currentPageY : !ofCurrent && isXAxis ? oneTouchData.previousPageX : oneTouchData.previousPageY;\n count = 1;\n }\n } else {\n for (var i = 0; i < touchBank.length; i++) {\n var touchTrack = touchBank[i];\n\n if (touchTrack !== null && touchTrack !== undefined && touchTrack.touchActive && touchTrack.currentTimeStamp >= touchesChangedAfter) {\n var toAdd = void 0; // Yuck, program temporarily in invalid state.\n\n if (ofCurrent && isXAxis) {\n toAdd = touchTrack.currentPageX;\n } else if (ofCurrent && !isXAxis) {\n toAdd = touchTrack.currentPageY;\n } else if (!ofCurrent && isXAxis) {\n toAdd = touchTrack.previousPageX;\n } else {\n toAdd = touchTrack.previousPageY;\n }\n\n total += toAdd;\n count++;\n }\n }\n }\n\n return count > 0 ? total / count : TouchHistoryMath.noCentroid;\n },\n currentCentroidXOfTouchesChangedAfter: function currentCentroidXOfTouchesChangedAfter(touchHistory, touchesChangedAfter) {\n return TouchHistoryMath.centroidDimension(touchHistory, touchesChangedAfter, true, // isXAxis\n true // ofCurrent\n );\n },\n currentCentroidYOfTouchesChangedAfter: function currentCentroidYOfTouchesChangedAfter(touchHistory, touchesChangedAfter) {\n return TouchHistoryMath.centroidDimension(touchHistory, touchesChangedAfter, false, // isXAxis\n true // ofCurrent\n );\n },\n previousCentroidXOfTouchesChangedAfter: function previousCentroidXOfTouchesChangedAfter(touchHistory, touchesChangedAfter) {\n return TouchHistoryMath.centroidDimension(touchHistory, touchesChangedAfter, true, // isXAxis\n false // ofCurrent\n );\n },\n previousCentroidYOfTouchesChangedAfter: function previousCentroidYOfTouchesChangedAfter(touchHistory, touchesChangedAfter) {\n return TouchHistoryMath.centroidDimension(touchHistory, touchesChangedAfter, false, // isXAxis\n false // ofCurrent\n );\n },\n currentCentroidX: function currentCentroidX(touchHistory) {\n return TouchHistoryMath.centroidDimension(touchHistory, 0, // touchesChangedAfter\n true, // isXAxis\n true // ofCurrent\n );\n },\n currentCentroidY: function currentCentroidY(touchHistory) {\n return TouchHistoryMath.centroidDimension(touchHistory, 0, // touchesChangedAfter\n false, // isXAxis\n true // ofCurrent\n );\n },\n noCentroid: -1\n};\nexport default TouchHistoryMath;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport InteractionManager from '../../../exports/InteractionManager';\nimport TouchHistoryMath from '../TouchHistoryMath';\nvar currentCentroidXOfTouchesChangedAfter = TouchHistoryMath.currentCentroidXOfTouchesChangedAfter;\nvar currentCentroidYOfTouchesChangedAfter = TouchHistoryMath.currentCentroidYOfTouchesChangedAfter;\nvar previousCentroidXOfTouchesChangedAfter = TouchHistoryMath.previousCentroidXOfTouchesChangedAfter;\nvar previousCentroidYOfTouchesChangedAfter = TouchHistoryMath.previousCentroidYOfTouchesChangedAfter;\nvar currentCentroidX = TouchHistoryMath.currentCentroidX;\nvar currentCentroidY = TouchHistoryMath.currentCentroidY;\n/**\n * `PanResponder` reconciles several touches into a single gesture. It makes\n * single-touch gestures resilient to extra touches, and can be used to\n * recognize simple multi-touch gestures.\n *\n * By default, `PanResponder` holds an `InteractionManager` handle to block\n * long-running JS events from interrupting active gestures.\n *\n * It provides a predictable wrapper of the responder handlers provided by the\n * [gesture responder system](docs/gesture-responder-system.html).\n * For each handler, it provides a new `gestureState` object alongside the\n * native event object:\n *\n * ```\n * onPanResponderMove: (event, gestureState) => {}\n * ```\n *\n * A native event is a synthetic touch event with the following form:\n *\n * - `nativeEvent`\n * + `changedTouches` - Array of all touch events that have changed since the last event\n * + `identifier` - The ID of the touch\n * + `locationX` - The X position of the touch, relative to the element\n * + `locationY` - The Y position of the touch, relative to the element\n * + `pageX` - The X position of the touch, relative to the root element\n * + `pageY` - The Y position of the touch, relative to the root element\n * + `target` - The node id of the element receiving the touch event\n * + `timestamp` - A time identifier for the touch, useful for velocity calculation\n * + `touches` - Array of all current touches on the screen\n *\n * A `gestureState` object has the following:\n *\n * - `stateID` - ID of the gestureState- persisted as long as there at least\n * one touch on screen\n * - `moveX` - the latest screen coordinates of the recently-moved touch\n * - `moveY` - the latest screen coordinates of the recently-moved touch\n * - `x0` - the screen coordinates of the responder grant\n * - `y0` - the screen coordinates of the responder grant\n * - `dx` - accumulated distance of the gesture since the touch started\n * - `dy` - accumulated distance of the gesture since the touch started\n * - `vx` - current velocity of the gesture\n * - `vy` - current velocity of the gesture\n * - `numberActiveTouches` - Number of touches currently on screen\n *\n * ### Basic Usage\n *\n * ```\n * componentWillMount: function() {\n * this._panResponder = PanResponder.create({\n * // Ask to be the responder:\n * onStartShouldSetPanResponder: (evt, gestureState) => true,\n * onStartShouldSetPanResponderCapture: (evt, gestureState) => true,\n * onMoveShouldSetPanResponder: (evt, gestureState) => true,\n * onMoveShouldSetPanResponderCapture: (evt, gestureState) => true,\n *\n * onPanResponderGrant: (evt, gestureState) => {\n * // The gesture has started. Show visual feedback so the user knows\n * // what is happening!\n *\n * // gestureState.d{x,y} will be set to zero now\n * },\n * onPanResponderMove: (evt, gestureState) => {\n * // The most recent move distance is gestureState.move{X,Y}\n *\n * // The accumulated gesture distance since becoming responder is\n * // gestureState.d{x,y}\n * },\n * onPanResponderTerminationRequest: (evt, gestureState) => true,\n * onPanResponderRelease: (evt, gestureState) => {\n * // The user has released all touches while this view is the\n * // responder. This typically means a gesture has succeeded\n * },\n * onPanResponderTerminate: (evt, gestureState) => {\n * // Another component has become the responder, so this gesture\n * // should be cancelled\n * },\n * onShouldBlockNativeResponder: (evt, gestureState) => {\n * // Returns whether this component should block native components from becoming the JS\n * // responder. Returns true by default. Is currently only supported on android.\n * return true;\n * },\n * });\n * },\n *\n * render: function() {\n * return (\n * \n * );\n * },\n *\n * ```\n *\n * ### Working Example\n *\n * To see it in action, try the\n * [PanResponder example in RNTester](https://github.com/facebook/react-native/blob/master/RNTester/js/PanResponderExample.js)\n */\n\nvar PanResponder = {\n /**\n *\n * A graphical explanation of the touch data flow:\n *\n * +----------------------------+ +--------------------------------+\n * | ResponderTouchHistoryStore | |TouchHistoryMath |\n * +----------------------------+ +----------+---------------------+\n * |Global store of touchHistory| |Allocation-less math util |\n * |including activeness, start | |on touch history (centroids |\n * |position, prev/cur position.| |and multitouch movement etc) |\n * | | | |\n * +----^-----------------------+ +----^---------------------------+\n * | |\n * | (records relevant history |\n * | of touches relevant for |\n * | implementing higher level |\n * | gestures) |\n * | |\n * +----+-----------------------+ +----|---------------------------+\n * | ResponderEventPlugin | | | Your App/Component |\n * +----------------------------+ +----|---------------------------+\n * |Negotiates which view gets | Low level | | High level |\n * |onResponderMove events. | events w/ | +-+-------+ events w/ |\n * |Also records history into | touchHistory| | Pan | multitouch + |\n * |ResponderTouchHistoryStore. +---------------->Responder+-----> accumulative|\n * +----------------------------+ attached to | | | distance and |\n * each event | +---------+ velocity. |\n * | |\n * | |\n * +--------------------------------+\n *\n *\n *\n * Gesture that calculates cumulative movement over time in a way that just\n * \"does the right thing\" for multiple touches. The \"right thing\" is very\n * nuanced. When moving two touches in opposite directions, the cumulative\n * distance is zero in each dimension. When two touches move in parallel five\n * pixels in the same direction, the cumulative distance is five, not ten. If\n * two touches start, one moves five in a direction, then stops and the other\n * touch moves fives in the same direction, the cumulative distance is ten.\n *\n * This logic requires a kind of processing of time \"clusters\" of touch events\n * so that two touch moves that essentially occur in parallel but move every\n * other frame respectively, are considered part of the same movement.\n *\n * Explanation of some of the non-obvious fields:\n *\n * - moveX/moveY: If no move event has been observed, then `(moveX, moveY)` is\n * invalid. If a move event has been observed, `(moveX, moveY)` is the\n * centroid of the most recently moved \"cluster\" of active touches.\n * (Currently all move have the same timeStamp, but later we should add some\n * threshold for what is considered to be \"moving\"). If a palm is\n * accidentally counted as a touch, but a finger is moving greatly, the palm\n * will move slightly, but we only want to count the single moving touch.\n * - x0/y0: Centroid location (non-cumulative) at the time of becoming\n * responder.\n * - dx/dy: Cumulative touch distance - not the same thing as sum of each touch\n * distance. Accounts for touch moves that are clustered together in time,\n * moving the same direction. Only valid when currently responder (otherwise,\n * it only represents the drag distance below the threshold).\n * - vx/vy: Velocity.\n */\n _initializeGestureState(gestureState) {\n gestureState.moveX = 0;\n gestureState.moveY = 0;\n gestureState.x0 = 0;\n gestureState.y0 = 0;\n gestureState.dx = 0;\n gestureState.dy = 0;\n gestureState.vx = 0;\n gestureState.vy = 0;\n gestureState.numberActiveTouches = 0; // All `gestureState` accounts for timeStamps up until:\n\n gestureState._accountsForMovesUpTo = 0;\n },\n\n /**\n * This is nuanced and is necessary. It is incorrect to continuously take all\n * active *and* recently moved touches, find the centroid, and track how that\n * result changes over time. Instead, we must take all recently moved\n * touches, and calculate how the centroid has changed just for those\n * recently moved touches, and append that change to an accumulator. This is\n * to (at least) handle the case where the user is moving three fingers, and\n * then one of the fingers stops but the other two continue.\n *\n * This is very different than taking all of the recently moved touches and\n * storing their centroid as `dx/dy`. For correctness, we must *accumulate\n * changes* in the centroid of recently moved touches.\n *\n * There is also some nuance with how we handle multiple moved touches in a\n * single event. With the way `ReactNativeEventEmitter` dispatches touches as\n * individual events, multiple touches generate two 'move' events, each of\n * them triggering `onResponderMove`. But with the way `PanResponder` works,\n * all of the gesture inference is performed on the first dispatch, since it\n * looks at all of the touches (even the ones for which there hasn't been a\n * native dispatch yet). Therefore, `PanResponder` does not call\n * `onResponderMove` passed the first dispatch. This diverges from the\n * typical responder callback pattern (without using `PanResponder`), but\n * avoids more dispatches than necessary.\n */\n _updateGestureStateOnMove(gestureState, touchHistory) {\n gestureState.numberActiveTouches = touchHistory.numberActiveTouches;\n gestureState.moveX = currentCentroidXOfTouchesChangedAfter(touchHistory, gestureState._accountsForMovesUpTo);\n gestureState.moveY = currentCentroidYOfTouchesChangedAfter(touchHistory, gestureState._accountsForMovesUpTo);\n var movedAfter = gestureState._accountsForMovesUpTo;\n var prevX = previousCentroidXOfTouchesChangedAfter(touchHistory, movedAfter);\n var x = currentCentroidXOfTouchesChangedAfter(touchHistory, movedAfter);\n var prevY = previousCentroidYOfTouchesChangedAfter(touchHistory, movedAfter);\n var y = currentCentroidYOfTouchesChangedAfter(touchHistory, movedAfter);\n var nextDX = gestureState.dx + (x - prevX);\n var nextDY = gestureState.dy + (y - prevY); // TODO: This must be filtered intelligently.\n\n var dt = touchHistory.mostRecentTimeStamp - gestureState._accountsForMovesUpTo;\n gestureState.vx = (nextDX - gestureState.dx) / dt;\n gestureState.vy = (nextDY - gestureState.dy) / dt;\n gestureState.dx = nextDX;\n gestureState.dy = nextDY;\n gestureState._accountsForMovesUpTo = touchHistory.mostRecentTimeStamp;\n },\n\n /**\n * @param {object} config Enhanced versions of all of the responder callbacks\n * that provide not only the typical `ResponderSyntheticEvent`, but also the\n * `PanResponder` gesture state. Simply replace the word `Responder` with\n * `PanResponder` in each of the typical `onResponder*` callbacks. For\n * example, the `config` object would look like:\n *\n * - `onMoveShouldSetPanResponder: (e, gestureState) => {...}`\n * - `onMoveShouldSetPanResponderCapture: (e, gestureState) => {...}`\n * - `onStartShouldSetPanResponder: (e, gestureState) => {...}`\n * - `onStartShouldSetPanResponderCapture: (e, gestureState) => {...}`\n * - `onPanResponderReject: (e, gestureState) => {...}`\n * - `onPanResponderGrant: (e, gestureState) => {...}`\n * - `onPanResponderStart: (e, gestureState) => {...}`\n * - `onPanResponderEnd: (e, gestureState) => {...}`\n * - `onPanResponderRelease: (e, gestureState) => {...}`\n * - `onPanResponderMove: (e, gestureState) => {...}`\n * - `onPanResponderTerminate: (e, gestureState) => {...}`\n * - `onPanResponderTerminationRequest: (e, gestureState) => {...}`\n * - `onShouldBlockNativeResponder: (e, gestureState) => {...}`\n *\n * In general, for events that have capture equivalents, we update the\n * gestureState once in the capture phase and can use it in the bubble phase\n * as well.\n *\n * Be careful with onStartShould* callbacks. They only reflect updated\n * `gestureState` for start/end events that bubble/capture to the Node.\n * Once the node is the responder, you can rely on every start/end event\n * being processed by the gesture and `gestureState` being updated\n * accordingly. (numberActiveTouches) may not be totally accurate unless you\n * are the responder.\n */\n create(config) {\n var interactionState = {\n handle: null,\n shouldCancelClick: false,\n timeout: null\n };\n var gestureState = {\n // Useful for debugging\n stateID: Math.random(),\n moveX: 0,\n moveY: 0,\n x0: 0,\n y0: 0,\n dx: 0,\n dy: 0,\n vx: 0,\n vy: 0,\n numberActiveTouches: 0,\n _accountsForMovesUpTo: 0\n };\n var panHandlers = {\n onStartShouldSetResponder(event) {\n return config.onStartShouldSetPanResponder == null ? false : config.onStartShouldSetPanResponder(event, gestureState);\n },\n\n onMoveShouldSetResponder(event) {\n return config.onMoveShouldSetPanResponder == null ? false : config.onMoveShouldSetPanResponder(event, gestureState);\n },\n\n onStartShouldSetResponderCapture(event) {\n // TODO: Actually, we should reinitialize the state any time\n // touches.length increases from 0 active to > 0 active.\n if (event.nativeEvent.touches.length === 1) {\n PanResponder._initializeGestureState(gestureState);\n }\n\n gestureState.numberActiveTouches = event.touchHistory.numberActiveTouches;\n return config.onStartShouldSetPanResponderCapture != null ? config.onStartShouldSetPanResponderCapture(event, gestureState) : false;\n },\n\n onMoveShouldSetResponderCapture(event) {\n var touchHistory = event.touchHistory; // Responder system incorrectly dispatches should* to current responder\n // Filter out any touch moves past the first one - we would have\n // already processed multi-touch geometry during the first event.\n\n if (gestureState._accountsForMovesUpTo === touchHistory.mostRecentTimeStamp) {\n return false;\n }\n\n PanResponder._updateGestureStateOnMove(gestureState, touchHistory);\n\n return config.onMoveShouldSetPanResponderCapture ? config.onMoveShouldSetPanResponderCapture(event, gestureState) : false;\n },\n\n onResponderGrant(event) {\n if (!interactionState.handle) {\n interactionState.handle = InteractionManager.createInteractionHandle();\n }\n\n if (interactionState.timeout) {\n clearInteractionTimeout(interactionState);\n }\n\n interactionState.shouldCancelClick = true;\n gestureState.x0 = currentCentroidX(event.touchHistory);\n gestureState.y0 = currentCentroidY(event.touchHistory);\n gestureState.dx = 0;\n gestureState.dy = 0;\n\n if (config.onPanResponderGrant) {\n config.onPanResponderGrant(event, gestureState);\n } // TODO: t7467124 investigate if this can be removed\n\n\n return config.onShouldBlockNativeResponder == null ? true : config.onShouldBlockNativeResponder(event, gestureState);\n },\n\n onResponderReject(event) {\n clearInteractionHandle(interactionState, config.onPanResponderReject, event, gestureState);\n },\n\n onResponderRelease(event) {\n clearInteractionHandle(interactionState, config.onPanResponderRelease, event, gestureState);\n setInteractionTimeout(interactionState);\n\n PanResponder._initializeGestureState(gestureState);\n },\n\n onResponderStart(event) {\n var touchHistory = event.touchHistory;\n gestureState.numberActiveTouches = touchHistory.numberActiveTouches;\n\n if (config.onPanResponderStart) {\n config.onPanResponderStart(event, gestureState);\n }\n },\n\n onResponderMove(event) {\n var touchHistory = event.touchHistory; // Guard against the dispatch of two touch moves when there are two\n // simultaneously changed touches.\n\n if (gestureState._accountsForMovesUpTo === touchHistory.mostRecentTimeStamp) {\n return;\n } // Filter out any touch moves past the first one - we would have\n // already processed multi-touch geometry during the first event.\n\n\n PanResponder._updateGestureStateOnMove(gestureState, touchHistory);\n\n if (config.onPanResponderMove) {\n config.onPanResponderMove(event, gestureState);\n }\n },\n\n onResponderEnd(event) {\n var touchHistory = event.touchHistory;\n gestureState.numberActiveTouches = touchHistory.numberActiveTouches;\n clearInteractionHandle(interactionState, config.onPanResponderEnd, event, gestureState);\n },\n\n onResponderTerminate(event) {\n clearInteractionHandle(interactionState, config.onPanResponderTerminate, event, gestureState);\n setInteractionTimeout(interactionState);\n\n PanResponder._initializeGestureState(gestureState);\n },\n\n onResponderTerminationRequest(event) {\n return config.onPanResponderTerminationRequest == null ? true : config.onPanResponderTerminationRequest(event, gestureState);\n },\n\n // We do not want to trigger 'click' activated gestures or native behaviors\n // on any pan target that is under a mouse cursor when it is released.\n // Browsers will natively cancel 'click' events on a target if a non-mouse\n // active pointer moves.\n onClickCapture: event => {\n if (interactionState.shouldCancelClick === true) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n };\n return {\n panHandlers,\n\n getInteractionHandle() {\n return interactionState.handle;\n }\n\n };\n }\n\n};\n\nfunction clearInteractionHandle(interactionState, callback, event, gestureState) {\n if (interactionState.handle) {\n InteractionManager.clearInteractionHandle(interactionState.handle);\n interactionState.handle = null;\n }\n\n if (callback) {\n callback(event, gestureState);\n }\n}\n\nfunction clearInteractionTimeout(interactionState) {\n clearTimeout(interactionState.timeout);\n}\n\nfunction setInteractionTimeout(interactionState) {\n interactionState.timeout = setTimeout(() => {\n interactionState.shouldCancelClick = false;\n }, 250);\n}\n\nexport default PanResponder;","import PanResponder from '../../vendor/react-native/PanResponder';\nexport default PanResponder;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport invariant from 'fbjs/lib/invariant';\n\nclass Share {\n static share(content, options) {\n if (options === void 0) {\n options = {};\n }\n\n invariant(typeof content === 'object' && content !== null, 'Content to share must be a valid object');\n invariant(typeof content.url === 'string' || typeof content.message === 'string', 'At least one of URL and message is required');\n invariant(typeof options === 'object' && options !== null, 'Options must be a valid object');\n invariant(!content.title || typeof content.title === 'string', 'Invalid title: title should be a string.');\n\n if (window.navigator.share !== undefined) {\n return window.navigator.share({\n title: content.title,\n text: content.message,\n url: content.url\n });\n } else {\n return Promise.reject(new Error('Share is not supported in this browser'));\n }\n }\n /**\n * The content was successfully shared.\n */\n\n\n static get sharedAction() {\n return 'sharedAction';\n }\n /**\n * The dialog has been dismissed.\n * @platform ios\n */\n\n\n static get dismissedAction() {\n return 'dismissedAction';\n }\n\n}\n\nexport default Share;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar vibrate = pattern => {\n if ('vibrate' in window.navigator) {\n window.navigator.vibrate(pattern);\n }\n};\n\nvar Vibration = {\n cancel() {\n vibrate(0);\n },\n\n vibrate(pattern) {\n if (pattern === void 0) {\n pattern = 400;\n }\n\n vibrate(pattern);\n }\n\n};\nexport default Vibration;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport TouchableOpacity from '../TouchableOpacity';\nimport Text from '../Text';\nvar Button = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var accessibilityLabel = props.accessibilityLabel,\n color = props.color,\n disabled = props.disabled,\n onPress = props.onPress,\n testID = props.testID,\n title = props.title;\n return /*#__PURE__*/React.createElement(TouchableOpacity, {\n accessibilityLabel: accessibilityLabel,\n accessibilityRole: \"button\",\n disabled: disabled,\n focusable: !disabled,\n onPress: onPress,\n ref: forwardedRef,\n style: [styles.button, color && {\n backgroundColor: color\n }, disabled && styles.buttonDisabled],\n testID: testID\n }, /*#__PURE__*/React.createElement(Text, {\n style: [styles.text, disabled && styles.textDisabled]\n }, title));\n});\nButton.displayName = 'Button';\nvar styles = StyleSheet.create({\n button: {\n backgroundColor: '#2196F3',\n borderRadius: 2\n },\n text: {\n color: '#fff',\n fontWeight: '500',\n padding: 8,\n textAlign: 'center',\n textTransform: 'uppercase'\n },\n buttonDisabled: {\n backgroundColor: '#dfdfdf'\n },\n textDisabled: {\n color: '#a1a1a1'\n }\n});\nexport default Button;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"accessibilityReadOnly\", \"color\", \"disabled\", \"onChange\", \"onValueChange\", \"style\", \"value\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar CheckBox = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var accessibilityReadOnly = props.accessibilityReadOnly,\n color = props.color,\n disabled = props.disabled,\n onChange = props.onChange,\n onValueChange = props.onValueChange,\n style = props.style,\n value = props.value,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n function handleChange(event) {\n var value = event.nativeEvent.target.checked;\n event.nativeEvent.value = value;\n onChange && onChange(event);\n onValueChange && onValueChange(value);\n }\n\n var fakeControl = /*#__PURE__*/React.createElement(View, {\n style: [styles.fakeControl, value && styles.fakeControlChecked, // custom color\n value && color && {\n backgroundColor: color,\n borderColor: color\n }, disabled && styles.fakeControlDisabled, value && disabled && styles.fakeControlCheckedAndDisabled]\n });\n var nativeControl = createElement('input', {\n checked: value,\n disabled: disabled,\n onChange: handleChange,\n readOnly: accessibilityReadOnly,\n ref: forwardedRef,\n style: [styles.nativeControl, styles.cursorInherit],\n type: 'checkbox'\n });\n return /*#__PURE__*/React.createElement(View, _extends({}, other, {\n accessibilityDisabled: disabled,\n accessibilityReadOnly: accessibilityReadOnly,\n style: [styles.root, style, disabled && styles.cursorDefault]\n }), fakeControl, nativeControl);\n});\nCheckBox.displayName = 'CheckBox';\nvar styles = StyleSheet.create({\n root: {\n cursor: 'pointer',\n height: 16,\n userSelect: 'none',\n width: 16\n },\n cursorDefault: {\n cursor: 'default'\n },\n cursorInherit: {\n cursor: 'inherit'\n },\n fakeControl: {\n alignItems: 'center',\n backgroundColor: '#fff',\n borderColor: '#657786',\n borderRadius: 2,\n borderStyle: 'solid',\n borderWidth: 2,\n height: '100%',\n justifyContent: 'center',\n width: '100%'\n },\n fakeControlChecked: {\n backgroundColor: '#009688',\n backgroundImage: 'url(\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8cGF0aAogICAgIGQ9Ik0gMC4wNDAzODA1OSwwLjYyNjc3NjcgMC4xNDY0NDY2MSwwLjUyMDcxMDY4IDAuNDI5Mjg5MzIsMC44MDM1NTMzOSAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IE0gMC4yMTcxNTcyOSwwLjgwMzU1MzM5IDAuODUzNTUzMzksMC4xNjcxNTcyOSAwLjk1OTYxOTQxLDAuMjczMjIzMyAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IgogICAgIGlkPSJyZWN0Mzc4MCIKICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIiAvPgo8L3N2Zz4K\")',\n backgroundRepeat: 'no-repeat',\n borderColor: '#009688'\n },\n fakeControlDisabled: {\n borderColor: '#CCD6DD'\n },\n fakeControlCheckedAndDisabled: {\n backgroundColor: '#AAB8C2',\n borderColor: '#AAB8C2'\n },\n nativeControl: _objectSpread(_objectSpread({}, StyleSheet.absoluteFillObject), {}, {\n height: '100%',\n margin: 0,\n appearance: 'none',\n padding: 0,\n width: '100%'\n })\n});\nexport default CheckBox;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"children\", \"style\", \"imageStyle\", \"imageRef\"];\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport { forwardRef } from 'react';\nimport Image from '../Image';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar emptyObject = {};\n/**\n * Very simple drop-in replacement for which supports nesting views.\n */\n\nvar ImageBackground = /*#__PURE__*/forwardRef((props, forwardedRef) => {\n var children = props.children,\n _props$style = props.style,\n style = _props$style === void 0 ? emptyObject : _props$style,\n imageStyle = props.imageStyle,\n imageRef = props.imageRef,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n\n var _StyleSheet$flatten = StyleSheet.flatten(style),\n height = _StyleSheet$flatten.height,\n width = _StyleSheet$flatten.width;\n\n return /*#__PURE__*/React.createElement(View, {\n ref: forwardedRef,\n style: style\n }, /*#__PURE__*/React.createElement(Image, _extends({}, rest, {\n ref: imageRef,\n style: [{\n // Temporary Workaround:\n // Current (imperfect yet) implementation of overwrites width and height styles\n // (which is not quite correct), and these styles conflict with explicitly set styles\n // of and with our internal layout model here.\n // So, we have to proxy/reapply these styles explicitly for actual component.\n // This workaround should be removed after implementing proper support of\n // intrinsic content size of the .\n width,\n height,\n zIndex: -1\n }, StyleSheet.absoluteFill, imageStyle]\n })), children);\n});\nImageBackground.displayName = 'ImageBackground';\nexport default ImageBackground;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"behavior\", \"contentContainerStyle\", \"keyboardVerticalOffset\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport View from '../View';\n\nclass KeyboardAvoidingView extends React.Component {\n constructor() {\n super(...arguments);\n this.frame = null;\n\n this.onLayout = event => {\n this.frame = event.nativeEvent.layout;\n };\n }\n\n relativeKeyboardHeight(keyboardFrame) {\n var frame = this.frame;\n\n if (!frame || !keyboardFrame) {\n return 0;\n }\n\n var keyboardY = keyboardFrame.screenY - (this.props.keyboardVerticalOffset || 0);\n return Math.max(frame.y + frame.height - keyboardY, 0);\n }\n\n onKeyboardChange(event) {}\n\n render() {\n var _this$props = this.props,\n behavior = _this$props.behavior,\n contentContainerStyle = _this$props.contentContainerStyle,\n keyboardVerticalOffset = _this$props.keyboardVerticalOffset,\n rest = _objectWithoutPropertiesLoose(_this$props, _excluded);\n\n return /*#__PURE__*/React.createElement(View, _extends({\n onLayout: this.onLayout\n }, rest));\n }\n\n}\n\nexport default KeyboardAvoidingView;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"children\", \"enabled\", \"onValueChange\", \"selectedValue\", \"style\", \"testID\", \"itemStyle\", \"mode\", \"prompt\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePlatformMethods from '../../modules/usePlatformMethods';\nimport PickerItem from './PickerItem';\nimport StyleSheet from '../StyleSheet';\nvar Picker = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var children = props.children,\n enabled = props.enabled,\n onValueChange = props.onValueChange,\n selectedValue = props.selectedValue,\n style = props.style,\n testID = props.testID,\n itemStyle = props.itemStyle,\n mode = props.mode,\n prompt = props.prompt,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n var hostRef = React.useRef(null);\n\n function handleChange(e) {\n var _e$target = e.target,\n selectedIndex = _e$target.selectedIndex,\n value = _e$target.value;\n\n if (onValueChange) {\n onValueChange(value, selectedIndex);\n }\n } // $FlowFixMe\n\n\n var supportedProps = _objectSpread({\n children,\n disabled: enabled === false ? true : undefined,\n onChange: handleChange,\n style: [styles.initial, style],\n testID,\n value: selectedValue\n }, other);\n\n var platformMethodsRef = usePlatformMethods(supportedProps);\n var setRef = useMergeRefs(hostRef, platformMethodsRef, forwardedRef);\n supportedProps.ref = setRef;\n return createElement('select', supportedProps);\n}); // $FlowFixMe\n\nPicker.Item = PickerItem;\nvar styles = StyleSheet.create({\n initial: {\n fontFamily: 'System',\n fontSize: 'inherit',\n margin: 0\n }\n});\nexport default Picker;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport createElement from '../createElement';\nexport default function PickerItem(props) {\n var color = props.color,\n label = props.label,\n testID = props.testID,\n value = props.value;\n var style = {\n color\n };\n return createElement('option', {\n children: label,\n style,\n testID,\n value\n });\n}","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"color\", \"indeterminate\", \"progress\", \"trackColor\", \"style\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar ProgressBar = /*#__PURE__*/React.forwardRef((props, ref) => {\n var _props$color = props.color,\n color = _props$color === void 0 ? '#1976D2' : _props$color,\n _props$indeterminate = props.indeterminate,\n indeterminate = _props$indeterminate === void 0 ? false : _props$indeterminate,\n _props$progress = props.progress,\n progress = _props$progress === void 0 ? 0 : _props$progress,\n _props$trackColor = props.trackColor,\n trackColor = _props$trackColor === void 0 ? 'transparent' : _props$trackColor,\n style = props.style,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n var percentageProgress = progress * 100;\n var width = indeterminate ? '25%' : percentageProgress + \"%\";\n return /*#__PURE__*/React.createElement(View, _extends({}, other, {\n accessibilityRole: \"progressbar\",\n accessibilityValueMax: 100,\n accessibilityValueMin: 0,\n accessibilityValueNow: indeterminate ? null : percentageProgress,\n ref: ref,\n style: [styles.track, style, {\n backgroundColor: trackColor\n }]\n }), /*#__PURE__*/React.createElement(View, {\n style: [{\n backgroundColor: color,\n width\n }, styles.progress, indeterminate && styles.animation]\n }));\n});\nProgressBar.displayName = 'ProgressBar';\nvar styles = StyleSheet.create({\n track: {\n forcedColorAdjust: 'none',\n height: 5,\n overflow: 'hidden',\n userSelect: 'none',\n zIndex: 0\n },\n progress: {\n forcedColorAdjust: 'none',\n height: '100%',\n zIndex: -1\n },\n animation: {\n animationDuration: '1s',\n animationKeyframes: [{\n '0%': {\n transform: [{\n translateX: '-100%'\n }]\n },\n '100%': {\n transform: [{\n translateX: '400%'\n }]\n }\n }],\n animationTimingFunction: 'linear',\n animationIterationCount: 'infinite'\n }\n});\nexport default ProgressBar;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"style\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nimport canUseDOM from '../../modules/canUseDom';\n\nvar cssFunction = function () {\n if (canUseDOM && window.CSS && window.CSS.supports && window.CSS.supports('top: constant(safe-area-inset-top)')) {\n return 'constant';\n }\n\n return 'env';\n}();\n\nvar SafeAreaView = /*#__PURE__*/React.forwardRef((props, ref) => {\n var style = props.style,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, {\n ref: ref,\n style: StyleSheet.compose(styles.root, style)\n }));\n});\nSafeAreaView.displayName = 'SafeAreaView';\nvar styles = StyleSheet.create({\n root: {\n paddingTop: cssFunction + \"(safe-area-inset-top)\",\n paddingRight: cssFunction + \"(safe-area-inset-right)\",\n paddingBottom: cssFunction + \"(safe-area-inset-bottom)\",\n paddingLeft: cssFunction + \"(safe-area-inset-left)\"\n }\n});\nexport default SafeAreaView;","/* eslint-disable */\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * From React 16.0.0\n */\nimport invariant from 'fbjs/lib/invariant';\n\nvar twoArgumentPooler = function twoArgumentPooler(a1, a2) {\n var Klass = this;\n\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2);\n return instance;\n } else {\n return new Klass(a1, a2);\n }\n};\n\nvar standardReleaser = function standardReleaser(instance) {\n var Klass = this;\n instance.destructor();\n\n if (Klass.instancePool.length < Klass.poolSize) {\n Klass.instancePool.push(instance);\n }\n};\n\nvar DEFAULT_POOL_SIZE = 10;\nvar DEFAULT_POOLER = twoArgumentPooler;\n/**\n * Augments `CopyConstructor` to be a poolable class, augmenting only the class\n * itself (statically) not adding any prototypical fields. Any CopyConstructor\n * you give this may have a `poolSize` property, and will look for a\n * prototypical `destructor` on instances.\n *\n * @param {Function} CopyConstructor Constructor that can be used to reset.\n * @param {Function} pooler Customizable pooler.\n */\n\nvar addPoolingTo = function addPoolingTo(CopyConstructor, pooler) {\n // Casting as any so that flow ignores the actual implementation and trusts\n // it to match the type we declared\n var NewKlass = CopyConstructor;\n NewKlass.instancePool = [];\n NewKlass.getPooled = pooler || DEFAULT_POOLER;\n\n if (!NewKlass.poolSize) {\n NewKlass.poolSize = DEFAULT_POOL_SIZE;\n }\n\n NewKlass.release = standardReleaser;\n return NewKlass;\n};\n\nvar PooledClass = {\n addPoolingTo: addPoolingTo,\n twoArgumentPooler: twoArgumentPooler\n};\nexport default PooledClass;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport PooledClass from '../../vendor/react-native/PooledClass';\nvar twoArgumentPooler = PooledClass.twoArgumentPooler;\n/**\n * PooledClass representing the bounding rectangle of a region.\n */\n\nfunction BoundingDimensions(width, height) {\n this.width = width;\n this.height = height;\n}\n\nBoundingDimensions.prototype.destructor = function () {\n this.width = null;\n this.height = null;\n};\n\nBoundingDimensions.getPooledFromElement = function (element) {\n return BoundingDimensions.getPooled(element.offsetWidth, element.offsetHeight);\n};\n\nPooledClass.addPoolingTo(BoundingDimensions, twoArgumentPooler);\nexport default BoundingDimensions;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport PooledClass from '../../vendor/react-native/PooledClass';\nvar twoArgumentPooler = PooledClass.twoArgumentPooler;\n\nfunction Position(left, top) {\n this.left = left;\n this.top = top;\n}\n\nPosition.prototype.destructor = function () {\n this.left = null;\n this.top = null;\n};\n\nPooledClass.addPoolingTo(Position, twoArgumentPooler);\nexport default Position;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport AccessibilityUtil from '../../modules/AccessibilityUtil';\nimport BoundingDimensions from './BoundingDimensions';\nimport findNodeHandle from '../findNodeHandle';\nimport normalizeColor from 'normalize-css-color';\nimport Position from './Position';\nimport React from 'react';\nimport UIManager from '../UIManager';\nimport View from '../View';\n\nvar extractSingleTouch = nativeEvent => {\n var touches = nativeEvent.touches;\n var changedTouches = nativeEvent.changedTouches;\n var hasTouches = touches && touches.length > 0;\n var hasChangedTouches = changedTouches && changedTouches.length > 0;\n return !hasTouches && hasChangedTouches ? changedTouches[0] : hasTouches ? touches[0] : nativeEvent;\n};\n/**\n * `Touchable`: Taps done right.\n *\n * You hook your `ResponderEventPlugin` events into `Touchable`. `Touchable`\n * will measure time/geometry and tells you when to give feedback to the user.\n *\n * ====================== Touchable Tutorial ===============================\n * The `Touchable` mixin helps you handle the \"press\" interaction. It analyzes\n * the geometry of elements, and observes when another responder (scroll view\n * etc) has stolen the touch lock. It notifies your component when it should\n * give feedback to the user. (bouncing/highlighting/unhighlighting).\n *\n * - When a touch was activated (typically you highlight)\n * - When a touch was deactivated (typically you unhighlight)\n * - When a touch was \"pressed\" - a touch ended while still within the geometry\n * of the element, and no other element (like scroller) has \"stolen\" touch\n * lock (\"responder\") (Typically you bounce the element).\n *\n * A good tap interaction isn't as simple as you might think. There should be a\n * slight delay before showing a highlight when starting a touch. If a\n * subsequent touch move exceeds the boundary of the element, it should\n * unhighlight, but if that same touch is brought back within the boundary, it\n * should rehighlight again. A touch can move in and out of that boundary\n * several times, each time toggling highlighting, but a \"press\" is only\n * triggered if that touch ends while within the element's boundary and no\n * scroller (or anything else) has stolen the lock on touches.\n *\n * To create a new type of component that handles interaction using the\n * `Touchable` mixin, do the following:\n *\n * - Initialize the `Touchable` state.\n *\n * getInitialState: function() {\n * return merge(this.touchableGetInitialState(), yourComponentState);\n * }\n *\n * - Choose the rendered component who's touches should start the interactive\n * sequence. On that rendered node, forward all `Touchable` responder\n * handlers. You can choose any rendered node you like. Choose a node whose\n * hit target you'd like to instigate the interaction sequence:\n *\n * // In render function:\n * return (\n * \n * \n * Even though the hit detection/interactions are triggered by the\n * wrapping (typically larger) node, we usually end up implementing\n * custom logic that highlights this inner one.\n * \n * \n * );\n *\n * - You may set up your own handlers for each of these events, so long as you\n * also invoke the `touchable*` handlers inside of your custom handler.\n *\n * - Implement the handlers on your component class in order to provide\n * feedback to the user. See documentation for each of these class methods\n * that you should implement.\n *\n * touchableHandlePress: function() {\n * this.performBounceAnimation(); // or whatever you want to do.\n * },\n * touchableHandleActivePressIn: function() {\n * this.beginHighlighting(...); // Whatever you like to convey activation\n * },\n * touchableHandleActivePressOut: function() {\n * this.endHighlighting(...); // Whatever you like to convey deactivation\n * },\n *\n * - There are more advanced methods you can implement (see documentation below):\n * touchableGetHighlightDelayMS: function() {\n * return 20;\n * }\n * // In practice, *always* use a predeclared constant (conserve memory).\n * touchableGetPressRectOffset: function() {\n * return {top: 20, left: 20, right: 20, bottom: 100};\n * }\n */\n\n/**\n * Touchable states.\n */\n\n\nvar States = {\n NOT_RESPONDER: 'NOT_RESPONDER',\n // Not the responder\n RESPONDER_INACTIVE_PRESS_IN: 'RESPONDER_INACTIVE_PRESS_IN',\n // Responder, inactive, in the `PressRect`\n RESPONDER_INACTIVE_PRESS_OUT: 'RESPONDER_INACTIVE_PRESS_OUT',\n // Responder, inactive, out of `PressRect`\n RESPONDER_ACTIVE_PRESS_IN: 'RESPONDER_ACTIVE_PRESS_IN',\n // Responder, active, in the `PressRect`\n RESPONDER_ACTIVE_PRESS_OUT: 'RESPONDER_ACTIVE_PRESS_OUT',\n // Responder, active, out of `PressRect`\n RESPONDER_ACTIVE_LONG_PRESS_IN: 'RESPONDER_ACTIVE_LONG_PRESS_IN',\n // Responder, active, in the `PressRect`, after long press threshold\n RESPONDER_ACTIVE_LONG_PRESS_OUT: 'RESPONDER_ACTIVE_LONG_PRESS_OUT',\n // Responder, active, out of `PressRect`, after long press threshold\n ERROR: 'ERROR'\n};\n\n/*\n * Quick lookup map for states that are considered to be \"active\"\n */\nvar baseStatesConditions = {\n NOT_RESPONDER: false,\n RESPONDER_INACTIVE_PRESS_IN: false,\n RESPONDER_INACTIVE_PRESS_OUT: false,\n RESPONDER_ACTIVE_PRESS_IN: false,\n RESPONDER_ACTIVE_PRESS_OUT: false,\n RESPONDER_ACTIVE_LONG_PRESS_IN: false,\n RESPONDER_ACTIVE_LONG_PRESS_OUT: false,\n ERROR: false\n};\n\nvar IsActive = _objectSpread(_objectSpread({}, baseStatesConditions), {}, {\n RESPONDER_ACTIVE_PRESS_OUT: true,\n RESPONDER_ACTIVE_PRESS_IN: true\n});\n/**\n * Quick lookup for states that are considered to be \"pressing\" and are\n * therefore eligible to result in a \"selection\" if the press stops.\n */\n\n\nvar IsPressingIn = _objectSpread(_objectSpread({}, baseStatesConditions), {}, {\n RESPONDER_INACTIVE_PRESS_IN: true,\n RESPONDER_ACTIVE_PRESS_IN: true,\n RESPONDER_ACTIVE_LONG_PRESS_IN: true\n});\n\nvar IsLongPressingIn = _objectSpread(_objectSpread({}, baseStatesConditions), {}, {\n RESPONDER_ACTIVE_LONG_PRESS_IN: true\n});\n/**\n * Inputs to the state machine.\n */\n\n\nvar Signals = {\n DELAY: 'DELAY',\n RESPONDER_GRANT: 'RESPONDER_GRANT',\n RESPONDER_RELEASE: 'RESPONDER_RELEASE',\n RESPONDER_TERMINATED: 'RESPONDER_TERMINATED',\n ENTER_PRESS_RECT: 'ENTER_PRESS_RECT',\n LEAVE_PRESS_RECT: 'LEAVE_PRESS_RECT',\n LONG_PRESS_DETECTED: 'LONG_PRESS_DETECTED'\n};\n\n/**\n * Mapping from States x Signals => States\n */\nvar Transitions = {\n NOT_RESPONDER: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.RESPONDER_INACTIVE_PRESS_IN,\n RESPONDER_RELEASE: States.ERROR,\n RESPONDER_TERMINATED: States.ERROR,\n ENTER_PRESS_RECT: States.ERROR,\n LEAVE_PRESS_RECT: States.ERROR,\n LONG_PRESS_DETECTED: States.ERROR\n },\n RESPONDER_INACTIVE_PRESS_IN: {\n DELAY: States.RESPONDER_ACTIVE_PRESS_IN,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR\n },\n RESPONDER_INACTIVE_PRESS_OUT: {\n DELAY: States.RESPONDER_ACTIVE_PRESS_OUT,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR\n },\n RESPONDER_ACTIVE_PRESS_IN: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.RESPONDER_ACTIVE_LONG_PRESS_IN\n },\n RESPONDER_ACTIVE_PRESS_OUT: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR\n },\n RESPONDER_ACTIVE_LONG_PRESS_IN: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_OUT,\n LONG_PRESS_DETECTED: States.RESPONDER_ACTIVE_LONG_PRESS_IN\n },\n RESPONDER_ACTIVE_LONG_PRESS_OUT: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR\n },\n error: {\n DELAY: States.NOT_RESPONDER,\n RESPONDER_GRANT: States.RESPONDER_INACTIVE_PRESS_IN,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.NOT_RESPONDER,\n LEAVE_PRESS_RECT: States.NOT_RESPONDER,\n LONG_PRESS_DETECTED: States.NOT_RESPONDER\n }\n}; // ==== Typical Constants for integrating into UI components ====\n// var HIT_EXPAND_PX = 20;\n// var HIT_VERT_OFFSET_PX = 10;\n\nvar HIGHLIGHT_DELAY_MS = 130;\nvar PRESS_EXPAND_PX = 20;\nvar LONG_PRESS_THRESHOLD = 500;\nvar LONG_PRESS_DELAY_MS = LONG_PRESS_THRESHOLD - HIGHLIGHT_DELAY_MS;\nvar LONG_PRESS_ALLOWED_MOVEMENT = 10; // Default amount \"active\" region protrudes beyond box\n\n/**\n * By convention, methods prefixed with underscores are meant to be @private,\n * and not @protected. Mixers shouldn't access them - not even to provide them\n * as callback handlers.\n *\n *\n * ========== Geometry =========\n * `Touchable` only assumes that there exists a `HitRect` node. The `PressRect`\n * is an abstract box that is extended beyond the `HitRect`.\n *\n * +--------------------------+\n * | | - \"Start\" events in `HitRect` cause `HitRect`\n * | +--------------------+ | to become the responder.\n * | | +--------------+ | | - `HitRect` is typically expanded around\n * | | | | | | the `VisualRect`, but shifted downward.\n * | | | VisualRect | | | - After pressing down, after some delay,\n * | | | | | | and before letting up, the Visual React\n * | | +--------------+ | | will become \"active\". This makes it eligible\n * | | HitRect | | for being highlighted (so long as the\n * | +--------------------+ | press remains in the `PressRect`).\n * | PressRect o |\n * +----------------------|---+\n * Out Region |\n * +-----+ This gap between the `HitRect` and\n * `PressRect` allows a touch to move far away\n * from the original hit rect, and remain\n * highlighted, and eligible for a \"Press\".\n * Customize this via\n * `touchableGetPressRectOffset()`.\n *\n *\n *\n * ======= State Machine =======\n *\n * +-------------+ <---+ RESPONDER_RELEASE\n * |NOT_RESPONDER|\n * +-------------+ <---+ RESPONDER_TERMINATED\n * +\n * | RESPONDER_GRANT (HitRect)\n * v\n * +---------------------------+ DELAY +-------------------------+ T + DELAY +------------------------------+\n * |RESPONDER_INACTIVE_PRESS_IN|+-------->|RESPONDER_ACTIVE_PRESS_IN| +------------> |RESPONDER_ACTIVE_LONG_PRESS_IN|\n * +---------------------------+ +-------------------------+ +------------------------------+\n * + ^ + ^ + ^\n * |LEAVE_ |ENTER_ |LEAVE_ |ENTER_ |LEAVE_ |ENTER_\n * |PRESS_RECT |PRESS_RECT |PRESS_RECT |PRESS_RECT |PRESS_RECT |PRESS_RECT\n * | | | | | |\n * v + v + v +\n * +----------------------------+ DELAY +--------------------------+ +-------------------------------+\n * |RESPONDER_INACTIVE_PRESS_OUT|+------->|RESPONDER_ACTIVE_PRESS_OUT| |RESPONDER_ACTIVE_LONG_PRESS_OUT|\n * +----------------------------+ +--------------------------+ +-------------------------------+\n *\n * T + DELAY => LONG_PRESS_DELAY_MS + DELAY\n *\n * Not drawn are the side effects of each transition. The most important side\n * effect is the `touchableHandlePress` abstract method invocation that occurs\n * when a responder is released while in either of the \"Press\" states.\n *\n * The other important side effects are the highlight abstract method\n * invocations (internal callbacks) to be implemented by the mixer.\n *\n *\n * @lends Touchable.prototype\n */\n\nvar TouchableMixin = {\n // HACK (part 1): basic support for touchable interactions using a keyboard\n componentDidMount: function componentDidMount() {\n this._touchableNode = findNodeHandle(this);\n\n if (this._touchableNode && this._touchableNode.addEventListener) {\n this._touchableBlurListener = e => {\n if (this._isTouchableKeyboardActive) {\n if (this.state.touchable.touchState && this.state.touchable.touchState !== States.NOT_RESPONDER) {\n this.touchableHandleResponderTerminate({\n nativeEvent: e\n });\n }\n\n this._isTouchableKeyboardActive = false;\n }\n };\n\n this._touchableNode.addEventListener('blur', this._touchableBlurListener);\n }\n },\n\n /**\n * Clear all timeouts on unmount\n */\n componentWillUnmount: function componentWillUnmount() {\n if (this._touchableNode && this._touchableNode.addEventListener) {\n this._touchableNode.removeEventListener('blur', this._touchableBlurListener);\n }\n\n this.touchableDelayTimeout && clearTimeout(this.touchableDelayTimeout);\n this.longPressDelayTimeout && clearTimeout(this.longPressDelayTimeout);\n this.pressOutDelayTimeout && clearTimeout(this.pressOutDelayTimeout); // Clear DOM nodes\n\n this.pressInLocation = null;\n this.state.touchable.responderID = null;\n this._touchableNode = null;\n },\n\n /**\n * It's prefer that mixins determine state in this way, having the class\n * explicitly mix the state in the one and only `getInitialState` method.\n *\n * @return {object} State object to be placed inside of\n * `this.state.touchable`.\n */\n touchableGetInitialState: function touchableGetInitialState() {\n return {\n touchable: {\n touchState: undefined,\n responderID: null\n }\n };\n },\n // ==== Hooks to Gesture Responder system ====\n\n /**\n * Must return true if embedded in a native platform scroll view.\n */\n touchableHandleResponderTerminationRequest: function touchableHandleResponderTerminationRequest() {\n return !this.props.rejectResponderTermination;\n },\n\n /**\n * Must return true to start the process of `Touchable`.\n */\n touchableHandleStartShouldSetResponder: function touchableHandleStartShouldSetResponder() {\n return !this.props.disabled;\n },\n\n /**\n * Return true to cancel press on long press.\n */\n touchableLongPressCancelsPress: function touchableLongPressCancelsPress() {\n return true;\n },\n\n /**\n * Place as callback for a DOM element's `onResponderGrant` event.\n * @param {SyntheticEvent} e Synthetic event from event system.\n *\n */\n touchableHandleResponderGrant: function touchableHandleResponderGrant(e) {\n var dispatchID = e.currentTarget; // Since e is used in a callback invoked on another event loop\n // (as in setTimeout etc), we need to call e.persist() on the\n // event to make sure it doesn't get reused in the event object pool.\n\n e.persist();\n this.pressOutDelayTimeout && clearTimeout(this.pressOutDelayTimeout);\n this.pressOutDelayTimeout = null;\n this.state.touchable.touchState = States.NOT_RESPONDER;\n this.state.touchable.responderID = dispatchID;\n\n this._receiveSignal(Signals.RESPONDER_GRANT, e);\n\n var delayMS = this.touchableGetHighlightDelayMS !== undefined ? Math.max(this.touchableGetHighlightDelayMS(), 0) : HIGHLIGHT_DELAY_MS;\n delayMS = isNaN(delayMS) ? HIGHLIGHT_DELAY_MS : delayMS;\n\n if (delayMS !== 0) {\n this.touchableDelayTimeout = setTimeout(this._handleDelay.bind(this, e), delayMS);\n } else {\n this._handleDelay(e);\n }\n\n var longDelayMS = this.touchableGetLongPressDelayMS !== undefined ? Math.max(this.touchableGetLongPressDelayMS(), 10) : LONG_PRESS_DELAY_MS;\n longDelayMS = isNaN(longDelayMS) ? LONG_PRESS_DELAY_MS : longDelayMS;\n this.longPressDelayTimeout = setTimeout(this._handleLongDelay.bind(this, e), longDelayMS + delayMS);\n },\n\n /**\n * Place as callback for a DOM element's `onResponderRelease` event.\n */\n touchableHandleResponderRelease: function touchableHandleResponderRelease(e) {\n this.pressInLocation = null;\n\n this._receiveSignal(Signals.RESPONDER_RELEASE, e);\n },\n\n /**\n * Place as callback for a DOM element's `onResponderTerminate` event.\n */\n touchableHandleResponderTerminate: function touchableHandleResponderTerminate(e) {\n this.pressInLocation = null;\n\n this._receiveSignal(Signals.RESPONDER_TERMINATED, e);\n },\n\n /**\n * Place as callback for a DOM element's `onResponderMove` event.\n */\n touchableHandleResponderMove: function touchableHandleResponderMove(e) {\n // Measurement may not have returned yet.\n if (!this.state.touchable.positionOnActivate) {\n return;\n }\n\n var positionOnActivate = this.state.touchable.positionOnActivate;\n var dimensionsOnActivate = this.state.touchable.dimensionsOnActivate;\n var pressRectOffset = this.touchableGetPressRectOffset ? this.touchableGetPressRectOffset() : {\n left: PRESS_EXPAND_PX,\n right: PRESS_EXPAND_PX,\n top: PRESS_EXPAND_PX,\n bottom: PRESS_EXPAND_PX\n };\n var pressExpandLeft = pressRectOffset.left;\n var pressExpandTop = pressRectOffset.top;\n var pressExpandRight = pressRectOffset.right;\n var pressExpandBottom = pressRectOffset.bottom;\n var hitSlop = this.touchableGetHitSlop ? this.touchableGetHitSlop() : null;\n\n if (hitSlop) {\n pressExpandLeft += hitSlop.left || 0;\n pressExpandTop += hitSlop.top || 0;\n pressExpandRight += hitSlop.right || 0;\n pressExpandBottom += hitSlop.bottom || 0;\n }\n\n var touch = extractSingleTouch(e.nativeEvent);\n var pageX = touch && touch.pageX;\n var pageY = touch && touch.pageY;\n\n if (this.pressInLocation) {\n var movedDistance = this._getDistanceBetweenPoints(pageX, pageY, this.pressInLocation.pageX, this.pressInLocation.pageY);\n\n if (movedDistance > LONG_PRESS_ALLOWED_MOVEMENT) {\n this._cancelLongPressDelayTimeout();\n }\n }\n\n var isTouchWithinActive = pageX > positionOnActivate.left - pressExpandLeft && pageY > positionOnActivate.top - pressExpandTop && pageX < positionOnActivate.left + dimensionsOnActivate.width + pressExpandRight && pageY < positionOnActivate.top + dimensionsOnActivate.height + pressExpandBottom;\n\n if (isTouchWithinActive) {\n var prevState = this.state.touchable.touchState;\n\n this._receiveSignal(Signals.ENTER_PRESS_RECT, e);\n\n var curState = this.state.touchable.touchState;\n\n if (curState === States.RESPONDER_INACTIVE_PRESS_IN && prevState !== States.RESPONDER_INACTIVE_PRESS_IN) {\n // fix for t7967420\n this._cancelLongPressDelayTimeout();\n }\n } else {\n this._cancelLongPressDelayTimeout();\n\n this._receiveSignal(Signals.LEAVE_PRESS_RECT, e);\n }\n },\n\n /**\n * Invoked when the item receives focus. Mixers might override this to\n * visually distinguish the `VisualRect` so that the user knows that it\n * currently has the focus. Most platforms only support a single element being\n * focused at a time, in which case there may have been a previously focused\n * element that was blurred just prior to this. This can be overridden when\n * using `Touchable.Mixin.withoutDefaultFocusAndBlur`.\n */\n touchableHandleFocus: function touchableHandleFocus(e) {\n this.props.onFocus && this.props.onFocus(e);\n },\n\n /**\n * Invoked when the item loses focus. Mixers might override this to\n * visually distinguish the `VisualRect` so that the user knows that it\n * no longer has focus. Most platforms only support a single element being\n * focused at a time, in which case the focus may have moved to another.\n * This can be overridden when using\n * `Touchable.Mixin.withoutDefaultFocusAndBlur`.\n */\n touchableHandleBlur: function touchableHandleBlur(e) {\n this.props.onBlur && this.props.onBlur(e);\n },\n // ==== Abstract Application Callbacks ====\n\n /**\n * Invoked when the item should be highlighted. Mixers should implement this\n * to visually distinguish the `VisualRect` so that the user knows that\n * releasing a touch will result in a \"selection\" (analog to click).\n *\n * @abstract\n * touchableHandleActivePressIn: function,\n */\n\n /**\n * Invoked when the item is \"active\" (in that it is still eligible to become\n * a \"select\") but the touch has left the `PressRect`. Usually the mixer will\n * want to unhighlight the `VisualRect`. If the user (while pressing) moves\n * back into the `PressRect` `touchableHandleActivePressIn` will be invoked\n * again and the mixer should probably highlight the `VisualRect` again. This\n * event will not fire on an `touchEnd/mouseUp` event, only move events while\n * the user is depressing the mouse/touch.\n *\n * @abstract\n * touchableHandleActivePressOut: function\n */\n\n /**\n * Invoked when the item is \"selected\" - meaning the interaction ended by\n * letting up while the item was either in the state\n * `RESPONDER_ACTIVE_PRESS_IN` or `RESPONDER_INACTIVE_PRESS_IN`.\n *\n * @abstract\n * touchableHandlePress: function\n */\n\n /**\n * Invoked when the item is long pressed - meaning the interaction ended by\n * letting up while the item was in `RESPONDER_ACTIVE_LONG_PRESS_IN`. If\n * `touchableHandleLongPress` is *not* provided, `touchableHandlePress` will\n * be called as it normally is. If `touchableHandleLongPress` is provided, by\n * default any `touchableHandlePress` callback will not be invoked. To\n * override this default behavior, override `touchableLongPressCancelsPress`\n * to return false. As a result, `touchableHandlePress` will be called when\n * lifting up, even if `touchableHandleLongPress` has also been called.\n *\n * @abstract\n * touchableHandleLongPress: function\n */\n\n /**\n * Returns the number of millis to wait before triggering a highlight.\n *\n * @abstract\n * touchableGetHighlightDelayMS: function\n */\n\n /**\n * Returns the amount to extend the `HitRect` into the `PressRect`. Positive\n * numbers mean the size expands outwards.\n *\n * @abstract\n * touchableGetPressRectOffset: function\n */\n // ==== Internal Logic ====\n\n /**\n * Measures the `HitRect` node on activation. The Bounding rectangle is with\n * respect to viewport - not page, so adding the `pageXOffset/pageYOffset`\n * should result in points that are in the same coordinate system as an\n * event's `globalX/globalY` data values.\n *\n * - Consider caching this for the lifetime of the component, or possibly\n * being able to share this cache between any `ScrollMap` view.\n *\n * @sideeffects\n * @private\n */\n _remeasureMetricsOnActivation: function _remeasureMetricsOnActivation() {\n var tag = this.state.touchable.responderID;\n\n if (tag == null) {\n return;\n }\n\n UIManager.measure(tag, this._handleQueryLayout);\n },\n _handleQueryLayout: function _handleQueryLayout(l, t, w, h, globalX, globalY) {\n //don't do anything UIManager failed to measure node\n if (!l && !t && !w && !h && !globalX && !globalY) {\n return;\n }\n\n this.state.touchable.positionOnActivate && Position.release(this.state.touchable.positionOnActivate);\n this.state.touchable.dimensionsOnActivate && // $FlowFixMe\n BoundingDimensions.release(this.state.touchable.dimensionsOnActivate);\n this.state.touchable.positionOnActivate = Position.getPooled(globalX, globalY); // $FlowFixMe\n\n this.state.touchable.dimensionsOnActivate = BoundingDimensions.getPooled(w, h);\n },\n _handleDelay: function _handleDelay(e) {\n this.touchableDelayTimeout = null;\n\n this._receiveSignal(Signals.DELAY, e);\n },\n _handleLongDelay: function _handleLongDelay(e) {\n this.longPressDelayTimeout = null;\n var curState = this.state.touchable.touchState;\n\n if (curState !== States.RESPONDER_ACTIVE_PRESS_IN && curState !== States.RESPONDER_ACTIVE_LONG_PRESS_IN) {\n console.error('Attempted to transition from state `' + curState + '` to `' + States.RESPONDER_ACTIVE_LONG_PRESS_IN + '`, which is not supported. This is ' + 'most likely due to `Touchable.longPressDelayTimeout` not being cancelled.');\n } else {\n this._receiveSignal(Signals.LONG_PRESS_DETECTED, e);\n }\n },\n\n /**\n * Receives a state machine signal, performs side effects of the transition\n * and stores the new state. Validates the transition as well.\n *\n * @param {Signals} signal State machine signal.\n * @throws Error if invalid state transition or unrecognized signal.\n * @sideeffects\n */\n _receiveSignal: function _receiveSignal(signal, e) {\n var responderID = this.state.touchable.responderID;\n var curState = this.state.touchable.touchState;\n var nextState = Transitions[curState] && Transitions[curState][signal];\n\n if (!responderID && signal === Signals.RESPONDER_RELEASE) {\n return;\n }\n\n if (!nextState) {\n throw new Error('Unrecognized signal `' + signal + '` or state `' + curState + '` for Touchable responder `' + responderID + '`');\n }\n\n if (nextState === States.ERROR) {\n throw new Error('Touchable cannot transition from `' + curState + '` to `' + signal + '` for responder `' + responderID + '`');\n }\n\n if (curState !== nextState) {\n this._performSideEffectsForTransition(curState, nextState, signal, e);\n\n this.state.touchable.touchState = nextState;\n }\n },\n _cancelLongPressDelayTimeout: function _cancelLongPressDelayTimeout() {\n this.longPressDelayTimeout && clearTimeout(this.longPressDelayTimeout);\n this.longPressDelayTimeout = null;\n },\n _isHighlight: function _isHighlight(state) {\n return state === States.RESPONDER_ACTIVE_PRESS_IN || state === States.RESPONDER_ACTIVE_LONG_PRESS_IN;\n },\n _savePressInLocation: function _savePressInLocation(e) {\n var touch = extractSingleTouch(e.nativeEvent);\n var pageX = touch && touch.pageX;\n var pageY = touch && touch.pageY;\n var locationX = touch && touch.locationX;\n var locationY = touch && touch.locationY;\n this.pressInLocation = {\n pageX,\n pageY,\n locationX,\n locationY\n };\n },\n _getDistanceBetweenPoints: function _getDistanceBetweenPoints(aX, aY, bX, bY) {\n var deltaX = aX - bX;\n var deltaY = aY - bY;\n return Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n },\n\n /**\n * Will perform a transition between touchable states, and identify any\n * highlighting or unhighlighting that must be performed for this particular\n * transition.\n *\n * @param {States} curState Current Touchable state.\n * @param {States} nextState Next Touchable state.\n * @param {Signal} signal Signal that triggered the transition.\n * @param {Event} e Native event.\n * @sideeffects\n */\n _performSideEffectsForTransition: function _performSideEffectsForTransition(curState, nextState, signal, e) {\n var curIsHighlight = this._isHighlight(curState);\n\n var newIsHighlight = this._isHighlight(nextState);\n\n var isFinalSignal = signal === Signals.RESPONDER_TERMINATED || signal === Signals.RESPONDER_RELEASE;\n\n if (isFinalSignal) {\n this._cancelLongPressDelayTimeout();\n }\n\n var isInitialTransition = curState === States.NOT_RESPONDER && nextState === States.RESPONDER_INACTIVE_PRESS_IN;\n var isActiveTransition = !IsActive[curState] && IsActive[nextState];\n\n if (isInitialTransition || isActiveTransition) {\n this._remeasureMetricsOnActivation();\n }\n\n if (IsPressingIn[curState] && signal === Signals.LONG_PRESS_DETECTED) {\n this.touchableHandleLongPress && this.touchableHandleLongPress(e);\n }\n\n if (newIsHighlight && !curIsHighlight) {\n this._startHighlight(e);\n } else if (!newIsHighlight && curIsHighlight) {\n this._endHighlight(e);\n }\n\n if (IsPressingIn[curState] && signal === Signals.RESPONDER_RELEASE) {\n var hasLongPressHandler = !!this.props.onLongPress;\n var pressIsLongButStillCallOnPress = IsLongPressingIn[curState] && ( // We *are* long pressing.. // But either has no long handler\n !hasLongPressHandler || !this.touchableLongPressCancelsPress()); // or we're told to ignore it.\n\n var shouldInvokePress = !IsLongPressingIn[curState] || pressIsLongButStillCallOnPress;\n\n if (shouldInvokePress && this.touchableHandlePress) {\n if (!newIsHighlight && !curIsHighlight) {\n // we never highlighted because of delay, but we should highlight now\n this._startHighlight(e);\n\n this._endHighlight(e);\n }\n\n this.touchableHandlePress(e);\n }\n }\n\n this.touchableDelayTimeout && clearTimeout(this.touchableDelayTimeout);\n this.touchableDelayTimeout = null;\n },\n _playTouchSound: function _playTouchSound() {\n UIManager.playTouchSound();\n },\n _startHighlight: function _startHighlight(e) {\n this._savePressInLocation(e);\n\n this.touchableHandleActivePressIn && this.touchableHandleActivePressIn(e);\n },\n _endHighlight: function _endHighlight(e) {\n if (this.touchableHandleActivePressOut) {\n if (this.touchableGetPressOutDelayMS && this.touchableGetPressOutDelayMS()) {\n this.pressOutDelayTimeout = setTimeout(() => {\n this.touchableHandleActivePressOut(e);\n }, this.touchableGetPressOutDelayMS());\n } else {\n this.touchableHandleActivePressOut(e);\n }\n }\n },\n // HACK (part 2): basic support for touchable interactions using a keyboard (including\n // delays and longPress)\n touchableHandleKeyEvent: function touchableHandleKeyEvent(e) {\n var type = e.type,\n key = e.key;\n\n if (key === 'Enter' || key === ' ') {\n if (type === 'keydown') {\n if (!this._isTouchableKeyboardActive) {\n if (!this.state.touchable.touchState || this.state.touchable.touchState === States.NOT_RESPONDER) {\n this.touchableHandleResponderGrant(e);\n this._isTouchableKeyboardActive = true;\n }\n }\n } else if (type === 'keyup') {\n if (this._isTouchableKeyboardActive) {\n if (this.state.touchable.touchState && this.state.touchable.touchState !== States.NOT_RESPONDER) {\n this.touchableHandleResponderRelease(e);\n this._isTouchableKeyboardActive = false;\n }\n }\n }\n\n e.stopPropagation(); // prevent the default behaviour unless the Touchable functions as a link\n // and Enter is pressed\n\n if (!(key === 'Enter' && AccessibilityUtil.propsToAriaRole(this.props) === 'link')) {\n e.preventDefault();\n }\n }\n },\n withoutDefaultFocusAndBlur: {}\n};\n/**\n * Provide an optional version of the mixin where `touchableHandleFocus` and\n * `touchableHandleBlur` can be overridden. This allows appropriate defaults to\n * be set on TV platforms, without breaking existing implementations of\n * `Touchable`.\n */\n\nvar touchableHandleFocus = TouchableMixin.touchableHandleFocus,\n touchableHandleBlur = TouchableMixin.touchableHandleBlur,\n TouchableMixinWithoutDefaultFocusAndBlur = _objectWithoutPropertiesLoose(TouchableMixin, [\"touchableHandleFocus\", \"touchableHandleBlur\"]);\n\nTouchableMixin.withoutDefaultFocusAndBlur = TouchableMixinWithoutDefaultFocusAndBlur;\nvar Touchable = {\n Mixin: TouchableMixin,\n TOUCH_TARGET_DEBUG: false,\n // Highlights all touchable targets. Toggle with Inspector.\n\n /**\n * Renders a debugging overlay to visualize touch target with hitSlop (might not work on Android).\n */\n renderDebugView: _ref => {\n var color = _ref.color,\n hitSlop = _ref.hitSlop;\n\n if (!Touchable.TOUCH_TARGET_DEBUG) {\n return null;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n throw Error('Touchable.TOUCH_TARGET_DEBUG should not be enabled in prod!');\n }\n\n var debugHitSlopStyle = {};\n hitSlop = hitSlop || {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0\n };\n\n for (var key in hitSlop) {\n debugHitSlopStyle[key] = -hitSlop[key];\n }\n\n var normalizedColor = normalizeColor(color);\n\n if (typeof normalizedColor !== 'number') {\n return null;\n }\n\n var hexColor = '#' + ('00000000' + normalizedColor.toString(16)).substr(-8);\n return /*#__PURE__*/React.createElement(View, {\n pointerEvents: \"none\",\n style: _objectSpread({\n position: 'absolute',\n borderColor: hexColor.slice(0, -2) + '55',\n // More opaque\n borderWidth: 1,\n borderStyle: 'dashed',\n backgroundColor: hexColor.slice(0, -2) + '0F'\n }, debugHitSlopStyle)\n });\n }\n};\nexport default Touchable;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport View from '../../exports/View';\nimport React from 'react';\n/**\n * Common implementation for a simple stubbed view.\n */\n\nclass UnimplementedView extends React.Component {\n setNativeProps() {// Do nothing.\n }\n\n render() {\n return /*#__PURE__*/React.createElement(View, {\n style: [unimplementedViewStyles, this.props.style]\n }, this.props.children);\n }\n\n}\n\nvar unimplementedViewStyles = process.env.NODE_ENV !== 'production' ? {\n alignSelf: 'flex-start',\n borderColor: 'red',\n borderWidth: 1\n} : {};\nexport default UnimplementedView;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport UnimplementedView from '../../modules/UnimplementedView';\nexport default UnimplementedView;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport VirtualizedList from '../../vendor/react-native/VirtualizedList';\nexport default VirtualizedList;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport React from 'react';\nimport UnimplementedView from '../../modules/UnimplementedView';\n\nfunction YellowBox(props) {\n return /*#__PURE__*/React.createElement(UnimplementedView, props);\n}\n\nYellowBox.ignoreWarnings = () => {};\n\nexport default YellowBox;","/**\n * Copyright (c) 2016-present, Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar LogBox = {\n ignoreLogs() {},\n\n ignoreAllLogs() {},\n\n uninstall() {},\n\n install() {}\n\n};\nexport default LogBox;","import UnimplementedView from '../../modules/UnimplementedView';\nexport default UnimplementedView;","import UnimplementedView from '../../modules/UnimplementedView';\nexport default UnimplementedView;","import UnimplementedView from '../../modules/UnimplementedView';\nexport default UnimplementedView;","var promiseMock = () => Promise.resolve(false);\n\nexport default {\n PERMISSIONS: {},\n RESULTS: {},\n checkPermission: promiseMock,\n check: promiseMock,\n requestPermission: promiseMock,\n request: promiseMock,\n requestMultiple: promiseMock\n};","export default {};","export default {};","export default {};","import RCTDeviceEventEmitter from '../../vendor/react-native/NativeEventEmitter/RCTDeviceEventEmitter';\nexport default RCTDeviceEventEmitter;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport Appearance from '../Appearance';\nexport default function useColorScheme() {\n var _React$useState = React.useState(Appearance.getColorScheme()),\n colorScheme = _React$useState[0],\n setColorScheme = _React$useState[1];\n\n React.useEffect(() => {\n function listener(appearance) {\n setColorScheme(appearance.colorScheme);\n }\n\n var _Appearance$addChange = Appearance.addChangeListener(listener),\n remove = _Appearance$addChange.remove;\n\n return remove;\n });\n return colorScheme;\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { useLocaleContext } from '../../modules/useLocale';\nexport default useLocaleContext;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar accessibilityRoleToWebRole = {\n adjustable: 'slider',\n button: 'button',\n header: 'heading',\n image: 'img',\n imagebutton: null,\n keyboardkey: null,\n label: null,\n link: 'link',\n none: 'presentation',\n search: 'search',\n summary: 'region',\n text: null\n};\n\nvar propsToAriaRole = _ref => {\n var accessibilityRole = _ref.accessibilityRole;\n\n if (accessibilityRole) {\n var inferredRole = accessibilityRoleToWebRole[accessibilityRole];\n\n if (inferredRole !== null) {\n // ignore roles that don't map to web\n return inferredRole || accessibilityRole;\n }\n }\n};\n\nexport default propsToAriaRole;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport propsToAriaRole from './propsToAriaRole';\nvar roleComponents = {\n article: 'article',\n banner: 'header',\n blockquote: 'blockquote',\n code: 'code',\n complementary: 'aside',\n contentinfo: 'footer',\n deletion: 'del',\n emphasis: 'em',\n figure: 'figure',\n insertion: 'ins',\n form: 'form',\n list: 'ul',\n listitem: 'li',\n main: 'main',\n navigation: 'nav',\n region: 'section',\n strong: 'strong'\n};\nvar emptyObject = {};\n\nvar propsToAccessibilityComponent = function propsToAccessibilityComponent(props) {\n if (props === void 0) {\n props = emptyObject;\n }\n\n // special-case for \"label\" role which doesn't map to an ARIA role\n if (props.accessibilityRole === 'label') {\n return 'label';\n }\n\n var role = propsToAriaRole(props);\n\n if (role) {\n if (role === 'heading') {\n var level = props.accessibilityLevel || props['aria-level'];\n\n if (level != null) {\n return \"h\" + level;\n }\n\n return 'h1';\n }\n\n return roleComponents[role];\n }\n};\n\nexport default propsToAccessibilityComponent;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport isDisabled from './isDisabled';\nimport propsToAccessibilityComponent from './propsToAccessibilityComponent';\nimport propsToAriaRole from './propsToAriaRole';\nvar AccessibilityUtil = {\n isDisabled,\n propsToAccessibilityComponent,\n propsToAriaRole\n};\nexport default AccessibilityUtil;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar isDisabled = props => props.disabled || Array.isArray(props.accessibilityStates) && props.accessibilityStates.indexOf('disabled') > -1;\n\nexport default isDisabled;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport UIManager from '../../exports/UIManager';\n/**\n * This class is responsible for coordinating the \"focused\"\n * state for TextInputs. All calls relating to the keyboard\n * should be funneled through here\n */\n\nvar TextInputState = {\n /**\n * Internal state\n */\n _currentlyFocusedNode: null,\n\n /**\n * Returns the ID of the currently focused text field, if one exists\n * If no text field is focused it returns null\n */\n currentlyFocusedField() {\n if (document.activeElement !== this._currentlyFocusedNode) {\n this._currentlyFocusedNode = null;\n }\n\n return this._currentlyFocusedNode;\n },\n\n /**\n * @param {Object} TextInputID id of the text field to focus\n * Focuses the specified text field\n * noop if the text field was already focused\n */\n focusTextInput(textFieldNode) {\n if (textFieldNode !== null) {\n this._currentlyFocusedNode = textFieldNode;\n\n if (document.activeElement !== textFieldNode) {\n UIManager.focus(textFieldNode);\n }\n }\n },\n\n /**\n * @param {Object} textFieldNode id of the text field to focus\n * Unfocuses the specified text field\n * noop if it wasn't focused\n */\n blurTextInput(textFieldNode) {\n if (textFieldNode !== null) {\n this._currentlyFocusedNode = null;\n\n if (document.activeElement === textFieldNode) {\n UIManager.blur(textFieldNode);\n }\n }\n }\n\n};\nexport default TextInputState;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nexport default canUseDOM;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"accessibilityActiveDescendant\", \"accessibilityAtomic\", \"accessibilityAutoComplete\", \"accessibilityBusy\", \"accessibilityChecked\", \"accessibilityColumnCount\", \"accessibilityColumnIndex\", \"accessibilityColumnSpan\", \"accessibilityControls\", \"accessibilityCurrent\", \"accessibilityDescribedBy\", \"accessibilityDetails\", \"accessibilityDisabled\", \"accessibilityErrorMessage\", \"accessibilityExpanded\", \"accessibilityFlowTo\", \"accessibilityHasPopup\", \"accessibilityHidden\", \"accessibilityInvalid\", \"accessibilityKeyShortcuts\", \"accessibilityLabel\", \"accessibilityLabelledBy\", \"accessibilityLevel\", \"accessibilityLiveRegion\", \"accessibilityModal\", \"accessibilityMultiline\", \"accessibilityMultiSelectable\", \"accessibilityOrientation\", \"accessibilityOwns\", \"accessibilityPlaceholder\", \"accessibilityPosInSet\", \"accessibilityPressed\", \"accessibilityReadOnly\", \"accessibilityRequired\", \"accessibilityRole\", \"accessibilityRoleDescription\", \"accessibilityRowCount\", \"accessibilityRowIndex\", \"accessibilityRowSpan\", \"accessibilitySelected\", \"accessibilitySetSize\", \"accessibilitySort\", \"accessibilityValueMax\", \"accessibilityValueMin\", \"accessibilityValueNow\", \"accessibilityValueText\", \"dataSet\", \"focusable\", \"nativeID\", \"pointerEvents\", \"style\", \"testID\"];\n\n/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport AccessibilityUtil from '../AccessibilityUtil';\nimport StyleSheet from '../../exports/StyleSheet';\nvar emptyObject = {};\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\nvar uppercasePattern = /[A-Z]/g;\n\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase();\n}\n\nfunction hyphenateString(str) {\n return str.replace(uppercasePattern, toHyphenLower);\n}\n\nfunction processIDRefList(idRefList) {\n return isArray(idRefList) ? idRefList.join(' ') : idRefList;\n}\n\nvar pointerEventsStyles = StyleSheet.create({\n auto: {\n pointerEvents: 'auto'\n },\n 'box-none': {\n pointerEvents: 'box-none'\n },\n 'box-only': {\n pointerEvents: 'box-only'\n },\n none: {\n pointerEvents: 'none'\n }\n});\n\nvar createDOMProps = (elementType, props, options) => {\n if (!props) {\n props = emptyObject;\n }\n\n var _props = props,\n accessibilityActiveDescendant = _props.accessibilityActiveDescendant,\n accessibilityAtomic = _props.accessibilityAtomic,\n accessibilityAutoComplete = _props.accessibilityAutoComplete,\n accessibilityBusy = _props.accessibilityBusy,\n accessibilityChecked = _props.accessibilityChecked,\n accessibilityColumnCount = _props.accessibilityColumnCount,\n accessibilityColumnIndex = _props.accessibilityColumnIndex,\n accessibilityColumnSpan = _props.accessibilityColumnSpan,\n accessibilityControls = _props.accessibilityControls,\n accessibilityCurrent = _props.accessibilityCurrent,\n accessibilityDescribedBy = _props.accessibilityDescribedBy,\n accessibilityDetails = _props.accessibilityDetails,\n accessibilityDisabled = _props.accessibilityDisabled,\n accessibilityErrorMessage = _props.accessibilityErrorMessage,\n accessibilityExpanded = _props.accessibilityExpanded,\n accessibilityFlowTo = _props.accessibilityFlowTo,\n accessibilityHasPopup = _props.accessibilityHasPopup,\n accessibilityHidden = _props.accessibilityHidden,\n accessibilityInvalid = _props.accessibilityInvalid,\n accessibilityKeyShortcuts = _props.accessibilityKeyShortcuts,\n accessibilityLabel = _props.accessibilityLabel,\n accessibilityLabelledBy = _props.accessibilityLabelledBy,\n accessibilityLevel = _props.accessibilityLevel,\n accessibilityLiveRegion = _props.accessibilityLiveRegion,\n accessibilityModal = _props.accessibilityModal,\n accessibilityMultiline = _props.accessibilityMultiline,\n accessibilityMultiSelectable = _props.accessibilityMultiSelectable,\n accessibilityOrientation = _props.accessibilityOrientation,\n accessibilityOwns = _props.accessibilityOwns,\n accessibilityPlaceholder = _props.accessibilityPlaceholder,\n accessibilityPosInSet = _props.accessibilityPosInSet,\n accessibilityPressed = _props.accessibilityPressed,\n accessibilityReadOnly = _props.accessibilityReadOnly,\n accessibilityRequired = _props.accessibilityRequired,\n accessibilityRole = _props.accessibilityRole,\n accessibilityRoleDescription = _props.accessibilityRoleDescription,\n accessibilityRowCount = _props.accessibilityRowCount,\n accessibilityRowIndex = _props.accessibilityRowIndex,\n accessibilityRowSpan = _props.accessibilityRowSpan,\n accessibilitySelected = _props.accessibilitySelected,\n accessibilitySetSize = _props.accessibilitySetSize,\n accessibilitySort = _props.accessibilitySort,\n accessibilityValueMax = _props.accessibilityValueMax,\n accessibilityValueMin = _props.accessibilityValueMin,\n accessibilityValueNow = _props.accessibilityValueNow,\n accessibilityValueText = _props.accessibilityValueText,\n dataSet = _props.dataSet,\n focusable = _props.focusable,\n nativeID = _props.nativeID,\n pointerEvents = _props.pointerEvents,\n style = _props.style,\n testID = _props.testID,\n domProps = _objectWithoutPropertiesLoose(_props, _excluded);\n\n var disabled = accessibilityDisabled;\n var role = AccessibilityUtil.propsToAriaRole(props); // ACCESSIBILITY\n\n if (accessibilityActiveDescendant != null) {\n domProps['aria-activedescendant'] = accessibilityActiveDescendant;\n }\n\n if (accessibilityAtomic != null) {\n domProps['aria-atomic'] = accessibilityAtomic;\n }\n\n if (accessibilityAutoComplete != null) {\n domProps['aria-autocomplete'] = accessibilityAutoComplete;\n }\n\n if (accessibilityBusy != null) {\n domProps['aria-busy'] = accessibilityBusy;\n }\n\n if (accessibilityChecked != null) {\n domProps['aria-checked'] = accessibilityChecked;\n }\n\n if (accessibilityColumnCount != null) {\n domProps['aria-colcount'] = accessibilityColumnCount;\n }\n\n if (accessibilityColumnIndex != null) {\n domProps['aria-colindex'] = accessibilityColumnIndex;\n }\n\n if (accessibilityColumnSpan != null) {\n domProps['aria-colspan'] = accessibilityColumnSpan;\n }\n\n if (accessibilityControls != null) {\n domProps['aria-controls'] = processIDRefList(accessibilityControls);\n }\n\n if (accessibilityCurrent != null) {\n domProps['aria-current'] = accessibilityCurrent;\n }\n\n if (accessibilityDescribedBy != null) {\n domProps['aria-describedby'] = processIDRefList(accessibilityDescribedBy);\n }\n\n if (accessibilityDetails != null) {\n domProps['aria-details'] = accessibilityDetails;\n }\n\n if (disabled === true) {\n domProps['aria-disabled'] = true; // Enhance with native semantics\n\n if (elementType === 'button' || elementType === 'form' || elementType === 'input' || elementType === 'select' || elementType === 'textarea') {\n domProps.disabled = true;\n }\n }\n\n if (accessibilityErrorMessage != null) {\n domProps['aria-errormessage'] = accessibilityErrorMessage;\n }\n\n if (accessibilityExpanded != null) {\n domProps['aria-expanded'] = accessibilityExpanded;\n }\n\n if (accessibilityFlowTo != null) {\n domProps['aria-flowto'] = processIDRefList(accessibilityFlowTo);\n }\n\n if (accessibilityHasPopup != null) {\n domProps['aria-haspopup'] = accessibilityHasPopup;\n }\n\n if (accessibilityHidden === true) {\n domProps['aria-hidden'] = accessibilityHidden;\n }\n\n if (accessibilityInvalid != null) {\n domProps['aria-invalid'] = accessibilityInvalid;\n }\n\n if (accessibilityKeyShortcuts != null && Array.isArray(accessibilityKeyShortcuts)) {\n domProps['aria-keyshortcuts'] = accessibilityKeyShortcuts.join(' ');\n }\n\n if (accessibilityLabel != null) {\n domProps['aria-label'] = accessibilityLabel;\n }\n\n if (accessibilityLabelledBy != null) {\n domProps['aria-labelledby'] = processIDRefList(accessibilityLabelledBy);\n }\n\n if (accessibilityLevel != null) {\n domProps['aria-level'] = accessibilityLevel;\n }\n\n if (accessibilityLiveRegion != null) {\n domProps['aria-live'] = accessibilityLiveRegion === 'none' ? 'off' : accessibilityLiveRegion;\n }\n\n if (accessibilityModal != null) {\n domProps['aria-modal'] = accessibilityModal;\n }\n\n if (accessibilityMultiline != null) {\n domProps['aria-multiline'] = accessibilityMultiline;\n }\n\n if (accessibilityMultiSelectable != null) {\n domProps['aria-multiselectable'] = accessibilityMultiSelectable;\n }\n\n if (accessibilityOrientation != null) {\n domProps['aria-orientation'] = accessibilityOrientation;\n }\n\n if (accessibilityOwns != null) {\n domProps['aria-owns'] = processIDRefList(accessibilityOwns);\n }\n\n if (accessibilityPlaceholder != null) {\n domProps['aria-placeholder'] = accessibilityPlaceholder;\n }\n\n if (accessibilityPosInSet != null) {\n domProps['aria-posinset'] = accessibilityPosInSet;\n }\n\n if (accessibilityPressed != null) {\n domProps['aria-pressed'] = accessibilityPressed;\n }\n\n if (accessibilityReadOnly != null) {\n domProps['aria-readonly'] = accessibilityReadOnly; // Enhance with native semantics\n\n if (elementType === 'input' || elementType === 'select' || elementType === 'textarea') {\n domProps.readOnly = true;\n }\n }\n\n if (accessibilityRequired != null) {\n domProps['aria-required'] = accessibilityRequired; // Enhance with native semantics\n\n if (elementType === 'input' || elementType === 'select' || elementType === 'textarea') {\n domProps.required = true;\n }\n }\n\n if (role != null) {\n // 'presentation' synonym has wider browser support\n domProps['role'] = role === 'none' ? 'presentation' : role;\n }\n\n if (accessibilityRoleDescription != null) {\n domProps['aria-roledescription'] = accessibilityRoleDescription;\n }\n\n if (accessibilityRowCount != null) {\n domProps['aria-rowcount'] = accessibilityRowCount;\n }\n\n if (accessibilityRowIndex != null) {\n domProps['aria-rowindex'] = accessibilityRowIndex;\n }\n\n if (accessibilityRowSpan != null) {\n domProps['aria-rowspan'] = accessibilityRowSpan;\n }\n\n if (accessibilitySelected != null) {\n domProps['aria-selected'] = accessibilitySelected;\n }\n\n if (accessibilitySetSize != null) {\n domProps['aria-setsize'] = accessibilitySetSize;\n }\n\n if (accessibilitySort != null) {\n domProps['aria-sort'] = accessibilitySort;\n }\n\n if (accessibilityValueMax != null) {\n domProps['aria-valuemax'] = accessibilityValueMax;\n }\n\n if (accessibilityValueMin != null) {\n domProps['aria-valuemin'] = accessibilityValueMin;\n }\n\n if (accessibilityValueNow != null) {\n domProps['aria-valuenow'] = accessibilityValueNow;\n }\n\n if (accessibilityValueText != null) {\n domProps['aria-valuetext'] = accessibilityValueText;\n } // \"dataSet\" replaced with \"data-*\"\n\n\n if (dataSet != null) {\n for (var dataProp in dataSet) {\n if (hasOwnProperty.call(dataSet, dataProp)) {\n var dataName = hyphenateString(dataProp);\n var dataValue = dataSet[dataProp];\n\n if (dataValue != null) {\n domProps[\"data-\" + dataName] = dataValue;\n }\n }\n }\n } // FOCUS\n // \"focusable\" indicates that an element may be a keyboard tab-stop.\n\n\n if (focusable === false) {\n domProps.tabIndex = '-1';\n }\n\n if ( // These native elements are keyboard focusable by default\n elementType === 'a' || elementType === 'button' || elementType === 'input' || elementType === 'select' || elementType === 'textarea') {\n if (focusable === false || accessibilityDisabled === true) {\n domProps.tabIndex = '-1';\n }\n } else if ( // These roles are made keyboard focusable by default\n role === 'button' || role === 'checkbox' || role === 'link' || role === 'radio' || role === 'textbox' || role === 'switch') {\n if (focusable !== false) {\n domProps.tabIndex = '0';\n }\n } else {\n // Everything else must explicitly set the prop\n if (focusable === true) {\n domProps.tabIndex = '0';\n }\n } // Resolve styles\n\n\n var _StyleSheet = StyleSheet([style, pointerEvents && pointerEventsStyles[pointerEvents]], {\n writingDirection: options ? options.writingDirection : 'ltr'\n }),\n className = _StyleSheet[0],\n inlineStyle = _StyleSheet[1];\n\n if (className) {\n domProps.className = className;\n }\n\n if (inlineStyle) {\n domProps.style = inlineStyle;\n } // OTHER\n // Native element ID\n\n\n if (nativeID != null) {\n domProps.id = nativeID;\n } // Automated test IDs\n\n\n if (testID != null) {\n domProps['data-testid'] = testID;\n }\n\n return domProps;\n};\n\nexport default createDOMProps;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport TextInputState from '../TextInputState';\n\nvar dismissKeyboard = () => {\n TextInputState.blurTextInput(TextInputState.currentlyFocusedField());\n};\n\nexport default dismissKeyboard;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nexport var defaultProps = {\n children: true,\n dataSet: true,\n nativeID: true,\n ref: true,\n suppressHydrationWarning: true,\n testID: true\n};\nexport var accessibilityProps = {\n accessibilityActiveDescendant: true,\n accessibilityAtomic: true,\n accessibilityAutoComplete: true,\n accessibilityBusy: true,\n accessibilityChecked: true,\n accessibilityColumnCount: true,\n accessibilityColumnIndex: true,\n accessibilityColumnSpan: true,\n accessibilityControls: true,\n accessibilityCurrent: true,\n accessibilityDescribedBy: true,\n accessibilityDetails: true,\n accessibilityDisabled: true,\n accessibilityErrorMessage: true,\n accessibilityExpanded: true,\n accessibilityFlowTo: true,\n accessibilityHasPopup: true,\n accessibilityHidden: true,\n accessibilityInvalid: true,\n accessibilityKeyShortcuts: true,\n accessibilityLabel: true,\n accessibilityLabelledBy: true,\n accessibilityLevel: true,\n accessibilityLiveRegion: true,\n accessibilityModal: true,\n accessibilityMultiline: true,\n accessibilityMultiSelectable: true,\n accessibilityOrientation: true,\n accessibilityOwns: true,\n accessibilityPlaceholder: true,\n accessibilityPosInSet: true,\n accessibilityPressed: true,\n accessibilityReadOnly: true,\n accessibilityRequired: true,\n accessibilityRole: true,\n accessibilityRoleDescription: true,\n accessibilityRowCount: true,\n accessibilityRowIndex: true,\n accessibilityRowSpan: true,\n accessibilitySelected: true,\n accessibilitySetSize: true,\n accessibilitySort: true,\n accessibilityValueMax: true,\n accessibilityValueMin: true,\n accessibilityValueNow: true,\n accessibilityValueText: true,\n dir: true,\n focusable: true\n};\nexport var clickProps = {\n onClick: true,\n onClickCapture: true,\n onContextMenu: true\n};\nexport var focusProps = {\n onBlur: true,\n onFocus: true\n};\nexport var keyboardProps = {\n onKeyDown: true,\n onKeyDownCapture: true,\n onKeyUp: true,\n onKeyUpCapture: true\n};\nexport var mouseProps = {\n onMouseDown: true,\n onMouseEnter: true,\n onMouseLeave: true,\n onMouseMove: true,\n onMouseOver: true,\n onMouseOut: true,\n onMouseUp: true\n};\nexport var touchProps = {\n onTouchCancel: true,\n onTouchCancelCapture: true,\n onTouchEnd: true,\n onTouchEndCapture: true,\n onTouchMove: true,\n onTouchMoveCapture: true,\n onTouchStart: true,\n onTouchStartCapture: true\n};\nexport var styleProps = {\n classList: true,\n style: true\n};","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar getBoundingClientRect = node => {\n if (node != null) {\n var isElement = node.nodeType === 1;\n /* Node.ELEMENT_NODE */\n\n if (isElement && typeof node.getBoundingClientRect === 'function') {\n return node.getBoundingClientRect();\n }\n }\n};\n\nexport default getBoundingClientRect;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nexport default function mergeRefs() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return function forwardRef(node) {\n args.forEach(ref => {\n if (ref == null) {\n return;\n }\n\n if (typeof ref === 'function') {\n ref(node);\n return;\n }\n\n if (typeof ref === 'object') {\n ref.current = node;\n return;\n }\n\n console.error(\"mergeRefs cannot handle Refs of type boolean, number or string, received ref \" + String(ref));\n });\n };\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nexport default function pick(obj, list) {\n var nextObj = {};\n\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n if (list[key] === true) {\n nextObj[key] = obj[key];\n }\n }\n }\n\n return nextObj;\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport useLayoutEffect from '../useLayoutEffect';\nimport UIManager from '../../exports/UIManager';\nimport canUseDOM from '../canUseDom';\nvar DOM_LAYOUT_HANDLER_NAME = '__reactLayoutHandler';\nvar didWarn = !canUseDOM;\nvar resizeObserver = null;\n\nfunction getResizeObserver() {\n if (canUseDOM && typeof window.ResizeObserver !== 'undefined') {\n if (resizeObserver == null) {\n resizeObserver = new window.ResizeObserver(function (entries) {\n entries.forEach(entry => {\n var node = entry.target;\n var onLayout = node[DOM_LAYOUT_HANDLER_NAME];\n\n if (typeof onLayout === 'function') {\n // We still need to measure the view because browsers don't yet provide\n // border-box dimensions in the entry\n UIManager.measure(node, (x, y, width, height, left, top) => {\n var event = {\n // $FlowFixMe\n nativeEvent: {\n layout: {\n x,\n y,\n width,\n height,\n left,\n top\n }\n },\n timeStamp: Date.now()\n };\n Object.defineProperty(event.nativeEvent, 'target', {\n enumerable: true,\n get: () => entry.target\n });\n onLayout(event);\n });\n }\n });\n });\n }\n } else if (!didWarn) {\n if (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test') {\n console.warn('onLayout relies on ResizeObserver which is not supported by your browser. ' + 'Please include a polyfill, e.g., https://github.com/que-etc/resize-observer-polyfill.');\n didWarn = true;\n }\n }\n\n return resizeObserver;\n}\n\nexport default function useElementLayout(ref, onLayout) {\n var observer = getResizeObserver();\n useLayoutEffect(() => {\n var node = ref.current;\n\n if (node != null) {\n node[DOM_LAYOUT_HANDLER_NAME] = onLayout;\n }\n }, [ref, onLayout]); // Observing is done in a separate effect to avoid this effect running\n // when 'onLayout' changes.\n\n useLayoutEffect(() => {\n var node = ref.current;\n\n if (node != null && observer != null) {\n if (typeof node[DOM_LAYOUT_HANDLER_NAME] === 'function') {\n observer.observe(node);\n } else {\n observer.unobserve(node);\n }\n }\n\n return () => {\n if (node != null && observer != null) {\n observer.unobserve(node);\n }\n };\n }, [ref, observer]);\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * useLayoutEffect throws an error on the server. On the few occasions where is\n * problematic, use this hook.\n *\n * \n */\nimport { useEffect, useLayoutEffect } from 'react';\nimport canUseDOM from '../canUseDom';\nvar useLayoutEffectImpl = canUseDOM ? useLayoutEffect : useEffect;\nexport default useLayoutEffectImpl;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar rtlScripts = new Set(['Arab', 'Syrc', 'Samr', 'Mand', 'Thaa', 'Mend', 'Nkoo', 'Adlm', 'Rohg', 'Hebr']);\nvar rtlLangs = new Set(['ae', // Avestan\n'ar', // Arabic\n'arc', // Aramaic\n'bcc', // Southern Balochi\n'bqi', // Bakthiari\n'ckb', // Sorani\n'dv', // Dhivehi\n'fa', 'far', // Persian\n'glk', // Gilaki\n'he', 'iw', // Hebrew\n'khw', // Khowar\n'ks', // Kashmiri\n'ku', // Kurdish\n'mzn', // Mazanderani\n'nqo', // N'Ko\n'pnb', // Western Punjabi\n'ps', // Pashto\n'sd', // Sindhi\n'ug', // Uyghur\n'ur', // Urdu\n'yi' // Yiddish\n]);\nvar cache = new Map();\n/**\n * Determine the writing direction of a locale\n */\n\nexport function isLocaleRTL(locale) {\n var cachedRTL = cache.get(locale);\n\n if (cachedRTL) {\n return cachedRTL;\n }\n\n var isRTL = false; // $FlowFixMe\n\n if (Intl.Locale) {\n // $FlowFixMe\n var script = new Intl.Locale(locale).maximize().script;\n isRTL = rtlScripts.has(script);\n } else {\n // Fallback to inferring from language\n var lang = locale.split('-')[0];\n isRTL = rtlLangs.has(lang);\n }\n\n cache.set(locale, isRTL);\n return isRTL;\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport React, { createContext, useContext } from 'react';\nimport { isLocaleRTL } from './isLocaleRTL';\nvar defaultLocale = {\n direction: 'ltr',\n locale: 'en-US'\n};\nvar LocaleContext = /*#__PURE__*/createContext(defaultLocale);\nexport function getLocaleDirection(locale) {\n return isLocaleRTL(locale) ? 'rtl' : 'ltr';\n}\nexport function LocaleProvider(props) {\n var direction = props.direction,\n locale = props.locale,\n children = props.children;\n var needsContext = direction || locale;\n return needsContext ? /*#__PURE__*/React.createElement(LocaleContext.Provider, {\n children: children,\n value: {\n direction: locale ? getLocaleDirection(locale) : direction,\n locale\n }\n }) : children;\n}\nexport function useLocaleContext() {\n return useContext(LocaleContext);\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport mergeRefs from '../mergeRefs';\nexport default function useMergeRefs() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return React.useMemo(() => mergeRefs(...args), // eslint-disable-next-line\n [...args]);\n}","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\n\n/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport UIManager from '../../exports/UIManager';\nimport createDOMProps from '../createDOMProps';\nimport useStable from '../useStable';\nimport { useRef } from 'react';\nvar didWarn = false;\nvar emptyObject = {};\n\nfunction setNativeProps(node, nativeProps, pointerEvents, style, previousStyleRef) {\n if (!didWarn) {\n console.warn('setNativeProps is deprecated. Please update props using React state instead.');\n didWarn = true;\n }\n\n if (node != null && nativeProps) {\n var domProps = createDOMProps(null, _objectSpread(_objectSpread({\n pointerEvents\n }, nativeProps), {}, {\n style: [style, nativeProps.style]\n }));\n var nextDomStyle = domProps.style;\n\n if (previousStyleRef.current != null) {\n if (domProps.style == null) {\n domProps.style = {};\n }\n\n for (var styleName in previousStyleRef.current) {\n if (domProps.style[styleName] == null) {\n domProps.style[styleName] = '';\n }\n }\n }\n\n previousStyleRef.current = nextDomStyle;\n UIManager.updateView(node, domProps);\n }\n}\n/**\n * Adds non-standard methods to the hode element. This is temporarily until an\n * API like `ReactNative.measure(hostRef, callback)` is added to React Native.\n */\n\n\nexport default function usePlatformMethods(_ref) {\n var pointerEvents = _ref.pointerEvents,\n style = _ref.style;\n var previousStyleRef = useRef(null);\n var setNativePropsArgsRef = useRef(null);\n setNativePropsArgsRef.current = {\n pointerEvents,\n style\n }; // Avoid creating a new ref on every render. The props only need to be\n // available to 'setNativeProps' when it is called.\n\n var ref = useStable(() => hostNode => {\n if (hostNode != null) {\n hostNode.measure = callback => UIManager.measure(hostNode, callback);\n\n hostNode.measureLayout = (relativeToNode, success, failure) => UIManager.measureLayout(hostNode, relativeToNode, failure, success);\n\n hostNode.measureInWindow = callback => UIManager.measureInWindow(hostNode, callback);\n\n hostNode.setNativeProps = nativeProps => {\n var _ref2 = setNativePropsArgsRef.current || emptyObject,\n style = _ref2.style,\n pointerEvents = _ref2.pointerEvents;\n\n setNativeProps(hostNode, nativeProps, pointerEvents, style, previousStyleRef);\n };\n }\n });\n return ref;\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nvar DELAY = 'DELAY';\nvar ERROR = 'ERROR';\nvar LONG_PRESS_DETECTED = 'LONG_PRESS_DETECTED';\nvar NOT_RESPONDER = 'NOT_RESPONDER';\nvar RESPONDER_ACTIVE_LONG_PRESS_START = 'RESPONDER_ACTIVE_LONG_PRESS_START';\nvar RESPONDER_ACTIVE_PRESS_START = 'RESPONDER_ACTIVE_PRESS_START';\nvar RESPONDER_INACTIVE_PRESS_START = 'RESPONDER_INACTIVE_PRESS_START';\nvar RESPONDER_GRANT = 'RESPONDER_GRANT';\nvar RESPONDER_RELEASE = 'RESPONDER_RELEASE';\nvar RESPONDER_TERMINATED = 'RESPONDER_TERMINATED';\nvar Transitions = Object.freeze({\n NOT_RESPONDER: {\n DELAY: ERROR,\n RESPONDER_GRANT: RESPONDER_INACTIVE_PRESS_START,\n RESPONDER_RELEASE: ERROR,\n RESPONDER_TERMINATED: ERROR,\n LONG_PRESS_DETECTED: ERROR\n },\n RESPONDER_INACTIVE_PRESS_START: {\n DELAY: RESPONDER_ACTIVE_PRESS_START,\n RESPONDER_GRANT: ERROR,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: ERROR\n },\n RESPONDER_ACTIVE_PRESS_START: {\n DELAY: ERROR,\n RESPONDER_GRANT: ERROR,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: RESPONDER_ACTIVE_LONG_PRESS_START\n },\n RESPONDER_ACTIVE_LONG_PRESS_START: {\n DELAY: ERROR,\n RESPONDER_GRANT: ERROR,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: RESPONDER_ACTIVE_LONG_PRESS_START\n },\n ERROR: {\n DELAY: NOT_RESPONDER,\n RESPONDER_GRANT: RESPONDER_INACTIVE_PRESS_START,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: NOT_RESPONDER\n }\n});\n\nvar isActiveSignal = signal => signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START;\n\nvar isButtonRole = element => element.getAttribute('role') === 'button';\n\nvar isPressStartSignal = signal => signal === RESPONDER_INACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START;\n\nvar isTerminalSignal = signal => signal === RESPONDER_TERMINATED || signal === RESPONDER_RELEASE;\n\nvar isValidKeyPress = event => {\n var key = event.key,\n target = event.target;\n var role = target.getAttribute('role');\n var isSpacebar = key === ' ' || key === 'Spacebar';\n return key === 'Enter' || isSpacebar && role === 'button';\n};\n\nvar DEFAULT_LONG_PRESS_DELAY_MS = 450; // 500 - 50\n\nvar DEFAULT_PRESS_DELAY_MS = 50;\n/**\n * =========================== PressResponder Tutorial ===========================\n *\n * The `PressResponder` class helps you create press interactions by analyzing the\n * geometry of elements and observing when another responder (e.g. ScrollView)\n * has stolen the touch lock. It offers hooks for your component to provide\n * interaction feedback to the user:\n *\n * - When a press has activated (e.g. highlight an element)\n * - When a press has deactivated (e.g. un-highlight an element)\n * - When a press sould trigger an action, meaning it activated and deactivated\n * while within the geometry of the element without the lock being stolen.\n *\n * A high quality interaction isn't as simple as you might think. There should\n * be a slight delay before activation. Moving your finger beyond an element's\n * bounds should trigger deactivation, but moving the same finger back within an\n * element's bounds should trigger reactivation.\n *\n * In order to use `PressResponder`, do the following:\n *\n * const pressResponder = new PressResponder(config);\n *\n * 2. Choose the rendered component who should collect the press events. On that\n * element, spread `pressability.getEventHandlers()` into its props.\n *\n * return (\n * \n * );\n *\n * 3. Reset `PressResponder` when your component unmounts.\n *\n * componentWillUnmount() {\n * this.state.pressResponder.reset();\n * }\n *\n * ==================== Implementation Details ====================\n *\n * `PressResponder` only assumes that there exists a `HitRect` node. The `PressRect`\n * is an abstract box that is extended beyond the `HitRect`.\n *\n * # Geometry\n *\n * ┌────────────────────────┐\n * │ ┌──────────────────┐ │ - Presses start anywhere within `HitRect`.\n * │ │ ┌────────────┐ │ │\n * │ │ │ VisualRect │ │ │\n * │ │ └────────────┘ │ │ - When pressed down for sufficient amount of time\n * │ │ HitRect │ │ before letting up, `VisualRect` activates.\n * │ └──────────────────┘ │\n * │ Out Region o │\n * └────────────────────│───┘\n * └────── When the press is released outside the `HitRect`,\n * the responder is NOT eligible for a \"press\".\n *\n * # State Machine\n *\n * ┌───────────────┐ ◀──── RESPONDER_RELEASE\n * │ NOT_RESPONDER │\n * └───┬───────────┘ ◀──── RESPONDER_TERMINATED\n * │\n * │ RESPONDER_GRANT (HitRect)\n * │\n * ▼\n * ┌─────────────────────┐ ┌───────────────────┐ ┌───────────────────┐\n * │ RESPONDER_INACTIVE_ │ DELAY │ RESPONDER_ACTIVE_ │ T + DELAY │ RESPONDER_ACTIVE_ │\n * │ PRESS_START ├────────▶ │ PRESS_START ├────────────▶ │ LONG_PRESS_START │\n * └─────────────────────┘ └───────────────────┘ └───────────────────┘\n *\n * T + DELAY => LONG_PRESS_DELAY + DELAY\n *\n * Not drawn are the side effects of each transition. The most important side\n * effect is the invocation of `onLongPress`. Only when the browser produces a\n * `click` event is `onPress` invoked.\n */\n\nexport default class PressResponder {\n constructor(config) {\n this._eventHandlers = null;\n this._isPointerTouch = false;\n this._longPressDelayTimeout = null;\n this._longPressDispatched = false;\n this._pressDelayTimeout = null;\n this._pressOutDelayTimeout = null;\n this._touchState = NOT_RESPONDER;\n this.configure(config);\n }\n\n configure(config) {\n this._config = config;\n }\n /**\n * Resets any pending timers. This should be called on unmount.\n */\n\n\n reset() {\n this._cancelLongPressDelayTimeout();\n\n this._cancelPressDelayTimeout();\n\n this._cancelPressOutDelayTimeout();\n }\n /**\n * Returns a set of props to spread into the interactive element.\n */\n\n\n getEventHandlers() {\n if (this._eventHandlers == null) {\n this._eventHandlers = this._createEventHandlers();\n }\n\n return this._eventHandlers;\n }\n\n _createEventHandlers() {\n var start = (event, shouldDelay) => {\n event.persist();\n\n this._cancelPressOutDelayTimeout();\n\n this._longPressDispatched = false;\n this._selectionTerminated = false;\n this._touchState = NOT_RESPONDER;\n this._isPointerTouch = event.nativeEvent.type === 'touchstart';\n\n this._receiveSignal(RESPONDER_GRANT, event);\n\n var delayPressStart = normalizeDelay(this._config.delayPressStart, 0, DEFAULT_PRESS_DELAY_MS);\n\n if (shouldDelay !== false && delayPressStart > 0) {\n this._pressDelayTimeout = setTimeout(() => {\n this._receiveSignal(DELAY, event);\n }, delayPressStart);\n } else {\n this._receiveSignal(DELAY, event);\n }\n\n var delayLongPress = normalizeDelay(this._config.delayLongPress, 10, DEFAULT_LONG_PRESS_DELAY_MS);\n this._longPressDelayTimeout = setTimeout(() => {\n this._handleLongPress(event);\n }, delayLongPress + delayPressStart);\n };\n\n var end = event => {\n this._receiveSignal(RESPONDER_RELEASE, event);\n };\n\n var keyupHandler = event => {\n var onPress = this._config.onPress;\n var target = event.target;\n\n if (this._touchState !== NOT_RESPONDER && isValidKeyPress(event)) {\n end(event);\n document.removeEventListener('keyup', keyupHandler);\n var role = target.getAttribute('role');\n var elementType = target.tagName.toLowerCase();\n var isNativeInteractiveElement = role === 'link' || elementType === 'a' || elementType === 'button' || elementType === 'input' || elementType === 'select' || elementType === 'textarea';\n\n if (onPress != null && !isNativeInteractiveElement) {\n onPress(event);\n }\n }\n };\n\n return {\n onStartShouldSetResponder: event => {\n var disabled = this._config.disabled;\n\n if (disabled && isButtonRole(event.currentTarget)) {\n event.stopPropagation();\n }\n\n if (disabled == null) {\n return true;\n }\n\n return !disabled;\n },\n onKeyDown: event => {\n var disabled = this._config.disabled;\n var key = event.key,\n target = event.target;\n\n if (!disabled && isValidKeyPress(event)) {\n if (this._touchState === NOT_RESPONDER) {\n start(event, false); // Listen to 'keyup' on document to account for situations where\n // focus is moved to another element during 'keydown'.\n\n document.addEventListener('keyup', keyupHandler);\n }\n\n var role = target.getAttribute('role');\n var isSpacebarKey = key === ' ' || key === 'Spacebar';\n\n var _isButtonRole = role === 'button' || role === 'menuitem';\n\n if (isSpacebarKey && _isButtonRole) {\n // Prevent spacebar scrolling the window\n event.preventDefault();\n }\n\n event.stopPropagation();\n }\n },\n onResponderGrant: event => start(event),\n onResponderMove: event => {\n if (this._config.onPressMove != null) {\n this._config.onPressMove(event);\n }\n\n var touch = getTouchFromResponderEvent(event);\n\n if (this._touchActivatePosition != null) {\n var deltaX = this._touchActivatePosition.pageX - touch.pageX;\n var deltaY = this._touchActivatePosition.pageY - touch.pageY;\n\n if (Math.hypot(deltaX, deltaY) > 10) {\n this._cancelLongPressDelayTimeout();\n }\n }\n },\n onResponderRelease: event => end(event),\n onResponderTerminate: event => {\n if (event.nativeEvent.type === 'selectionchange') {\n this._selectionTerminated = true;\n }\n\n this._receiveSignal(RESPONDER_TERMINATED, event);\n },\n onResponderTerminationRequest: event => {\n var _this$_config = this._config,\n cancelable = _this$_config.cancelable,\n disabled = _this$_config.disabled,\n onLongPress = _this$_config.onLongPress; // If `onLongPress` is provided, don't terminate on `contextmenu` as default\n // behavior will be prevented for non-mouse pointers.\n\n if (!disabled && onLongPress != null && this._isPointerTouch && event.nativeEvent.type === 'contextmenu') {\n return false;\n }\n\n if (cancelable == null) {\n return true;\n }\n\n return cancelable;\n },\n // NOTE: this diverges from react-native in 3 significant ways:\n // * The `onPress` callback is not connected to the responder system (the native\n // `click` event must be used but is dispatched in many scenarios where no pointers\n // are on the screen.) Therefore, it's possible for `onPress` to be called without\n // `onPress{Start,End}` being called first.\n // * The `onPress` callback is only be called on the first ancestor of the native\n // `click` target that is using the PressResponder.\n // * The event's `nativeEvent` is a `MouseEvent` not a `TouchEvent`.\n onClick: event => {\n var _this$_config2 = this._config,\n disabled = _this$_config2.disabled,\n onPress = _this$_config2.onPress;\n\n if (!disabled) {\n // If long press dispatched, cancel default click behavior.\n // If the responder terminated because text was selected during the gesture,\n // cancel the default click behavior.\n event.stopPropagation();\n\n if (this._longPressDispatched || this._selectionTerminated) {\n event.preventDefault();\n } else if (onPress != null && event.altKey === false) {\n onPress(event);\n }\n } else {\n if (isButtonRole(event.currentTarget)) {\n event.stopPropagation();\n }\n }\n },\n // If `onLongPress` is provided and a touch pointer is being used, prevent the\n // default context menu from opening.\n onContextMenu: event => {\n var _this$_config3 = this._config,\n disabled = _this$_config3.disabled,\n onLongPress = _this$_config3.onLongPress;\n\n if (!disabled) {\n if (onLongPress != null && this._isPointerTouch && !event.defaultPrevented) {\n event.preventDefault();\n event.stopPropagation();\n }\n } else {\n if (isButtonRole(event.currentTarget)) {\n event.stopPropagation();\n }\n }\n }\n };\n }\n /**\n * Receives a state machine signal, performs side effects of the transition\n * and stores the new state. Validates the transition as well.\n */\n\n\n _receiveSignal(signal, event) {\n var prevState = this._touchState;\n var nextState = null;\n\n if (Transitions[prevState] != null) {\n nextState = Transitions[prevState][signal];\n }\n\n if (this._touchState === NOT_RESPONDER && signal === RESPONDER_RELEASE) {\n return;\n }\n\n if (nextState == null || nextState === ERROR) {\n console.error(\"PressResponder: Invalid signal \" + signal + \" for state \" + prevState + \" on responder\");\n } else if (prevState !== nextState) {\n this._performTransitionSideEffects(prevState, nextState, signal, event);\n\n this._touchState = nextState;\n }\n }\n /**\n * Performs a transition between touchable states and identify any activations\n * or deactivations (and callback invocations).\n */\n\n\n _performTransitionSideEffects(prevState, nextState, signal, event) {\n if (isTerminalSignal(signal)) {\n // Pressable suppression of contextmenu on windows.\n // On Windows, the contextmenu is displayed after pointerup.\n // https://github.com/necolas/react-native-web/issues/2296\n setTimeout(() => {\n this._isPointerTouch = false;\n }, 0);\n this._touchActivatePosition = null;\n\n this._cancelLongPressDelayTimeout();\n }\n\n if (isPressStartSignal(prevState) && signal === LONG_PRESS_DETECTED) {\n var onLongPress = this._config.onLongPress; // Long press is not supported for keyboards because 'click' can be dispatched\n // immediately (and multiple times) after 'keydown'.\n\n if (onLongPress != null && event.nativeEvent.key == null) {\n onLongPress(event);\n this._longPressDispatched = true;\n }\n }\n\n var isPrevActive = isActiveSignal(prevState);\n var isNextActive = isActiveSignal(nextState);\n\n if (!isPrevActive && isNextActive) {\n this._activate(event);\n } else if (isPrevActive && !isNextActive) {\n this._deactivate(event);\n }\n\n if (isPressStartSignal(prevState) && signal === RESPONDER_RELEASE) {\n var _this$_config4 = this._config,\n _onLongPress = _this$_config4.onLongPress,\n onPress = _this$_config4.onPress;\n\n if (onPress != null) {\n var isPressCanceledByLongPress = _onLongPress != null && prevState === RESPONDER_ACTIVE_LONG_PRESS_START;\n\n if (!isPressCanceledByLongPress) {\n // If we never activated (due to delays), activate and deactivate now.\n if (!isNextActive && !isPrevActive) {\n this._activate(event);\n\n this._deactivate(event);\n }\n }\n }\n }\n\n this._cancelPressDelayTimeout();\n }\n\n _activate(event) {\n var _this$_config5 = this._config,\n onPressChange = _this$_config5.onPressChange,\n onPressStart = _this$_config5.onPressStart;\n var touch = getTouchFromResponderEvent(event);\n this._touchActivatePosition = {\n pageX: touch.pageX,\n pageY: touch.pageY\n };\n\n if (onPressStart != null) {\n onPressStart(event);\n }\n\n if (onPressChange != null) {\n onPressChange(true);\n }\n }\n\n _deactivate(event) {\n var _this$_config6 = this._config,\n onPressChange = _this$_config6.onPressChange,\n onPressEnd = _this$_config6.onPressEnd;\n\n function end() {\n if (onPressEnd != null) {\n onPressEnd(event);\n }\n\n if (onPressChange != null) {\n onPressChange(false);\n }\n }\n\n var delayPressEnd = normalizeDelay(this._config.delayPressEnd);\n\n if (delayPressEnd > 0) {\n this._pressOutDelayTimeout = setTimeout(() => {\n end();\n }, delayPressEnd);\n } else {\n end();\n }\n }\n\n _handleLongPress(event) {\n if (this._touchState === RESPONDER_ACTIVE_PRESS_START || this._touchState === RESPONDER_ACTIVE_LONG_PRESS_START) {\n this._receiveSignal(LONG_PRESS_DETECTED, event);\n }\n }\n\n _cancelLongPressDelayTimeout() {\n if (this._longPressDelayTimeout != null) {\n clearTimeout(this._longPressDelayTimeout);\n this._longPressDelayTimeout = null;\n }\n }\n\n _cancelPressDelayTimeout() {\n if (this._pressDelayTimeout != null) {\n clearTimeout(this._pressDelayTimeout);\n this._pressDelayTimeout = null;\n }\n }\n\n _cancelPressOutDelayTimeout() {\n if (this._pressOutDelayTimeout != null) {\n clearTimeout(this._pressOutDelayTimeout);\n this._pressOutDelayTimeout = null;\n }\n }\n\n}\n\nfunction normalizeDelay(delay, min, fallback) {\n if (min === void 0) {\n min = 0;\n }\n\n if (fallback === void 0) {\n fallback = 0;\n }\n\n return Math.max(min, delay !== null && delay !== void 0 ? delay : fallback);\n}\n\nfunction getTouchFromResponderEvent(event) {\n var _event$nativeEvent = event.nativeEvent,\n changedTouches = _event$nativeEvent.changedTouches,\n touches = _event$nativeEvent.touches;\n\n if (touches != null && touches.length > 0) {\n return touches[0];\n }\n\n if (changedTouches != null && changedTouches.length > 0) {\n return changedTouches[0];\n }\n\n return event.nativeEvent;\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport PressResponder from './PressResponder';\nimport { useDebugValue, useEffect, useRef } from 'react';\nexport default function usePressEvents(hostRef, config) {\n var pressResponderRef = useRef(null);\n\n if (pressResponderRef.current == null) {\n pressResponderRef.current = new PressResponder(config);\n }\n\n var pressResponder = pressResponderRef.current; // Re-configure to use the current node and configuration.\n\n useEffect(() => {\n pressResponder.configure(config);\n }, [config, pressResponder]); // Reset the `pressResponder` when cleanup needs to occur. This is\n // a separate effect because we do not want to rest the responder when `config` changes.\n\n useEffect(() => {\n return () => {\n pressResponder.reset();\n };\n }, [pressResponder]);\n useDebugValue(config);\n return pressResponder.getEventHandlers();\n}","/**\n * Copyright (c) Nicolas Gallagher\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport getBoundingClientRect from '../../modules/getBoundingClientRect';\n\nvar emptyFunction = () => {};\n\nvar emptyObject = {};\nvar emptyArray = [];\n/**\n * Safari produces very large identifiers that would cause the `touchBank` array\n * length to be so large as to crash the browser, if not normalized like this.\n * In the future the `touchBank` should use an object/map instead.\n */\n\nfunction normalizeIdentifier(identifier) {\n return identifier > 20 ? identifier % 20 : identifier;\n}\n/**\n * Converts a native DOM event to a ResponderEvent.\n * Mouse events are transformed into fake touch events.\n */\n\n\nexport default function createResponderEvent(domEvent, responderTouchHistoryStore) {\n var rect;\n var propagationWasStopped = false;\n var changedTouches;\n var touches;\n var domEventChangedTouches = domEvent.changedTouches;\n var domEventType = domEvent.type;\n var metaKey = domEvent.metaKey === true;\n var shiftKey = domEvent.shiftKey === true;\n var force = domEventChangedTouches && domEventChangedTouches[0].force || 0;\n var identifier = normalizeIdentifier(domEventChangedTouches && domEventChangedTouches[0].identifier || 0);\n var clientX = domEventChangedTouches && domEventChangedTouches[0].clientX || domEvent.clientX;\n var clientY = domEventChangedTouches && domEventChangedTouches[0].clientY || domEvent.clientY;\n var pageX = domEventChangedTouches && domEventChangedTouches[0].pageX || domEvent.pageX;\n var pageY = domEventChangedTouches && domEventChangedTouches[0].pageY || domEvent.pageY;\n var preventDefault = typeof domEvent.preventDefault === 'function' ? domEvent.preventDefault.bind(domEvent) : emptyFunction;\n var timestamp = domEvent.timeStamp;\n\n function normalizeTouches(touches) {\n return Array.prototype.slice.call(touches).map(touch => {\n return {\n force: touch.force,\n identifier: normalizeIdentifier(touch.identifier),\n\n get locationX() {\n return locationX(touch.clientX);\n },\n\n get locationY() {\n return locationY(touch.clientY);\n },\n\n pageX: touch.pageX,\n pageY: touch.pageY,\n target: touch.target,\n timestamp\n };\n });\n }\n\n if (domEventChangedTouches != null) {\n changedTouches = normalizeTouches(domEventChangedTouches);\n touches = normalizeTouches(domEvent.touches);\n } else {\n var emulatedTouches = [{\n force,\n identifier,\n\n get locationX() {\n return locationX(clientX);\n },\n\n get locationY() {\n return locationY(clientY);\n },\n\n pageX,\n pageY,\n target: domEvent.target,\n timestamp\n }];\n changedTouches = emulatedTouches;\n touches = domEventType === 'mouseup' || domEventType === 'dragstart' ? emptyArray : emulatedTouches;\n }\n\n var responderEvent = {\n bubbles: true,\n cancelable: true,\n // `currentTarget` is set before dispatch\n currentTarget: null,\n defaultPrevented: domEvent.defaultPrevented,\n dispatchConfig: emptyObject,\n eventPhase: domEvent.eventPhase,\n\n isDefaultPrevented() {\n return domEvent.defaultPrevented;\n },\n\n isPropagationStopped() {\n return propagationWasStopped;\n },\n\n isTrusted: domEvent.isTrusted,\n nativeEvent: {\n altKey: false,\n ctrlKey: false,\n metaKey,\n shiftKey,\n changedTouches,\n force,\n identifier,\n\n get locationX() {\n return locationX(clientX);\n },\n\n get locationY() {\n return locationY(clientY);\n },\n\n pageX,\n pageY,\n target: domEvent.target,\n timestamp,\n touches,\n type: domEventType\n },\n persist: emptyFunction,\n preventDefault,\n\n stopPropagation() {\n propagationWasStopped = true;\n },\n\n target: domEvent.target,\n timeStamp: timestamp,\n touchHistory: responderTouchHistoryStore.touchHistory\n }; // Using getters and functions serves two purposes:\n // 1) The value of `currentTarget` is not initially available.\n // 2) Measuring the clientRect may cause layout jank and should only be done on-demand.\n\n function locationX(x) {\n rect = rect || getBoundingClientRect(responderEvent.currentTarget);\n\n if (rect) {\n return x - rect.left;\n }\n }\n\n function locationY(y) {\n rect = rect || getBoundingClientRect(responderEvent.currentTarget);\n\n if (rect) {\n return y - rect.top;\n }\n }\n\n return responderEvent;\n}","/**\n * Copyright (c) Nicolas Gallagher\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nexport var BLUR = 'blur';\nexport var CONTEXT_MENU = 'contextmenu';\nexport var FOCUS_OUT = 'focusout';\nexport var MOUSE_DOWN = 'mousedown';\nexport var MOUSE_MOVE = 'mousemove';\nexport var MOUSE_UP = 'mouseup';\nexport var MOUSE_CANCEL = 'dragstart';\nexport var TOUCH_START = 'touchstart';\nexport var TOUCH_MOVE = 'touchmove';\nexport var TOUCH_END = 'touchend';\nexport var TOUCH_CANCEL = 'touchcancel';\nexport var SCROLL = 'scroll';\nexport var SELECT = 'select';\nexport var SELECTION_CHANGE = 'selectionchange';\nexport function isStartish(eventType) {\n return eventType === TOUCH_START || eventType === MOUSE_DOWN;\n}\nexport function isMoveish(eventType) {\n return eventType === TOUCH_MOVE || eventType === MOUSE_MOVE;\n}\nexport function isEndish(eventType) {\n return eventType === TOUCH_END || eventType === MOUSE_UP || isCancelish(eventType);\n}\nexport function isCancelish(eventType) {\n return eventType === TOUCH_CANCEL || eventType === MOUSE_CANCEL;\n}\nexport function isScroll(eventType) {\n return eventType === SCROLL;\n}\nexport function isSelectionChange(eventType) {\n return eventType === SELECT || eventType === SELECTION_CHANGE;\n}","/**\n * Copyright (c) Nicolas Gallagher\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport isSelectionValid from '../../modules/isSelectionValid';\nvar keyName = '__reactResponderId';\n\nfunction getEventPath(domEvent) {\n // The 'selectionchange' event always has the 'document' as the target.\n // Use the anchor node as the initial target to reconstruct a path.\n // (We actually only need the first \"responder\" node in practice.)\n if (domEvent.type === 'selectionchange') {\n var target = window.getSelection().anchorNode;\n return composedPathFallback(target);\n } else {\n var path = domEvent.composedPath != null ? domEvent.composedPath() : composedPathFallback(domEvent.target);\n return path;\n }\n}\n\nfunction composedPathFallback(target) {\n var path = [];\n\n while (target != null && target !== document.body) {\n path.push(target);\n target = target.parentNode;\n }\n\n return path;\n}\n/**\n * Retrieve the responderId from a host node\n */\n\n\nfunction getResponderId(node) {\n if (node != null) {\n return node[keyName];\n }\n\n return null;\n}\n/**\n * Store the responderId on a host node\n */\n\n\nexport function setResponderId(node, id) {\n if (node != null) {\n node[keyName] = id;\n }\n}\n/**\n * Filter the event path to contain only the nodes attached to the responder system\n */\n\nexport function getResponderPaths(domEvent) {\n var idPath = [];\n var nodePath = [];\n var eventPath = getEventPath(domEvent);\n\n for (var i = 0; i < eventPath.length; i++) {\n var node = eventPath[i];\n var id = getResponderId(node);\n\n if (id != null) {\n idPath.push(id);\n nodePath.push(node);\n }\n }\n\n return {\n idPath,\n nodePath\n };\n}\n/**\n * Walk the paths and find the first common ancestor\n */\n\nexport function getLowestCommonAncestor(pathA, pathB) {\n var pathALength = pathA.length;\n var pathBLength = pathB.length;\n\n if ( // If either path is empty\n pathALength === 0 || pathBLength === 0 || // If the last elements aren't the same there can't be a common ancestor\n // that is connected to the responder system\n pathA[pathALength - 1] !== pathB[pathBLength - 1]) {\n return null;\n }\n\n var itemA = pathA[0];\n var indexA = 0;\n var itemB = pathB[0];\n var indexB = 0; // If A is deeper, skip indices that can't match.\n\n if (pathALength - pathBLength > 0) {\n indexA = pathALength - pathBLength;\n itemA = pathA[indexA];\n pathALength = pathBLength;\n } // If B is deeper, skip indices that can't match\n\n\n if (pathBLength - pathALength > 0) {\n indexB = pathBLength - pathALength;\n itemB = pathB[indexB];\n pathBLength = pathALength;\n } // Walk in lockstep until a match is found\n\n\n var depth = pathALength;\n\n while (depth--) {\n if (itemA === itemB) {\n return itemA;\n }\n\n itemA = pathA[indexA++];\n itemB = pathB[indexB++];\n }\n\n return null;\n}\n/**\n * Determine whether any of the active touches are within the current responder.\n * This cannot rely on W3C `targetTouches`, as neither IE11 nor Safari implement it.\n */\n\nexport function hasTargetTouches(target, touches) {\n if (!touches || touches.length === 0) {\n return false;\n }\n\n for (var i = 0; i < touches.length; i++) {\n var node = touches[i].target;\n\n if (node != null) {\n if (target.contains(node)) {\n return true;\n }\n }\n }\n\n return false;\n}\n/**\n * Ignore 'selectionchange' events that don't correspond with a person's intent to\n * select text.\n */\n\nexport function hasValidSelection(domEvent) {\n if (domEvent.type === 'selectionchange') {\n return isSelectionValid();\n }\n\n return domEvent.type === 'select';\n}\n/**\n * Events are only valid if the primary button was used without specific modifier keys.\n */\n\nexport function isPrimaryPointerDown(domEvent) {\n var altKey = domEvent.altKey,\n button = domEvent.button,\n buttons = domEvent.buttons,\n ctrlKey = domEvent.ctrlKey,\n type = domEvent.type;\n var isTouch = type === 'touchstart' || type === 'touchmove';\n var isPrimaryMouseDown = type === 'mousedown' && (button === 0 || buttons === 1);\n var isPrimaryMouseMove = type === 'mousemove' && buttons === 1;\n var noModifiers = altKey === false && ctrlKey === false;\n\n if (isTouch || isPrimaryMouseDown && noModifiers || isPrimaryMouseMove && noModifiers) {\n return true;\n }\n\n return false;\n}","/**\n * Copyright (c) Nicolas Gallagher\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nexport default function isSelectionValid() {\n var selection = window.getSelection();\n var string = selection.toString();\n var anchorNode = selection.anchorNode;\n var focusNode = selection.focusNode;\n var isTextNode = anchorNode && anchorNode.nodeType === window.Node.TEXT_NODE || focusNode && focusNode.nodeType === window.Node.TEXT_NODE;\n return string.length >= 1 && string !== '\\n' && isTextNode;\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { isStartish, isMoveish, isEndish } from './ResponderEventTypes';\n\n/**\n * Tracks the position and time of each active touch by `touch.identifier`. We\n * should typically only see IDs in the range of 1-20 because IDs get recycled\n * when touches end and start again.\n */\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar MAX_TOUCH_BANK = 20;\n\nfunction timestampForTouch(touch) {\n // The legacy internal implementation provides \"timeStamp\", which has been\n // renamed to \"timestamp\".\n return touch.timeStamp || touch.timestamp;\n}\n/**\n * TODO: Instead of making gestures recompute filtered velocity, we could\n * include a built in velocity computation that can be reused globally.\n */\n\n\nfunction createTouchRecord(touch) {\n return {\n touchActive: true,\n startPageX: touch.pageX,\n startPageY: touch.pageY,\n startTimeStamp: timestampForTouch(touch),\n currentPageX: touch.pageX,\n currentPageY: touch.pageY,\n currentTimeStamp: timestampForTouch(touch),\n previousPageX: touch.pageX,\n previousPageY: touch.pageY,\n previousTimeStamp: timestampForTouch(touch)\n };\n}\n\nfunction resetTouchRecord(touchRecord, touch) {\n touchRecord.touchActive = true;\n touchRecord.startPageX = touch.pageX;\n touchRecord.startPageY = touch.pageY;\n touchRecord.startTimeStamp = timestampForTouch(touch);\n touchRecord.currentPageX = touch.pageX;\n touchRecord.currentPageY = touch.pageY;\n touchRecord.currentTimeStamp = timestampForTouch(touch);\n touchRecord.previousPageX = touch.pageX;\n touchRecord.previousPageY = touch.pageY;\n touchRecord.previousTimeStamp = timestampForTouch(touch);\n}\n\nfunction getTouchIdentifier(_ref) {\n var identifier = _ref.identifier;\n\n if (identifier == null) {\n console.error('Touch object is missing identifier.');\n }\n\n if (__DEV__) {\n if (identifier > MAX_TOUCH_BANK) {\n console.error('Touch identifier %s is greater than maximum supported %s which causes ' + 'performance issues backfilling array locations for all of the indices.', identifier, MAX_TOUCH_BANK);\n }\n }\n\n return identifier;\n}\n\nfunction recordTouchStart(touch, touchHistory) {\n var identifier = getTouchIdentifier(touch);\n var touchRecord = touchHistory.touchBank[identifier];\n\n if (touchRecord) {\n resetTouchRecord(touchRecord, touch);\n } else {\n touchHistory.touchBank[identifier] = createTouchRecord(touch);\n }\n\n touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n}\n\nfunction recordTouchMove(touch, touchHistory) {\n var touchRecord = touchHistory.touchBank[getTouchIdentifier(touch)];\n\n if (touchRecord) {\n touchRecord.touchActive = true;\n touchRecord.previousPageX = touchRecord.currentPageX;\n touchRecord.previousPageY = touchRecord.currentPageY;\n touchRecord.previousTimeStamp = touchRecord.currentTimeStamp;\n touchRecord.currentPageX = touch.pageX;\n touchRecord.currentPageY = touch.pageY;\n touchRecord.currentTimeStamp = timestampForTouch(touch);\n touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n } else {\n console.warn('Cannot record touch move without a touch start.\\n', \"Touch Move: \" + printTouch(touch) + \"\\n\", \"Touch Bank: \" + printTouchBank(touchHistory));\n }\n}\n\nfunction recordTouchEnd(touch, touchHistory) {\n var touchRecord = touchHistory.touchBank[getTouchIdentifier(touch)];\n\n if (touchRecord) {\n touchRecord.touchActive = false;\n touchRecord.previousPageX = touchRecord.currentPageX;\n touchRecord.previousPageY = touchRecord.currentPageY;\n touchRecord.previousTimeStamp = touchRecord.currentTimeStamp;\n touchRecord.currentPageX = touch.pageX;\n touchRecord.currentPageY = touch.pageY;\n touchRecord.currentTimeStamp = timestampForTouch(touch);\n touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n } else {\n console.warn('Cannot record touch end without a touch start.\\n', \"Touch End: \" + printTouch(touch) + \"\\n\", \"Touch Bank: \" + printTouchBank(touchHistory));\n }\n}\n\nfunction printTouch(touch) {\n return JSON.stringify({\n identifier: touch.identifier,\n pageX: touch.pageX,\n pageY: touch.pageY,\n timestamp: timestampForTouch(touch)\n });\n}\n\nfunction printTouchBank(touchHistory) {\n var touchBank = touchHistory.touchBank;\n var printed = JSON.stringify(touchBank.slice(0, MAX_TOUCH_BANK));\n\n if (touchBank.length > MAX_TOUCH_BANK) {\n printed += ' (original size: ' + touchBank.length + ')';\n }\n\n return printed;\n}\n\nexport class ResponderTouchHistoryStore {\n constructor() {\n this._touchHistory = {\n touchBank: [],\n //Array\n numberActiveTouches: 0,\n // If there is only one active touch, we remember its location. This prevents\n // us having to loop through all of the touches all the time in the most\n // common case.\n indexOfSingleActiveTouch: -1,\n mostRecentTimeStamp: 0\n };\n }\n\n recordTouchTrack(topLevelType, nativeEvent) {\n var touchHistory = this._touchHistory;\n\n if (isMoveish(topLevelType)) {\n nativeEvent.changedTouches.forEach(touch => recordTouchMove(touch, touchHistory));\n } else if (isStartish(topLevelType)) {\n nativeEvent.changedTouches.forEach(touch => recordTouchStart(touch, touchHistory));\n touchHistory.numberActiveTouches = nativeEvent.touches.length;\n\n if (touchHistory.numberActiveTouches === 1) {\n touchHistory.indexOfSingleActiveTouch = nativeEvent.touches[0].identifier;\n }\n } else if (isEndish(topLevelType)) {\n nativeEvent.changedTouches.forEach(touch => recordTouchEnd(touch, touchHistory));\n touchHistory.numberActiveTouches = nativeEvent.touches.length;\n\n if (touchHistory.numberActiveTouches === 1) {\n var touchBank = touchHistory.touchBank;\n\n for (var i = 0; i < touchBank.length; i++) {\n var touchTrackToCheck = touchBank[i];\n\n if (touchTrackToCheck != null && touchTrackToCheck.touchActive) {\n touchHistory.indexOfSingleActiveTouch = i;\n break;\n }\n }\n\n if (__DEV__) {\n var activeRecord = touchBank[touchHistory.indexOfSingleActiveTouch];\n\n if (!(activeRecord != null && activeRecord.touchActive)) {\n console.error('Cannot find single active touch.');\n }\n }\n }\n }\n }\n\n get touchHistory() {\n return this._touchHistory;\n }\n\n}","/**\n * Copyright (c) Nicolas Gallagher\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n/**\n * RESPONDER EVENT SYSTEM\n *\n * A single, global \"interaction lock\" on views. For a view to be the \"responder\" means\n * that pointer interactions are exclusive to that view and none other. The \"interaction\n * lock\" can be transferred (only) to ancestors of the current \"responder\" as long as\n * pointers continue to be active.\n *\n * Responder being granted:\n *\n * A view can become the \"responder\" after the following events:\n * * \"pointerdown\" (implemented using \"touchstart\", \"mousedown\")\n * * \"pointermove\" (implemented using \"touchmove\", \"mousemove\")\n * * \"scroll\" (while a pointer is down)\n * * \"selectionchange\" (while a pointer is down)\n *\n * If nothing is already the \"responder\", the event propagates to (capture) and from\n * (bubble) the event target until a view returns `true` for\n * `on*ShouldSetResponder(Capture)`.\n *\n * If something is already the responder, the event propagates to (capture) and from\n * (bubble) the lowest common ancestor of the event target and the current \"responder\".\n * Then negotiation happens between the current \"responder\" and a view that wants to\n * become the \"responder\": see the timing diagram below.\n *\n * (NOTE: Scrolled views either automatically become the \"responder\" or release the\n * \"interaction lock\". A native scroll view that isn't built on top of the responder\n * system must result in the current \"responder\" being notified that it no longer has\n * the \"interaction lock\" - the native system has taken over.\n *\n * Responder being released:\n *\n * As soon as there are no more active pointers that *started* inside descendants\n * of the *current* \"responder\", an `onResponderRelease` event is dispatched to the\n * current \"responder\", and the responder lock is released.\n *\n * Typical sequence of events:\n * * startShouldSetResponder\n * * responderGrant/Reject\n * * responderStart\n * * responderMove\n * * responderEnd\n * * responderRelease\n */\n\n/* Negotiation Performed\n +-----------------------+\n / \\\nProcess low level events to + Current Responder + wantsResponderID\ndetermine who to perform negot-| (if any exists at all) |\niation/transition | Otherwise just pass through|\n-------------------------------+----------------------------+------------------+\nBubble to find first ID | |\nto return true:wantsResponderID| |\n | |\n +--------------+ | |\n | onTouchStart | | |\n +------+-------+ none | |\n | return| |\n+-----------v-------------+true| +------------------------+ |\n|onStartShouldSetResponder|----->| onResponderStart (cur) |<-----------+\n+-----------+-------------+ | +------------------------+ | |\n | | | +--------+-------+\n | returned true for| false:REJECT +-------->|onResponderReject\n | wantsResponderID | | | +----------------+\n | (now attempt | +------------------+-----+ |\n | handoff) | | onResponder | |\n +------------------->| TerminationRequest | |\n | +------------------+-----+ |\n | | | +----------------+\n | true:GRANT +-------->|onResponderGrant|\n | | +--------+-------+\n | +------------------------+ | |\n | | onResponderTerminate |<-----------+\n | +------------------+-----+ |\n | | | +----------------+\n | +-------->|onResponderStart|\n | | +----------------+\nBubble to find first ID | |\nto return true:wantsResponderID| |\n | |\n +-------------+ | |\n | onTouchMove | | |\n +------+------+ none | |\n | return| |\n+-----------v-------------+true| +------------------------+ |\n|onMoveShouldSetResponder |----->| onResponderMove (cur) |<-----------+\n+-----------+-------------+ | +------------------------+ | |\n | | | +--------+-------+\n | returned true for| false:REJECT +-------->|onResponderReject\n | wantsResponderID | | | +----------------+\n | (now attempt | +------------------+-----+ |\n | handoff) | | onResponder | |\n +------------------->| TerminationRequest| |\n | +------------------+-----+ |\n | | | +----------------+\n | true:GRANT +-------->|onResponderGrant|\n | | +--------+-------+\n | +------------------------+ | |\n | | onResponderTerminate |<-----------+\n | +------------------+-----+ |\n | | | +----------------+\n | +-------->|onResponderMove |\n | | +----------------+\n | |\n | |\n Some active touch started| |\n inside current responder | +------------------------+ |\n +------------------------->| onResponderEnd | |\n | | +------------------------+ |\n +---+---------+ | |\n | onTouchEnd | | |\n +---+---------+ | |\n | | +------------------------+ |\n +------------------------->| onResponderEnd | |\n No active touches started| +-----------+------------+ |\n inside current responder | | |\n | v |\n | +------------------------+ |\n | | onResponderRelease | |\n | +------------------------+ |\n | |\n + + */\nimport createResponderEvent from './createResponderEvent';\nimport { isCancelish, isEndish, isMoveish, isScroll, isSelectionChange, isStartish } from './ResponderEventTypes';\nimport { getLowestCommonAncestor, getResponderPaths, hasTargetTouches, hasValidSelection, isPrimaryPointerDown, setResponderId } from './utils';\nimport { ResponderTouchHistoryStore } from './ResponderTouchHistoryStore';\nimport canUseDOM from '../canUseDom';\n/* ------------ TYPES ------------ */\n\nvar emptyObject = {};\n/* ------------ IMPLEMENTATION ------------ */\n\nvar startRegistration = ['onStartShouldSetResponderCapture', 'onStartShouldSetResponder', {\n bubbles: true\n}];\nvar moveRegistration = ['onMoveShouldSetResponderCapture', 'onMoveShouldSetResponder', {\n bubbles: true\n}];\nvar scrollRegistration = ['onScrollShouldSetResponderCapture', 'onScrollShouldSetResponder', {\n bubbles: false\n}];\nvar shouldSetResponderEvents = {\n touchstart: startRegistration,\n mousedown: startRegistration,\n touchmove: moveRegistration,\n mousemove: moveRegistration,\n scroll: scrollRegistration\n};\nvar emptyResponder = {\n id: null,\n idPath: null,\n node: null\n};\nvar responderListenersMap = new Map();\nvar isEmulatingMouseEvents = false;\nvar trackedTouchCount = 0;\nvar currentResponder = {\n id: null,\n node: null,\n idPath: null\n};\nvar responderTouchHistoryStore = new ResponderTouchHistoryStore();\n\nfunction changeCurrentResponder(responder) {\n currentResponder = responder;\n}\n\nfunction getResponderConfig(id) {\n var config = responderListenersMap.get(id);\n return config != null ? config : emptyObject;\n}\n/**\n * Process native events\n *\n * A single event listener is used to manage the responder system.\n * All pointers are tracked in the ResponderTouchHistoryStore. Native events\n * are interpreted in terms of the Responder System and checked to see if\n * the responder should be transferred. Each host node that is attached to\n * the Responder System has an ID, which is used to look up its associated\n * callbacks.\n */\n\n\nfunction eventListener(domEvent) {\n var eventType = domEvent.type;\n var eventTarget = domEvent.target;\n /**\n * Manage emulated events and early bailout.\n * Since PointerEvent is not used yet (lack of support in older Safari), it's\n * necessary to manually manage the mess of browser touch/mouse events.\n * And bailout early for termination events when there is no active responder.\n */\n // Flag when browser may produce emulated events\n\n if (eventType === 'touchstart') {\n isEmulatingMouseEvents = true;\n } // Remove flag when browser will not produce emulated events\n\n\n if (eventType === 'touchmove' || trackedTouchCount > 1) {\n isEmulatingMouseEvents = false;\n } // Ignore various events in particular circumstances\n\n\n if ( // Ignore browser emulated mouse events\n eventType === 'mousedown' && isEmulatingMouseEvents || eventType === 'mousemove' && isEmulatingMouseEvents || // Ignore mousemove if a mousedown didn't occur first\n eventType === 'mousemove' && trackedTouchCount < 1) {\n return;\n } // Remove flag after emulated events are finished\n\n\n if (isEmulatingMouseEvents && eventType === 'mouseup') {\n if (trackedTouchCount === 0) {\n isEmulatingMouseEvents = false;\n }\n\n return;\n }\n\n var isStartEvent = isStartish(eventType) && isPrimaryPointerDown(domEvent);\n var isMoveEvent = isMoveish(eventType);\n var isEndEvent = isEndish(eventType);\n var isScrollEvent = isScroll(eventType);\n var isSelectionChangeEvent = isSelectionChange(eventType);\n var responderEvent = createResponderEvent(domEvent, responderTouchHistoryStore);\n /**\n * Record the state of active pointers\n */\n\n if (isStartEvent || isMoveEvent || isEndEvent) {\n if (domEvent.touches) {\n trackedTouchCount = domEvent.touches.length;\n } else {\n if (isStartEvent) {\n trackedTouchCount = 1;\n } else if (isEndEvent) {\n trackedTouchCount = 0;\n }\n }\n\n responderTouchHistoryStore.recordTouchTrack(eventType, responderEvent.nativeEvent);\n }\n /**\n * Responder System logic\n */\n\n\n var eventPaths = getResponderPaths(domEvent);\n var wasNegotiated = false;\n var wantsResponder; // If an event occured that might change the current responder...\n\n if (isStartEvent || isMoveEvent || isScrollEvent && trackedTouchCount > 0) {\n // If there is already a responder, prune the event paths to the lowest common ancestor\n // of the existing responder and deepest target of the event.\n var currentResponderIdPath = currentResponder.idPath;\n var eventIdPath = eventPaths.idPath;\n\n if (currentResponderIdPath != null && eventIdPath != null) {\n var lowestCommonAncestor = getLowestCommonAncestor(currentResponderIdPath, eventIdPath);\n\n if (lowestCommonAncestor != null) {\n var indexOfLowestCommonAncestor = eventIdPath.indexOf(lowestCommonAncestor); // Skip the current responder so it doesn't receive unexpected \"shouldSet\" events.\n\n var index = indexOfLowestCommonAncestor + (lowestCommonAncestor === currentResponder.id ? 1 : 0);\n eventPaths = {\n idPath: eventIdPath.slice(index),\n nodePath: eventPaths.nodePath.slice(index)\n };\n } else {\n eventPaths = null;\n }\n }\n\n if (eventPaths != null) {\n // If a node wants to become the responder, attempt to transfer.\n wantsResponder = findWantsResponder(eventPaths, domEvent, responderEvent);\n\n if (wantsResponder != null) {\n // Sets responder if none exists, or negotates with existing responder.\n attemptTransfer(responderEvent, wantsResponder);\n wasNegotiated = true;\n }\n }\n } // If there is now a responder, invoke its callbacks for the lifecycle of the gesture.\n\n\n if (currentResponder.id != null && currentResponder.node != null) {\n var _currentResponder = currentResponder,\n id = _currentResponder.id,\n node = _currentResponder.node;\n\n var _getResponderConfig = getResponderConfig(id),\n onResponderStart = _getResponderConfig.onResponderStart,\n onResponderMove = _getResponderConfig.onResponderMove,\n onResponderEnd = _getResponderConfig.onResponderEnd,\n onResponderRelease = _getResponderConfig.onResponderRelease,\n onResponderTerminate = _getResponderConfig.onResponderTerminate,\n onResponderTerminationRequest = _getResponderConfig.onResponderTerminationRequest;\n\n responderEvent.bubbles = false;\n responderEvent.cancelable = false;\n responderEvent.currentTarget = node; // Start\n\n if (isStartEvent) {\n if (onResponderStart != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderStart';\n onResponderStart(responderEvent);\n }\n } // Move\n else if (isMoveEvent) {\n if (onResponderMove != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderMove';\n onResponderMove(responderEvent);\n }\n } else {\n var isTerminateEvent = isCancelish(eventType) || // native context menu\n eventType === 'contextmenu' || // window blur\n eventType === 'blur' && eventTarget === window || // responder (or ancestors) blur\n eventType === 'blur' && eventTarget.contains(node) && domEvent.relatedTarget !== node || // native scroll without using a pointer\n isScrollEvent && trackedTouchCount === 0 || // native scroll on node that is parent of the responder (allow siblings to scroll)\n isScrollEvent && eventTarget.contains(node) && eventTarget !== node || // native select/selectionchange on node\n isSelectionChangeEvent && hasValidSelection(domEvent);\n var isReleaseEvent = isEndEvent && !isTerminateEvent && !hasTargetTouches(node, domEvent.touches); // End\n\n if (isEndEvent) {\n if (onResponderEnd != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderEnd';\n onResponderEnd(responderEvent);\n }\n } // Release\n\n\n if (isReleaseEvent) {\n if (onResponderRelease != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderRelease';\n onResponderRelease(responderEvent);\n }\n\n changeCurrentResponder(emptyResponder);\n } // Terminate\n\n\n if (isTerminateEvent) {\n var shouldTerminate = true; // Responders can still avoid termination but only for these events.\n\n if (eventType === 'contextmenu' || eventType === 'scroll' || eventType === 'selectionchange') {\n // Only call this function is it wasn't already called during negotiation.\n if (wasNegotiated) {\n shouldTerminate = false;\n } else if (onResponderTerminationRequest != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderTerminationRequest';\n\n if (onResponderTerminationRequest(responderEvent) === false) {\n shouldTerminate = false;\n }\n }\n }\n\n if (shouldTerminate) {\n if (onResponderTerminate != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderTerminate';\n onResponderTerminate(responderEvent);\n }\n\n changeCurrentResponder(emptyResponder);\n isEmulatingMouseEvents = false;\n trackedTouchCount = 0;\n }\n }\n }\n }\n}\n/**\n * Walk the event path to/from the target node. At each node, stop and call the\n * relevant \"shouldSet\" functions for the given event type. If any of those functions\n * call \"stopPropagation\" on the event, stop searching for a responder.\n */\n\n\nfunction findWantsResponder(eventPaths, domEvent, responderEvent) {\n var shouldSetCallbacks = shouldSetResponderEvents[domEvent.type]; // for Flow\n\n if (shouldSetCallbacks != null) {\n var idPath = eventPaths.idPath,\n nodePath = eventPaths.nodePath;\n var shouldSetCallbackCaptureName = shouldSetCallbacks[0];\n var shouldSetCallbackBubbleName = shouldSetCallbacks[1];\n var bubbles = shouldSetCallbacks[2].bubbles;\n\n var check = function check(id, node, callbackName) {\n var config = getResponderConfig(id);\n var shouldSetCallback = config[callbackName];\n\n if (shouldSetCallback != null) {\n responderEvent.currentTarget = node;\n\n if (shouldSetCallback(responderEvent) === true) {\n // Start the path from the potential responder\n var prunedIdPath = idPath.slice(idPath.indexOf(id));\n return {\n id,\n node,\n idPath: prunedIdPath\n };\n }\n }\n }; // capture\n\n\n for (var i = idPath.length - 1; i >= 0; i--) {\n var id = idPath[i];\n var node = nodePath[i];\n var result = check(id, node, shouldSetCallbackCaptureName);\n\n if (result != null) {\n return result;\n }\n\n if (responderEvent.isPropagationStopped() === true) {\n return;\n }\n } // bubble\n\n\n if (bubbles) {\n for (var _i = 0; _i < idPath.length; _i++) {\n var _id = idPath[_i];\n var _node = nodePath[_i];\n\n var _result = check(_id, _node, shouldSetCallbackBubbleName);\n\n if (_result != null) {\n return _result;\n }\n\n if (responderEvent.isPropagationStopped() === true) {\n return;\n }\n }\n } else {\n var _id2 = idPath[0];\n var _node2 = nodePath[0];\n var target = domEvent.target;\n\n if (target === _node2) {\n return check(_id2, _node2, shouldSetCallbackBubbleName);\n }\n }\n }\n}\n/**\n * Attempt to transfer the responder.\n */\n\n\nfunction attemptTransfer(responderEvent, wantsResponder) {\n var _currentResponder2 = currentResponder,\n currentId = _currentResponder2.id,\n currentNode = _currentResponder2.node;\n var id = wantsResponder.id,\n node = wantsResponder.node;\n\n var _getResponderConfig2 = getResponderConfig(id),\n onResponderGrant = _getResponderConfig2.onResponderGrant,\n onResponderReject = _getResponderConfig2.onResponderReject;\n\n responderEvent.bubbles = false;\n responderEvent.cancelable = false;\n responderEvent.currentTarget = node; // Set responder\n\n if (currentId == null) {\n if (onResponderGrant != null) {\n responderEvent.currentTarget = node;\n responderEvent.dispatchConfig.registrationName = 'onResponderGrant';\n onResponderGrant(responderEvent);\n }\n\n changeCurrentResponder(wantsResponder);\n } // Negotiate with current responder\n else {\n var _getResponderConfig3 = getResponderConfig(currentId),\n onResponderTerminate = _getResponderConfig3.onResponderTerminate,\n onResponderTerminationRequest = _getResponderConfig3.onResponderTerminationRequest;\n\n var allowTransfer = true;\n\n if (onResponderTerminationRequest != null) {\n responderEvent.currentTarget = currentNode;\n responderEvent.dispatchConfig.registrationName = 'onResponderTerminationRequest';\n\n if (onResponderTerminationRequest(responderEvent) === false) {\n allowTransfer = false;\n }\n }\n\n if (allowTransfer) {\n // Terminate existing responder\n if (onResponderTerminate != null) {\n responderEvent.currentTarget = currentNode;\n responderEvent.dispatchConfig.registrationName = 'onResponderTerminate';\n onResponderTerminate(responderEvent);\n } // Grant next responder\n\n\n if (onResponderGrant != null) {\n responderEvent.currentTarget = node;\n responderEvent.dispatchConfig.registrationName = 'onResponderGrant';\n onResponderGrant(responderEvent);\n }\n\n changeCurrentResponder(wantsResponder);\n } else {\n // Reject responder request\n if (onResponderReject != null) {\n responderEvent.currentTarget = node;\n responderEvent.dispatchConfig.registrationName = 'onResponderReject';\n onResponderReject(responderEvent);\n }\n }\n }\n}\n/* ------------ PUBLIC API ------------ */\n\n/**\n * Attach Listeners\n *\n * Use native events as ReactDOM doesn't have a non-plugin API to implement\n * this system.\n */\n\n\nvar documentEventsCapturePhase = ['blur', 'scroll'];\nvar documentEventsBubblePhase = [// mouse\n'mousedown', 'mousemove', 'mouseup', 'dragstart', // touch\n'touchstart', 'touchmove', 'touchend', 'touchcancel', // other\n'contextmenu', 'select', 'selectionchange'];\nexport function attachListeners() {\n if (canUseDOM && window.__reactResponderSystemActive == null) {\n window.addEventListener('blur', eventListener);\n documentEventsBubblePhase.forEach(eventType => {\n document.addEventListener(eventType, eventListener);\n });\n documentEventsCapturePhase.forEach(eventType => {\n document.addEventListener(eventType, eventListener, true);\n });\n window.__reactResponderSystemActive = true;\n }\n}\n/**\n * Register a node with the ResponderSystem.\n */\n\nexport function addNode(id, node, config) {\n setResponderId(node, id);\n responderListenersMap.set(id, config);\n}\n/**\n * Unregister a node with the ResponderSystem.\n */\n\nexport function removeNode(id) {\n if (currentResponder.id === id) {\n terminateResponder();\n }\n\n if (responderListenersMap.has(id)) {\n responderListenersMap.delete(id);\n }\n}\n/**\n * Allow the current responder to be terminated from within components to support\n * more complex requirements, such as use with other React libraries for working\n * with scroll views, input views, etc.\n */\n\nexport function terminateResponder() {\n var _currentResponder3 = currentResponder,\n id = _currentResponder3.id,\n node = _currentResponder3.node;\n\n if (id != null && node != null) {\n var _getResponderConfig4 = getResponderConfig(id),\n onResponderTerminate = _getResponderConfig4.onResponderTerminate;\n\n if (onResponderTerminate != null) {\n var event = createResponderEvent({}, responderTouchHistoryStore);\n event.currentTarget = node;\n onResponderTerminate(event);\n }\n\n changeCurrentResponder(emptyResponder);\n }\n\n isEmulatingMouseEvents = false;\n trackedTouchCount = 0;\n}\n/**\n * Allow unit tests to inspect the current responder in the system.\n * FOR TESTING ONLY.\n */\n\nexport function getResponderNode() {\n return currentResponder.node;\n}","/**\n * Copyright (c) Nicolas Gallagher\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n/**\n * Hook for integrating the Responder System into React\n *\n * function SomeComponent({ onStartShouldSetResponder }) {\n * const ref = useRef(null);\n * useResponderEvents(ref, { onStartShouldSetResponder });\n * return
\n * }\n */\nimport * as React from 'react';\nimport * as ResponderSystem from './ResponderSystem';\nvar emptyObject = {};\nvar idCounter = 0;\n\nfunction useStable(getInitialValue) {\n var ref = React.useRef(null);\n\n if (ref.current == null) {\n ref.current = getInitialValue();\n }\n\n return ref.current;\n}\n\nexport default function useResponderEvents(hostRef, config) {\n if (config === void 0) {\n config = emptyObject;\n }\n\n var id = useStable(() => idCounter++);\n var isAttachedRef = React.useRef(false); // This is a separate effects so it doesn't run when the config changes.\n // On initial mount, attach global listeners if needed.\n // On unmount, remove node potentially attached to the Responder System.\n\n React.useEffect(() => {\n ResponderSystem.attachListeners();\n return () => {\n ResponderSystem.removeNode(id);\n };\n }, [id]); // Register and unregister with the Responder System as necessary\n\n React.useEffect(() => {\n var _config = config,\n onMoveShouldSetResponder = _config.onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture = _config.onMoveShouldSetResponderCapture,\n onScrollShouldSetResponder = _config.onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture = _config.onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder = _config.onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture = _config.onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder = _config.onStartShouldSetResponder,\n onStartShouldSetResponderCapture = _config.onStartShouldSetResponderCapture;\n var requiresResponderSystem = onMoveShouldSetResponder != null || onMoveShouldSetResponderCapture != null || onScrollShouldSetResponder != null || onScrollShouldSetResponderCapture != null || onSelectionChangeShouldSetResponder != null || onSelectionChangeShouldSetResponderCapture != null || onStartShouldSetResponder != null || onStartShouldSetResponderCapture != null;\n var node = hostRef.current;\n\n if (requiresResponderSystem) {\n ResponderSystem.addNode(id, node, config);\n isAttachedRef.current = true;\n } else if (isAttachedRef.current) {\n ResponderSystem.removeNode(id);\n isAttachedRef.current = false;\n }\n }, [config, hostRef, id]);\n React.useDebugValue({\n isResponder: hostRef.current === ResponderSystem.getResponderNode()\n });\n React.useDebugValue(config);\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nvar UNINITIALIZED = typeof Symbol === 'function' && typeof Symbol() === 'symbol' ? Symbol() : Object.freeze({});\nexport default function useStable(getInitialValue) {\n var ref = React.useRef(UNINITIALIZED);\n\n if (ref.current === UNINITIALIZED) {\n ref.current = getInitialValue();\n } // $FlowFixMe (#64650789) Trouble refining types where `Symbol` is concerned.\n\n\n return ref.current;\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport EventEmitter from './_EventEmitter';\nexport default EventEmitter;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\nimport EventEmitter from '../emitter/EventEmitter'; // FIXME: use typed events\n\n/**\n * Global EventEmitter used by the native platform to emit events to JavaScript.\n * Events are identified by globally unique event names.\n *\n * NativeModules that emit events should instead subclass `NativeEventEmitter`.\n */\nexport default new EventEmitter();","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport Platform from '../../../exports/Platform';\nimport RCTDeviceEventEmitter from './RCTDeviceEventEmitter';\nimport invariant from 'fbjs/lib/invariant';\n\n/**\n * `NativeEventEmitter` is intended for use by Native Modules to emit events to\n * JavaScript listeners. If a `NativeModule` is supplied to the constructor, it\n * will be notified (via `addListener` and `removeListeners`) when the listener\n * count changes to manage \"native memory\".\n *\n * Currently, all native events are fired via a global `RCTDeviceEventEmitter`.\n * This means event names must be globally unique, and it means that call sites\n * can theoretically listen to `RCTDeviceEventEmitter` (although discouraged).\n */\nexport default class NativeEventEmitter {\n constructor(nativeModule) {\n if (Platform.OS === 'ios') {\n invariant(nativeModule != null, '`new NativeEventEmitter()` requires a non-null argument.');\n this._nativeModule = nativeModule;\n }\n }\n\n addListener(eventType, listener, context) {\n var _this$_nativeModule;\n\n (_this$_nativeModule = this._nativeModule) == null ? void 0 : _this$_nativeModule.addListener(eventType);\n var subscription = RCTDeviceEventEmitter.addListener(eventType, listener, context);\n return {\n remove: () => {\n if (subscription != null) {\n var _this$_nativeModule2;\n\n (_this$_nativeModule2 = this._nativeModule) == null ? void 0 : _this$_nativeModule2.removeListeners(1); // $FlowFixMe[incompatible-use]\n\n subscription.remove();\n subscription = null;\n }\n }\n };\n }\n /**\n * @deprecated Use `remove` on the EventSubscription from `addListener`.\n */\n\n\n removeListener(eventType, listener) {\n var _this$_nativeModule3;\n\n (_this$_nativeModule3 = this._nativeModule) == null ? void 0 : _this$_nativeModule3.removeListeners(1); // NOTE: This will report a deprecation notice via `console.error`.\n // $FlowFixMe[prop-missing] - `removeListener` exists but is deprecated.\n\n RCTDeviceEventEmitter.removeListener(eventType, listener);\n }\n\n emit(eventType) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n // Generally, `RCTDeviceEventEmitter` is directly invoked. But this is\n // included for completeness.\n RCTDeviceEventEmitter.emit(eventType, ...args);\n }\n\n removeAllListeners(eventType) {\n var _this$_nativeModule4;\n\n invariant(eventType != null, '`NativeEventEmitter.removeAllListener()` requires a non-null argument.');\n (_this$_nativeModule4 = this._nativeModule) == null ? void 0 : _this$_nativeModule4.removeListeners(this.listenerCount(eventType));\n RCTDeviceEventEmitter.removeAllListeners(eventType);\n }\n\n listenerCount(eventType) {\n return RCTDeviceEventEmitter.listenerCount(eventType);\n }\n\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport invariant from 'fbjs/lib/invariant';\n/**\n * Used to find the indices of the frames that overlap the given offsets. Useful for finding the\n * items that bound different windows of content, such as the visible area or the buffered overscan\n * area.\n */\n\nexport function elementsThatOverlapOffsets(offsets, itemCount, getFrameMetrics) {\n var out = [];\n var outLength = 0;\n\n for (var ii = 0; ii < itemCount; ii++) {\n var frame = getFrameMetrics(ii);\n var trailingOffset = frame.offset + frame.length;\n\n for (var kk = 0; kk < offsets.length; kk++) {\n if (out[kk] == null && trailingOffset >= offsets[kk]) {\n out[kk] = ii;\n outLength++;\n\n if (kk === offsets.length - 1) {\n invariant(outLength === offsets.length, 'bad offsets input, should be in increasing order: %s', JSON.stringify(offsets));\n return out;\n }\n }\n }\n }\n\n return out;\n}\n/**\n * Computes the number of elements in the `next` range that are new compared to the `prev` range.\n * Handy for calculating how many new items will be rendered when the render window changes so we\n * can restrict the number of new items render at once so that content can appear on the screen\n * faster.\n */\n\nexport function newRangeCount(prev, next) {\n return next.last - next.first + 1 - Math.max(0, 1 + Math.min(next.last, prev.last) - Math.max(next.first, prev.first));\n}\n/**\n * Custom logic for determining which items should be rendered given the current frame and scroll\n * metrics, as well as the previous render state. The algorithm may evolve over time, but generally\n * prioritizes the visible area first, then expands that with overscan regions ahead and behind,\n * biased in the direction of scroll.\n */\n\nexport function computeWindowedRenderLimits(data, getItemCount, maxToRenderPerBatch, windowSize, prev, getFrameMetricsApprox, scrollMetrics) {\n var itemCount = getItemCount(data);\n\n if (itemCount === 0) {\n return prev;\n }\n\n var offset = scrollMetrics.offset,\n velocity = scrollMetrics.velocity,\n visibleLength = scrollMetrics.visibleLength; // Start with visible area, then compute maximum overscan region by expanding from there, biased\n // in the direction of scroll. Total overscan area is capped, which should cap memory consumption\n // too.\n\n var visibleBegin = Math.max(0, offset);\n var visibleEnd = visibleBegin + visibleLength;\n var overscanLength = (windowSize - 1) * visibleLength; // Considering velocity seems to introduce more churn than it's worth.\n\n var leadFactor = 0.5; // Math.max(0, Math.min(1, velocity / 25 + 0.5));\n\n var fillPreference = velocity > 1 ? 'after' : velocity < -1 ? 'before' : 'none';\n var overscanBegin = Math.max(0, visibleBegin - (1 - leadFactor) * overscanLength);\n var overscanEnd = Math.max(0, visibleEnd + leadFactor * overscanLength);\n var lastItemOffset = getFrameMetricsApprox(itemCount - 1).offset;\n\n if (lastItemOffset < overscanBegin) {\n // Entire list is before our overscan window\n return {\n first: Math.max(0, itemCount - 1 - maxToRenderPerBatch),\n last: itemCount - 1\n };\n } // Find the indices that correspond to the items at the render boundaries we're targeting.\n\n\n var _elementsThatOverlapO = elementsThatOverlapOffsets([overscanBegin, visibleBegin, visibleEnd, overscanEnd], itemCount, getFrameMetricsApprox),\n overscanFirst = _elementsThatOverlapO[0],\n first = _elementsThatOverlapO[1],\n last = _elementsThatOverlapO[2],\n overscanLast = _elementsThatOverlapO[3];\n\n overscanFirst = overscanFirst == null ? 0 : overscanFirst;\n first = first == null ? Math.max(0, overscanFirst) : first;\n overscanLast = overscanLast == null ? itemCount - 1 : overscanLast;\n last = last == null ? Math.min(overscanLast, first + maxToRenderPerBatch - 1) : last;\n var visible = {\n first,\n last\n }; // We want to limit the number of new cells we're rendering per batch so that we can fill the\n // content on the screen quickly. If we rendered the entire overscan window at once, the user\n // could be staring at white space for a long time waiting for a bunch of offscreen content to\n // render.\n\n var newCellCount = newRangeCount(prev, visible);\n\n while (true) {\n if (first <= overscanFirst && last >= overscanLast) {\n // If we fill the entire overscan range, we're done.\n break;\n }\n\n var maxNewCells = newCellCount >= maxToRenderPerBatch;\n var firstWillAddMore = first <= prev.first || first > prev.last;\n var firstShouldIncrement = first > overscanFirst && (!maxNewCells || !firstWillAddMore);\n var lastWillAddMore = last >= prev.last || last < prev.first;\n var lastShouldIncrement = last < overscanLast && (!maxNewCells || !lastWillAddMore);\n\n if (maxNewCells && !firstShouldIncrement && !lastShouldIncrement) {\n // We only want to stop if we've hit maxNewCells AND we cannot increment first or last\n // without rendering new items. This let's us preserve as many already rendered items as\n // possible, reducing render churn and keeping the rendered overscan range as large as\n // possible.\n break;\n }\n\n if (firstShouldIncrement && !(fillPreference === 'after' && lastShouldIncrement && lastWillAddMore)) {\n if (firstWillAddMore) {\n newCellCount++;\n }\n\n first--;\n }\n\n if (lastShouldIncrement && !(fillPreference === 'before' && firstShouldIncrement && firstWillAddMore)) {\n if (lastWillAddMore) {\n newCellCount++;\n }\n\n last++;\n }\n }\n\n if (!(last >= first && first >= 0 && last < itemCount && first >= overscanFirst && last <= overscanLast && first <= visible.first && last >= visible.last)) {\n throw new Error('Bad window calculation ' + JSON.stringify({\n first,\n last,\n itemCount,\n overscanFirst,\n overscanLast,\n visible\n }));\n }\n\n return {\n first,\n last\n };\n}\nexport function keyExtractor(item, index) {\n if (typeof item === 'object' && (item == null ? void 0 : item.key) != null) {\n return item.key;\n }\n\n if (typeof item === 'object' && (item == null ? void 0 : item.id) != null) {\n return item.id;\n }\n\n return String(index);\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n'use strict';\n\nimport InteractionManager from '../../../exports/InteractionManager';\n/**\n * A simple class for batching up invocations of a low-pri callback. A timeout is set to run the\n * callback once after a delay, no matter how many times it's scheduled. Once the delay is reached,\n * InteractionManager.runAfterInteractions is used to invoke the callback after any hi-pri\n * interactions are done running.\n *\n * Make sure to cleanup with dispose(). Example:\n *\n * class Widget extends React.Component {\n * _batchedSave: new Batchinator(() => this._saveState, 1000);\n * _saveSate() {\n * // save this.state to disk\n * }\n * componentDidUpdate() {\n * this._batchedSave.schedule();\n * }\n * componentWillUnmount() {\n * this._batchedSave.dispose();\n * }\n * ...\n * }\n */\n\nclass Batchinator {\n constructor(callback, delayMS) {\n this._delay = delayMS;\n this._callback = callback;\n }\n /*\n * Cleanup any pending tasks.\n *\n * By default, if there is a pending task the callback is run immediately. Set the option abort to\n * true to not call the callback if it was pending.\n */\n\n\n dispose(options) {\n if (options === void 0) {\n options = {\n abort: false\n };\n }\n\n if (this._taskHandle) {\n this._taskHandle.cancel();\n\n if (!options.abort) {\n this._callback();\n }\n\n this._taskHandle = null;\n }\n }\n\n schedule() {\n if (this._taskHandle) {\n return;\n }\n\n var timeoutHandle = setTimeout(() => {\n this._taskHandle = InteractionManager.runAfterInteractions(() => {\n // Note that we clear the handle before invoking the callback so that if the callback calls\n // schedule again, it will actually schedule another task.\n this._taskHandle = null;\n\n this._callback();\n });\n }, this._delay);\n this._taskHandle = {\n cancel: () => clearTimeout(timeoutHandle)\n };\n }\n\n}\n\nexport default Batchinator;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\n\nclass Info {\n constructor() {\n this.any_blank_count = 0;\n this.any_blank_ms = 0;\n this.any_blank_speed_sum = 0;\n this.mostly_blank_count = 0;\n this.mostly_blank_ms = 0;\n this.pixels_blank = 0;\n this.pixels_sampled = 0;\n this.pixels_scrolled = 0;\n this.total_time_spent = 0;\n this.sample_count = 0;\n }\n\n}\n\nvar DEBUG = false;\nvar _listeners = [];\nvar _minSampleCount = 10;\n\nvar _sampleRate = DEBUG ? 1 : null;\n/**\n * A helper class for detecting when the maximem fill rate of `VirtualizedList` is exceeded.\n * By default the sampling rate is set to zero and this will do nothing. If you want to collect\n * samples (e.g. to log them), make sure to call `FillRateHelper.setSampleRate(0.0-1.0)`.\n *\n * Listeners and sample rate are global for all `VirtualizedList`s - typical usage will combine with\n * `SceneTracker.getActiveScene` to determine the context of the events.\n */\n\n\nclass FillRateHelper {\n static addListener(callback) {\n if (_sampleRate === null) {\n console.warn('Call `FillRateHelper.setSampleRate` before `addListener`.');\n }\n\n _listeners.push(callback);\n\n return {\n remove: () => {\n _listeners = _listeners.filter(listener => callback !== listener);\n }\n };\n }\n\n static setSampleRate(sampleRate) {\n _sampleRate = sampleRate;\n }\n\n static setMinSampleCount(minSampleCount) {\n _minSampleCount = minSampleCount;\n }\n\n constructor(getFrameMetrics) {\n this._anyBlankStartTime = null;\n this._enabled = false;\n this._info = new Info();\n this._mostlyBlankStartTime = null;\n this._samplesStartTime = null;\n this._getFrameMetrics = getFrameMetrics;\n this._enabled = (_sampleRate || 0) > Math.random();\n\n this._resetData();\n }\n\n activate() {\n if (this._enabled && this._samplesStartTime == null) {\n DEBUG && console.debug('FillRateHelper: activate');\n this._samplesStartTime = global.performance.now();\n }\n }\n\n deactivateAndFlush() {\n if (!this._enabled) {\n return;\n }\n\n var start = this._samplesStartTime; // const for flow\n\n if (start == null) {\n DEBUG && console.debug('FillRateHelper: bail on deactivate with no start time');\n return;\n }\n\n if (this._info.sample_count < _minSampleCount) {\n // Don't bother with under-sampled events.\n this._resetData();\n\n return;\n }\n\n var total_time_spent = global.performance.now() - start;\n\n var info = _objectSpread(_objectSpread({}, this._info), {}, {\n total_time_spent\n });\n\n if (DEBUG) {\n var derived = {\n avg_blankness: this._info.pixels_blank / this._info.pixels_sampled,\n avg_speed: this._info.pixels_scrolled / (total_time_spent / 1000),\n avg_speed_when_any_blank: this._info.any_blank_speed_sum / this._info.any_blank_count,\n any_blank_per_min: this._info.any_blank_count / (total_time_spent / 1000 / 60),\n any_blank_time_frac: this._info.any_blank_ms / total_time_spent,\n mostly_blank_per_min: this._info.mostly_blank_count / (total_time_spent / 1000 / 60),\n mostly_blank_time_frac: this._info.mostly_blank_ms / total_time_spent\n };\n\n for (var key in derived) {\n derived[key] = Math.round(1000 * derived[key]) / 1000;\n }\n\n console.debug('FillRateHelper deactivateAndFlush: ', {\n derived,\n info\n });\n }\n\n _listeners.forEach(listener => listener(info));\n\n this._resetData();\n }\n\n computeBlankness(props, state, scrollMetrics) {\n if (!this._enabled || props.getItemCount(props.data) === 0 || this._samplesStartTime == null) {\n return 0;\n }\n\n var dOffset = scrollMetrics.dOffset,\n offset = scrollMetrics.offset,\n velocity = scrollMetrics.velocity,\n visibleLength = scrollMetrics.visibleLength; // Denominator metrics that we track for all events - most of the time there is no blankness and\n // we want to capture that.\n\n this._info.sample_count++;\n this._info.pixels_sampled += Math.round(visibleLength);\n this._info.pixels_scrolled += Math.round(Math.abs(dOffset));\n var scrollSpeed = Math.round(Math.abs(velocity) * 1000); // px / sec\n // Whether blank now or not, record the elapsed time blank if we were blank last time.\n\n var now = global.performance.now();\n\n if (this._anyBlankStartTime != null) {\n this._info.any_blank_ms += now - this._anyBlankStartTime;\n }\n\n this._anyBlankStartTime = null;\n\n if (this._mostlyBlankStartTime != null) {\n this._info.mostly_blank_ms += now - this._mostlyBlankStartTime;\n }\n\n this._mostlyBlankStartTime = null;\n var blankTop = 0;\n var first = state.first;\n\n var firstFrame = this._getFrameMetrics(first);\n\n while (first <= state.last && (!firstFrame || !firstFrame.inLayout)) {\n firstFrame = this._getFrameMetrics(first);\n first++;\n } // Only count blankTop if we aren't rendering the first item, otherwise we will count the header\n // as blank.\n\n\n if (firstFrame && first > 0) {\n blankTop = Math.min(visibleLength, Math.max(0, firstFrame.offset - offset));\n }\n\n var blankBottom = 0;\n var last = state.last;\n\n var lastFrame = this._getFrameMetrics(last);\n\n while (last >= state.first && (!lastFrame || !lastFrame.inLayout)) {\n lastFrame = this._getFrameMetrics(last);\n last--;\n } // Only count blankBottom if we aren't rendering the last item, otherwise we will count the\n // footer as blank.\n\n\n if (lastFrame && last < props.getItemCount(props.data) - 1) {\n var bottomEdge = lastFrame.offset + lastFrame.length;\n blankBottom = Math.min(visibleLength, Math.max(0, offset + visibleLength - bottomEdge));\n }\n\n var pixels_blank = Math.round(blankTop + blankBottom);\n var blankness = pixels_blank / visibleLength;\n\n if (blankness > 0) {\n this._anyBlankStartTime = now;\n this._info.any_blank_speed_sum += scrollSpeed;\n this._info.any_blank_count++;\n this._info.pixels_blank += pixels_blank;\n\n if (blankness > 0.5) {\n this._mostlyBlankStartTime = now;\n this._info.mostly_blank_count++;\n }\n } else if (scrollSpeed < 0.01 || Math.abs(dOffset) < 1) {\n this.deactivateAndFlush();\n }\n\n return blankness;\n }\n\n enabled() {\n return this._enabled;\n }\n\n _resetData() {\n this._anyBlankStartTime = null;\n this._info = new Info();\n this._mostlyBlankStartTime = null;\n this._samplesStartTime = null;\n }\n\n}\n\nexport default FillRateHelper;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _createForOfIteratorHelperLoose from \"@babel/runtime/helpers/createForOfIteratorHelperLoose\";\nimport invariant from 'fbjs/lib/invariant';\n\n/**\n * A Utility class for calculating viewable items based on current metrics like scroll position and\n * layout.\n *\n * An item is said to be in a \"viewable\" state when any of the following\n * is true for longer than `minimumViewTime` milliseconds (after an interaction if `waitForInteraction`\n * is true):\n *\n * - Occupying >= `viewAreaCoveragePercentThreshold` of the view area XOR fraction of the item\n * visible in the view area >= `itemVisiblePercentThreshold`.\n * - Entirely visible on screen\n */\nclass ViewabilityHelper {\n constructor(config) {\n if (config === void 0) {\n config = {\n viewAreaCoveragePercentThreshold: 0\n };\n }\n\n this._hasInteracted = false;\n this._timers = new Set();\n this._viewableIndices = [];\n this._viewableItems = new Map();\n this._config = config;\n }\n /**\n * Cleanup, e.g. on unmount. Clears any pending timers.\n */\n\n\n dispose() {\n this._timers.forEach(clearTimeout);\n }\n /**\n * Determines which items are viewable based on the current metrics and config.\n */\n\n\n computeViewableItems(itemCount, scrollOffset, viewportHeight, getFrameMetrics, renderRange // Optional optimization to reduce the scan size\n ) {\n var _this$_config = this._config,\n itemVisiblePercentThreshold = _this$_config.itemVisiblePercentThreshold,\n viewAreaCoveragePercentThreshold = _this$_config.viewAreaCoveragePercentThreshold;\n var viewAreaMode = viewAreaCoveragePercentThreshold != null;\n var viewablePercentThreshold = viewAreaMode ? viewAreaCoveragePercentThreshold : itemVisiblePercentThreshold;\n invariant(viewablePercentThreshold != null && itemVisiblePercentThreshold != null !== (viewAreaCoveragePercentThreshold != null), 'Must set exactly one of itemVisiblePercentThreshold or viewAreaCoveragePercentThreshold');\n var viewableIndices = [];\n\n if (itemCount === 0) {\n return viewableIndices;\n }\n\n var firstVisible = -1;\n\n var _ref = renderRange || {\n first: 0,\n last: itemCount - 1\n },\n first = _ref.first,\n last = _ref.last;\n\n if (last >= itemCount) {\n console.warn('Invalid render range computing viewability ' + JSON.stringify({\n renderRange,\n itemCount\n }));\n return [];\n }\n\n for (var idx = first; idx <= last; idx++) {\n var metrics = getFrameMetrics(idx);\n\n if (!metrics) {\n continue;\n }\n\n var top = metrics.offset - scrollOffset;\n var bottom = top + metrics.length;\n\n if (top < viewportHeight && bottom > 0) {\n firstVisible = idx;\n\n if (_isViewable(viewAreaMode, viewablePercentThreshold, top, bottom, viewportHeight, metrics.length)) {\n viewableIndices.push(idx);\n }\n } else if (firstVisible >= 0) {\n break;\n }\n }\n\n return viewableIndices;\n }\n /**\n * Figures out which items are viewable and how that has changed from before and calls\n * `onViewableItemsChanged` as appropriate.\n */\n\n\n onUpdate(itemCount, scrollOffset, viewportHeight, getFrameMetrics, createViewToken, onViewableItemsChanged, renderRange // Optional optimization to reduce the scan size\n ) {\n if (this._config.waitForInteraction && !this._hasInteracted || itemCount === 0 || !getFrameMetrics(0)) {\n return;\n }\n\n var viewableIndices = [];\n\n if (itemCount) {\n viewableIndices = this.computeViewableItems(itemCount, scrollOffset, viewportHeight, getFrameMetrics, renderRange);\n }\n\n if (this._viewableIndices.length === viewableIndices.length && this._viewableIndices.every((v, ii) => v === viewableIndices[ii])) {\n // We might get a lot of scroll events where visibility doesn't change and we don't want to do\n // extra work in those cases.\n return;\n }\n\n this._viewableIndices = viewableIndices;\n\n if (this._config.minimumViewTime) {\n var handle = setTimeout(() => {\n this._timers.delete(handle);\n\n this._onUpdateSync(viewableIndices, onViewableItemsChanged, createViewToken);\n }, this._config.minimumViewTime);\n\n this._timers.add(handle);\n } else {\n this._onUpdateSync(viewableIndices, onViewableItemsChanged, createViewToken);\n }\n }\n /**\n * clean-up cached _viewableIndices to evaluate changed items on next update\n */\n\n\n resetViewableIndices() {\n this._viewableIndices = [];\n }\n /**\n * Records that an interaction has happened even if there has been no scroll.\n */\n\n\n recordInteraction() {\n this._hasInteracted = true;\n }\n\n _onUpdateSync( // $FlowFixMe\n viewableIndicesToCheck, // $FlowFixMe\n onViewableItemsChanged, // $FlowFixMe\n createViewToken) {\n // Filter out indices that have gone out of view since this call was scheduled.\n viewableIndicesToCheck = viewableIndicesToCheck.filter(ii => this._viewableIndices.includes(ii));\n var prevItems = this._viewableItems;\n var nextItems = new Map(viewableIndicesToCheck.map(ii => {\n var viewable = createViewToken(ii, true);\n return [viewable.key, viewable];\n }));\n var changed = [];\n\n for (var _iterator = _createForOfIteratorHelperLoose(nextItems), _step; !(_step = _iterator()).done;) {\n var _step$value = _step.value,\n key = _step$value[0],\n viewable = _step$value[1];\n\n if (!prevItems.has(key)) {\n changed.push(viewable);\n }\n }\n\n for (var _iterator2 = _createForOfIteratorHelperLoose(prevItems), _step2; !(_step2 = _iterator2()).done;) {\n var _step2$value = _step2.value,\n _key = _step2$value[0],\n _viewable = _step2$value[1];\n\n if (!nextItems.has(_key)) {\n changed.push(_objectSpread(_objectSpread({}, _viewable), {}, {\n isViewable: false\n }));\n }\n }\n\n if (changed.length > 0) {\n this._viewableItems = nextItems;\n onViewableItemsChanged({\n viewableItems: Array.from(nextItems.values()),\n changed,\n viewabilityConfig: this._config\n });\n }\n }\n\n}\n\nfunction _isViewable(viewAreaMode, viewablePercentThreshold, top, bottom, viewportHeight, itemLength) {\n if (_isEntirelyVisible(top, bottom, viewportHeight)) {\n return true;\n } else {\n var pixels = _getPixelsVisible(top, bottom, viewportHeight);\n\n var percent = 100 * (viewAreaMode ? pixels / viewportHeight : pixels / itemLength);\n return percent >= viewablePercentThreshold;\n }\n}\n\nfunction _getPixelsVisible(top, bottom, viewportHeight) {\n var visibleHeight = Math.min(bottom, viewportHeight) - Math.max(top, 0);\n return Math.max(0, visibleHeight);\n}\n\nfunction _isEntirelyVisible(top, bottom, viewportHeight) {\n return top >= 0 && bottom <= viewportHeight && bottom > top;\n}\n\nexport default ViewabilityHelper;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n/**\n * Intentional info-level logging for clear separation from ad-hoc console debug logging.\n */\n\nfunction infoLog() {\n return console.log(...arguments);\n}\n\nexport default infoLog;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\nimport * as React from 'react';\nimport { useMemo, useContext } from 'react';\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nexport var VirtualizedListContext = /*#__PURE__*/React.createContext(null);\n\nif (__DEV__) {\n VirtualizedListContext.displayName = 'VirtualizedListContext';\n}\n/**\n * Resets the context. Intended for use by portal-like components (e.g. Modal).\n */\n\n\nexport function VirtualizedListContextResetter(_ref) {\n var children = _ref.children;\n return /*#__PURE__*/React.createElement(VirtualizedListContext.Provider, {\n value: null\n }, children);\n}\n/**\n * Sets the context with memoization. Intended to be used by `VirtualizedList`.\n */\n\nexport function VirtualizedListContextProvider(_ref2) {\n var children = _ref2.children,\n value = _ref2.value;\n // Avoid setting a newly created context object if the values are identical.\n var context = useMemo(() => ({\n cellKey: null,\n getScrollMetrics: value.getScrollMetrics,\n horizontal: value.horizontal,\n getOutermostParentListRef: value.getOutermostParentListRef,\n getNestedChildState: value.getNestedChildState,\n registerAsNestedChild: value.registerAsNestedChild,\n unregisterAsNestedChild: value.unregisterAsNestedChild,\n debugInfo: {\n cellKey: value.debugInfo.cellKey,\n horizontal: value.debugInfo.horizontal,\n listKey: value.debugInfo.listKey,\n parent: value.debugInfo.parent\n }\n }), [value.getScrollMetrics, value.horizontal, value.getOutermostParentListRef, value.getNestedChildState, value.registerAsNestedChild, value.unregisterAsNestedChild, value.debugInfo.cellKey, value.debugInfo.horizontal, value.debugInfo.listKey, value.debugInfo.parent]);\n return /*#__PURE__*/React.createElement(VirtualizedListContext.Provider, {\n value: context\n }, children);\n}\n/**\n * Sets the `cellKey`. Intended to be used by `VirtualizedList` for each cell.\n */\n\nexport function VirtualizedListCellContextProvider(_ref3) {\n var cellKey = _ref3.cellKey,\n children = _ref3.children;\n var context = useContext(VirtualizedListContext);\n return /*#__PURE__*/React.createElement(VirtualizedListContext.Provider, {\n value: context == null ? null : _objectSpread(_objectSpread({}, context), {}, {\n cellKey\n })\n }, children);\n}","import _createForOfIteratorHelperLoose from \"@babel/runtime/helpers/createForOfIteratorHelperLoose\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\nimport Batchinator from '../Batchinator';\nimport FillRateHelper from '../FillRateHelper';\nimport findNodeHandle from '../../../exports/findNodeHandle';\nimport RefreshControl from '../../../exports/RefreshControl';\nimport ScrollView from '../../../exports/ScrollView';\nimport StyleSheet from '../../../exports/StyleSheet';\nimport View from '../../../exports/View';\nimport ViewabilityHelper from '../ViewabilityHelper';\nvar flattenStyle = StyleSheet.flatten;\nimport infoLog from '../infoLog';\nimport invariant from 'fbjs/lib/invariant';\nimport { keyExtractor as defaultKeyExtractor, computeWindowedRenderLimits } from '../VirtualizeUtils';\nimport * as React from 'react';\nimport { VirtualizedListCellContextProvider, VirtualizedListContext, VirtualizedListContextProvider } from './VirtualizedListContext.js';\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar _usedIndexForKey = false;\nvar _keylessItemComponentName = '';\n\n/**\n * Default Props Helper Functions\n * Use the following helper functions for default values\n */\n// horizontalOrDefault(this.props.horizontal)\nfunction horizontalOrDefault(horizontal) {\n return horizontal !== null && horizontal !== void 0 ? horizontal : false;\n} // initialNumToRenderOrDefault(this.props.initialNumToRenderOrDefault)\n\n\nfunction initialNumToRenderOrDefault(initialNumToRender) {\n return initialNumToRender !== null && initialNumToRender !== void 0 ? initialNumToRender : 10;\n} // maxToRenderPerBatchOrDefault(this.props.maxToRenderPerBatch)\n\n\nfunction maxToRenderPerBatchOrDefault(maxToRenderPerBatch) {\n return maxToRenderPerBatch !== null && maxToRenderPerBatch !== void 0 ? maxToRenderPerBatch : 10;\n} // onEndReachedThresholdOrDefault(this.props.onEndReachedThreshold)\n\n\nfunction onEndReachedThresholdOrDefault(onEndReachedThreshold) {\n return onEndReachedThreshold !== null && onEndReachedThreshold !== void 0 ? onEndReachedThreshold : 2;\n} // scrollEventThrottleOrDefault(this.props.scrollEventThrottle)\n\n\nfunction scrollEventThrottleOrDefault(scrollEventThrottle) {\n return scrollEventThrottle !== null && scrollEventThrottle !== void 0 ? scrollEventThrottle : 50;\n} // windowSizeOrDefault(this.props.windowSize)\n\n\nfunction windowSizeOrDefault(windowSize) {\n return windowSize !== null && windowSize !== void 0 ? windowSize : 21;\n}\n/**\n * Base implementation for the more convenient [``](https://reactnative.dev/docs/flatlist)\n * and [``](https://reactnative.dev/docs/sectionlist) components, which are also better\n * documented. In general, this should only really be used if you need more flexibility than\n * `FlatList` provides, e.g. for use with immutable data instead of plain arrays.\n *\n * Virtualization massively improves memory consumption and performance of large lists by\n * maintaining a finite render window of active items and replacing all items outside of the render\n * window with appropriately sized blank space. The window adapts to scrolling behavior, and items\n * are rendered incrementally with low-pri (after any running interactions) if they are far from the\n * visible area, or with hi-pri otherwise to minimize the potential of seeing blank space.\n *\n * Some caveats:\n *\n * - Internal state is not preserved when content scrolls out of the render window. Make sure all\n * your data is captured in the item data or external stores like Flux, Redux, or Relay.\n * - This is a `PureComponent` which means that it will not re-render if `props` remain shallow-\n * equal. Make sure that everything your `renderItem` function depends on is passed as a prop\n * (e.g. `extraData`) that is not `===` after updates, otherwise your UI may not update on\n * changes. This includes the `data` prop and parent component state.\n * - In order to constrain memory and enable smooth scrolling, content is rendered asynchronously\n * offscreen. This means it's possible to scroll faster than the fill rate ands momentarily see\n * blank content. This is a tradeoff that can be adjusted to suit the needs of each application,\n * and we are working on improving it behind the scenes.\n * - By default, the list looks for a `key` or `id` prop on each item and uses that for the React key.\n * Alternatively, you can provide a custom `keyExtractor` prop.\n * - As an effort to remove defaultProps, use helper functions when referencing certain props\n *\n */\n\n\nclass VirtualizedList extends React.PureComponent {\n // scrollToEnd may be janky without getItemLayout prop\n scrollToEnd(params) {\n var animated = params ? params.animated : true;\n var veryLast = this.props.getItemCount(this.props.data) - 1;\n\n var frame = this._getFrameMetricsApprox(veryLast);\n\n var offset = Math.max(0, frame.offset + frame.length + this._footerLength - this._scrollMetrics.visibleLength);\n\n if (this._scrollRef == null) {\n return;\n }\n\n if (this._scrollRef.scrollTo == null) {\n console.warn('No scrollTo method provided. This may be because you have two nested ' + 'VirtualizedLists with the same orientation, or because you are ' + 'using a custom component that does not implement scrollTo.');\n return;\n }\n\n this._scrollRef.scrollTo(horizontalOrDefault(this.props.horizontal) ? {\n x: offset,\n animated\n } : {\n y: offset,\n animated\n });\n } // scrollToIndex may be janky without getItemLayout prop\n\n\n scrollToIndex(params) {\n var _this$props = this.props,\n data = _this$props.data,\n horizontal = _this$props.horizontal,\n getItemCount = _this$props.getItemCount,\n getItemLayout = _this$props.getItemLayout,\n onScrollToIndexFailed = _this$props.onScrollToIndexFailed;\n var animated = params.animated,\n index = params.index,\n viewOffset = params.viewOffset,\n viewPosition = params.viewPosition;\n invariant(index >= 0, \"scrollToIndex out of range: requested index \" + index + \" but minimum is 0\");\n invariant(getItemCount(data) >= 1, \"scrollToIndex out of range: item length \" + getItemCount(data) + \" but minimum is 1\");\n invariant(index < getItemCount(data), \"scrollToIndex out of range: requested index \" + index + \" is out of 0 to \" + (getItemCount(data) - 1));\n\n if (!getItemLayout && index > this._highestMeasuredFrameIndex) {\n invariant(!!onScrollToIndexFailed, 'scrollToIndex should be used in conjunction with getItemLayout or onScrollToIndexFailed, ' + 'otherwise there is no way to know the location of offscreen indices or handle failures.');\n onScrollToIndexFailed({\n averageItemLength: this._averageCellLength,\n highestMeasuredFrameIndex: this._highestMeasuredFrameIndex,\n index\n });\n return;\n }\n\n var frame = this._getFrameMetricsApprox(index);\n\n var offset = Math.max(0, frame.offset - (viewPosition || 0) * (this._scrollMetrics.visibleLength - frame.length)) - (viewOffset || 0);\n\n if (this._scrollRef == null) {\n return;\n }\n\n if (this._scrollRef.scrollTo == null) {\n console.warn('No scrollTo method provided. This may be because you have two nested ' + 'VirtualizedLists with the same orientation, or because you are ' + 'using a custom component that does not implement scrollTo.');\n return;\n }\n\n this._scrollRef.scrollTo(horizontal ? {\n x: offset,\n animated\n } : {\n y: offset,\n animated\n });\n } // scrollToItem may be janky without getItemLayout prop. Required linear scan through items -\n // use scrollToIndex instead if possible.\n\n\n scrollToItem(params) {\n var item = params.item;\n var _this$props2 = this.props,\n data = _this$props2.data,\n getItem = _this$props2.getItem,\n getItemCount = _this$props2.getItemCount;\n var itemCount = getItemCount(data);\n\n for (var _index = 0; _index < itemCount; _index++) {\n if (getItem(data, _index) === item) {\n this.scrollToIndex(_objectSpread(_objectSpread({}, params), {}, {\n index: _index\n }));\n break;\n }\n }\n }\n /**\n * Scroll to a specific content pixel offset in the list.\n *\n * Param `offset` expects the offset to scroll to.\n * In case of `horizontal` is true, the offset is the x-value,\n * in any other case the offset is the y-value.\n *\n * Param `animated` (`true` by default) defines whether the list\n * should do an animation while scrolling.\n */\n\n\n scrollToOffset(params) {\n var animated = params.animated,\n offset = params.offset;\n\n if (this._scrollRef == null) {\n return;\n }\n\n if (this._scrollRef.scrollTo == null) {\n console.warn('No scrollTo method provided. This may be because you have two nested ' + 'VirtualizedLists with the same orientation, or because you are ' + 'using a custom component that does not implement scrollTo.');\n return;\n }\n\n this._scrollRef.scrollTo(horizontalOrDefault(this.props.horizontal) ? {\n x: offset,\n animated\n } : {\n y: offset,\n animated\n });\n }\n\n recordInteraction() {\n this._nestedChildLists.forEach(childList => {\n childList.ref && childList.ref.recordInteraction();\n });\n\n this._viewabilityTuples.forEach(t => {\n t.viewabilityHelper.recordInteraction();\n });\n\n this._updateViewableItems(this.props.data);\n }\n\n flashScrollIndicators() {\n if (this._scrollRef == null) {\n return;\n }\n\n this._scrollRef.flashScrollIndicators();\n }\n /**\n * Provides a handle to the underlying scroll responder.\n * Note that `this._scrollRef` might not be a `ScrollView`, so we\n * need to check that it responds to `getScrollResponder` before calling it.\n */\n\n\n getScrollResponder() {\n if (this._scrollRef && this._scrollRef.getScrollResponder) {\n return this._scrollRef.getScrollResponder();\n }\n }\n\n getScrollableNode() {\n if (this._scrollRef && this._scrollRef.getScrollableNode) {\n return this._scrollRef.getScrollableNode();\n } else {\n return findNodeHandle(this._scrollRef);\n }\n }\n\n getScrollRef() {\n if (this._scrollRef && this._scrollRef.getScrollRef) {\n return this._scrollRef.getScrollRef();\n } else {\n return this._scrollRef;\n }\n }\n\n setNativeProps(props) {\n if (this._scrollRef) {\n this._scrollRef.setNativeProps(props);\n }\n }\n\n _getCellKey() {\n var _this$context;\n\n return ((_this$context = this.context) == null ? void 0 : _this$context.cellKey) || 'rootList';\n }\n\n _getListKey() {\n return this.props.listKey || this._getCellKey();\n }\n\n _getDebugInfo() {\n var _this$context2;\n\n return {\n listKey: this._getListKey(),\n cellKey: this._getCellKey(),\n horizontal: horizontalOrDefault(this.props.horizontal),\n parent: (_this$context2 = this.context) == null ? void 0 : _this$context2.debugInfo\n };\n }\n\n hasMore() {\n return this._hasMore;\n }\n\n constructor(_props) {\n var _this$props$updateCel;\n\n super(_props);\n\n this._getScrollMetrics = () => {\n return this._scrollMetrics;\n };\n\n this._getOutermostParentListRef = () => {\n if (this._isNestedWithSameOrientation()) {\n return this.context.getOutermostParentListRef();\n } else {\n return this;\n }\n };\n\n this._getNestedChildState = key => {\n var existingChildData = this._nestedChildLists.get(key);\n\n return existingChildData && existingChildData.state;\n };\n\n this._registerAsNestedChild = childList => {\n // Register the mapping between this child key and the cellKey for its cell\n var childListsInCell = this._cellKeysToChildListKeys.get(childList.cellKey) || new Set();\n childListsInCell.add(childList.key);\n\n this._cellKeysToChildListKeys.set(childList.cellKey, childListsInCell);\n\n var existingChildData = this._nestedChildLists.get(childList.key);\n\n if (existingChildData && existingChildData.ref !== null) {\n console.error('A VirtualizedList contains a cell which itself contains ' + 'more than one VirtualizedList of the same orientation as the parent ' + 'list. You must pass a unique listKey prop to each sibling list.\\n\\n' + describeNestedLists(_objectSpread(_objectSpread({}, childList), {}, {\n // We're called from the child's componentDidMount, so it's safe to\n // read the child's props here (albeit weird).\n horizontal: !!childList.ref.props.horizontal\n })));\n }\n\n this._nestedChildLists.set(childList.key, {\n ref: childList.ref,\n state: null\n });\n\n if (this._hasInteracted) {\n childList.ref.recordInteraction();\n }\n };\n\n this._unregisterAsNestedChild = childList => {\n this._nestedChildLists.set(childList.key, {\n ref: null,\n state: childList.state\n });\n };\n\n this._onUpdateSeparators = (keys, newProps) => {\n keys.forEach(key => {\n var ref = key != null && this._cellRefs[key];\n ref && ref.updateSeparatorProps(newProps);\n });\n };\n\n this._getSpacerKey = isVertical => isVertical ? 'height' : 'width';\n\n this._averageCellLength = 0;\n this._cellKeysToChildListKeys = new Map();\n this._cellRefs = {};\n this._frames = {};\n this._footerLength = 0;\n this._hasDoneInitialScroll = false;\n this._hasInteracted = false;\n this._hasMore = false;\n this._hasWarned = {};\n this._headerLength = 0;\n this._hiPriInProgress = false;\n this._highestMeasuredFrameIndex = 0;\n this._indicesToKeys = new Map();\n this._nestedChildLists = new Map();\n this._offsetFromParentVirtualizedList = 0;\n this._prevParentOffset = 0;\n this._scrollMetrics = {\n contentLength: 0,\n dOffset: 0,\n dt: 10,\n offset: 0,\n timestamp: 0,\n velocity: 0,\n visibleLength: 0\n };\n this._scrollRef = null;\n this._sentEndForContentLength = 0;\n this._totalCellLength = 0;\n this._totalCellsMeasured = 0;\n this._viewabilityTuples = [];\n\n this._captureScrollRef = ref => {\n this._scrollRef = ref;\n };\n\n this._defaultRenderScrollComponent = props => {\n var onRefresh = props.onRefresh;\n\n if (this._isNestedWithSameOrientation()) {\n // $FlowFixMe[prop-missing] - Typing ReactNativeComponent revealed errors\n return /*#__PURE__*/React.createElement(View, props);\n } else if (onRefresh) {\n var _props$refreshing;\n\n invariant(typeof props.refreshing === 'boolean', '`refreshing` prop must be set as a boolean in order to use `onRefresh`, but got `' + JSON.stringify((_props$refreshing = props.refreshing) !== null && _props$refreshing !== void 0 ? _props$refreshing : 'undefined') + '`');\n return (\n /*#__PURE__*/\n // $FlowFixMe[prop-missing] Invalid prop usage\n React.createElement(ScrollView, _extends({}, props, {\n refreshControl: props.refreshControl == null ? /*#__PURE__*/React.createElement(RefreshControl, {\n refreshing: props.refreshing,\n onRefresh: onRefresh,\n progressViewOffset: props.progressViewOffset\n }) : props.refreshControl\n }))\n );\n } else {\n // $FlowFixMe[prop-missing] Invalid prop usage\n return /*#__PURE__*/React.createElement(ScrollView, props);\n }\n };\n\n this._onCellUnmount = cellKey => {\n var curr = this._frames[cellKey];\n\n if (curr) {\n this._frames[cellKey] = _objectSpread(_objectSpread({}, curr), {}, {\n inLayout: false\n });\n }\n };\n\n this._onLayout = e => {\n if (this._isNestedWithSameOrientation()) {\n // Need to adjust our scroll metrics to be relative to our containing\n // VirtualizedList before we can make claims about list item viewability\n this.measureLayoutRelativeToContainingList();\n } else {\n this._scrollMetrics.visibleLength = this._selectLength(e.nativeEvent.layout);\n }\n\n this.props.onLayout && this.props.onLayout(e);\n\n this._scheduleCellsToRenderUpdate();\n\n this._maybeCallOnEndReached();\n };\n\n this._onLayoutEmpty = e => {\n this.props.onLayout && this.props.onLayout(e);\n };\n\n this._onLayoutFooter = e => {\n this._triggerRemeasureForChildListsInCell(this._getFooterCellKey());\n\n this._footerLength = this._selectLength(e.nativeEvent.layout);\n };\n\n this._onLayoutHeader = e => {\n this._headerLength = this._selectLength(e.nativeEvent.layout);\n };\n\n this._onContentSizeChange = (width, height) => {\n if (width > 0 && height > 0 && this.props.initialScrollIndex != null && this.props.initialScrollIndex > 0 && !this._hasDoneInitialScroll) {\n if (this.props.contentOffset == null) {\n this.scrollToIndex({\n animated: false,\n index: this.props.initialScrollIndex\n });\n }\n\n this._hasDoneInitialScroll = true;\n }\n\n if (this.props.onContentSizeChange) {\n this.props.onContentSizeChange(width, height);\n }\n\n this._scrollMetrics.contentLength = this._selectLength({\n height,\n width\n });\n\n this._scheduleCellsToRenderUpdate();\n\n this._maybeCallOnEndReached();\n };\n\n this._convertParentScrollMetrics = metrics => {\n // Offset of the top of the nested list relative to the top of its parent's viewport\n var offset = metrics.offset - this._offsetFromParentVirtualizedList; // Child's visible length is the same as its parent's\n\n var visibleLength = metrics.visibleLength;\n var dOffset = offset - this._scrollMetrics.offset;\n var contentLength = this._scrollMetrics.contentLength;\n return {\n visibleLength,\n contentLength,\n offset,\n dOffset\n };\n };\n\n this._onScroll = e => {\n this._nestedChildLists.forEach(childList => {\n childList.ref && childList.ref._onScroll(e);\n });\n\n if (this.props.onScroll) {\n this.props.onScroll(e);\n }\n\n var timestamp = e.timeStamp;\n\n var visibleLength = this._selectLength(e.nativeEvent.layoutMeasurement);\n\n var contentLength = this._selectLength(e.nativeEvent.contentSize);\n\n var offset = this._selectOffset(e.nativeEvent.contentOffset);\n\n var dOffset = offset - this._scrollMetrics.offset;\n\n if (this._isNestedWithSameOrientation()) {\n if (this._scrollMetrics.contentLength === 0) {\n // Ignore scroll events until onLayout has been called and we\n // know our offset from our offset from our parent\n return;\n }\n\n var _this$_convertParentS = this._convertParentScrollMetrics({\n visibleLength,\n offset\n });\n\n visibleLength = _this$_convertParentS.visibleLength;\n contentLength = _this$_convertParentS.contentLength;\n offset = _this$_convertParentS.offset;\n dOffset = _this$_convertParentS.dOffset;\n }\n\n var dt = this._scrollMetrics.timestamp ? Math.max(1, timestamp - this._scrollMetrics.timestamp) : 1;\n var velocity = dOffset / dt;\n\n if (dt > 500 && this._scrollMetrics.dt > 500 && contentLength > 5 * visibleLength && !this._hasWarned.perf) {\n infoLog('VirtualizedList: You have a large list that is slow to update - make sure your ' + 'renderItem function renders components that follow React performance best practices ' + 'like PureComponent, shouldComponentUpdate, etc.', {\n dt,\n prevDt: this._scrollMetrics.dt,\n contentLength\n });\n this._hasWarned.perf = true;\n }\n\n this._scrollMetrics = {\n contentLength,\n dt,\n dOffset,\n offset,\n timestamp,\n velocity,\n visibleLength\n };\n\n this._updateViewableItems(this.props.data);\n\n if (!this.props) {\n return;\n }\n\n this._maybeCallOnEndReached();\n\n if (velocity !== 0) {\n this._fillRateHelper.activate();\n }\n\n this._computeBlankness();\n\n this._scheduleCellsToRenderUpdate();\n };\n\n this._onScrollBeginDrag = e => {\n this._nestedChildLists.forEach(childList => {\n childList.ref && childList.ref._onScrollBeginDrag(e);\n });\n\n this._viewabilityTuples.forEach(tuple => {\n tuple.viewabilityHelper.recordInteraction();\n });\n\n this._hasInteracted = true;\n this.props.onScrollBeginDrag && this.props.onScrollBeginDrag(e);\n };\n\n this._onScrollEndDrag = e => {\n this._nestedChildLists.forEach(childList => {\n childList.ref && childList.ref._onScrollEndDrag(e);\n });\n\n var velocity = e.nativeEvent.velocity;\n\n if (velocity) {\n this._scrollMetrics.velocity = this._selectOffset(velocity);\n }\n\n this._computeBlankness();\n\n this.props.onScrollEndDrag && this.props.onScrollEndDrag(e);\n };\n\n this._onMomentumScrollBegin = e => {\n this._nestedChildLists.forEach(childList => {\n childList.ref && childList.ref._onMomentumScrollBegin(e);\n });\n\n this.props.onMomentumScrollBegin && this.props.onMomentumScrollBegin(e);\n };\n\n this._onMomentumScrollEnd = e => {\n this._nestedChildLists.forEach(childList => {\n childList.ref && childList.ref._onMomentumScrollEnd(e);\n });\n\n this._scrollMetrics.velocity = 0;\n\n this._computeBlankness();\n\n this.props.onMomentumScrollEnd && this.props.onMomentumScrollEnd(e);\n };\n\n this._updateCellsToRender = () => {\n var _this$props3 = this.props,\n data = _this$props3.data,\n getItemCount = _this$props3.getItemCount,\n _onEndReachedThreshold = _this$props3.onEndReachedThreshold;\n var onEndReachedThreshold = onEndReachedThresholdOrDefault(_onEndReachedThreshold);\n\n var isVirtualizationDisabled = this._isVirtualizationDisabled();\n\n this._updateViewableItems(data);\n\n if (!data) {\n return;\n }\n\n this.setState(state => {\n var newState;\n var _this$_scrollMetrics = this._scrollMetrics,\n contentLength = _this$_scrollMetrics.contentLength,\n offset = _this$_scrollMetrics.offset,\n visibleLength = _this$_scrollMetrics.visibleLength;\n\n if (!isVirtualizationDisabled) {\n // If we run this with bogus data, we'll force-render window {first: 0, last: 0},\n // and wipe out the initialNumToRender rendered elements.\n // So let's wait until the scroll view metrics have been set up. And until then,\n // we will trust the initialNumToRender suggestion\n if (visibleLength > 0 && contentLength > 0) {\n // If we have a non-zero initialScrollIndex and run this before we've scrolled,\n // we'll wipe out the initialNumToRender rendered elements starting at initialScrollIndex.\n // So let's wait until we've scrolled the view to the right place. And until then,\n // we will trust the initialScrollIndex suggestion.\n if (!this.props.initialScrollIndex || this._scrollMetrics.offset) {\n newState = computeWindowedRenderLimits(this.props.data, this.props.getItemCount, maxToRenderPerBatchOrDefault(this.props.maxToRenderPerBatch), windowSizeOrDefault(this.props.windowSize), state, this._getFrameMetricsApprox, this._scrollMetrics);\n }\n }\n } else {\n var distanceFromEnd = contentLength - visibleLength - offset;\n var renderAhead = distanceFromEnd < onEndReachedThreshold * visibleLength ? maxToRenderPerBatchOrDefault(this.props.maxToRenderPerBatch) : 0;\n newState = {\n first: 0,\n last: Math.min(state.last + renderAhead, getItemCount(data) - 1)\n };\n }\n\n if (newState && this._nestedChildLists.size > 0) {\n var newFirst = newState.first;\n var newLast = newState.last; // If some cell in the new state has a child list in it, we should only render\n // up through that item, so that we give that list a chance to render.\n // Otherwise there's churn from multiple child lists mounting and un-mounting\n // their items.\n\n for (var ii = newFirst; ii <= newLast; ii++) {\n var cellKeyForIndex = this._indicesToKeys.get(ii);\n\n var childListKeys = cellKeyForIndex && this._cellKeysToChildListKeys.get(cellKeyForIndex);\n\n if (!childListKeys) {\n continue;\n }\n\n var someChildHasMore = false; // For each cell, need to check whether any child list in it has more elements to render\n\n for (var _iterator = _createForOfIteratorHelperLoose(childListKeys), _step; !(_step = _iterator()).done;) {\n var childKey = _step.value;\n\n var childList = this._nestedChildLists.get(childKey);\n\n if (childList && childList.ref && childList.ref.hasMore()) {\n someChildHasMore = true;\n break;\n }\n }\n\n if (someChildHasMore) {\n // $FlowFixMe[incompatible-use] The newState definitely exists past \"if (newState &&\"\n newState.last = ii;\n break;\n }\n }\n }\n\n if (newState != null && newState.first === state.first && newState.last === state.last) {\n newState = null;\n }\n\n return newState;\n });\n };\n\n this._createViewToken = (index, isViewable) => {\n var _this$props4 = this.props,\n data = _this$props4.data,\n getItem = _this$props4.getItem;\n var item = getItem(data, index);\n return {\n index,\n item,\n key: this._keyExtractor(item, index),\n isViewable\n };\n };\n\n this._getFrameMetricsApprox = index => {\n var frame = this._getFrameMetrics(index);\n\n if (frame && frame.index === index) {\n // check for invalid frames due to row re-ordering\n return frame;\n } else {\n var getItemLayout = this.props.getItemLayout;\n invariant(!getItemLayout, 'Should not have to estimate frames when a measurement metrics function is provided');\n return {\n length: this._averageCellLength,\n offset: this._averageCellLength * index\n };\n }\n };\n\n this._getFrameMetrics = index => {\n var _this$props5 = this.props,\n data = _this$props5.data,\n getItem = _this$props5.getItem,\n getItemCount = _this$props5.getItemCount,\n getItemLayout = _this$props5.getItemLayout;\n invariant(getItemCount(data) > index, 'Tried to get frame for out of range index ' + index);\n var item = getItem(data, index);\n\n var frame = item && this._frames[this._keyExtractor(item, index)];\n\n if (!frame || frame.index !== index) {\n if (getItemLayout) {\n frame = getItemLayout(data, index);\n }\n }\n /* $FlowFixMe[prop-missing] (>=0.63.0 site=react_native_fb) This comment\n * suppresses an error found when Flow v0.63 was deployed. To see the error\n * delete this comment and run Flow. */\n\n\n return frame;\n };\n\n invariant( // $FlowFixMe[prop-missing]\n !_props.onScroll || !_props.onScroll.__isNative, 'Components based on VirtualizedList must be wrapped with Animated.createAnimatedComponent ' + 'to support native onScroll events with useNativeDriver');\n invariant(windowSizeOrDefault(_props.windowSize) > 0, 'VirtualizedList: The windowSize prop must be present and set to a value greater than 0.');\n this._fillRateHelper = new FillRateHelper(this._getFrameMetrics);\n this._updateCellsToRenderBatcher = new Batchinator(this._updateCellsToRender, (_this$props$updateCel = this.props.updateCellsBatchingPeriod) !== null && _this$props$updateCel !== void 0 ? _this$props$updateCel : 50);\n\n if (this.props.viewabilityConfigCallbackPairs) {\n this._viewabilityTuples = this.props.viewabilityConfigCallbackPairs.map(pair => ({\n viewabilityHelper: new ViewabilityHelper(pair.viewabilityConfig),\n onViewableItemsChanged: pair.onViewableItemsChanged\n }));\n } else if (this.props.onViewableItemsChanged) {\n this._viewabilityTuples.push({\n viewabilityHelper: new ViewabilityHelper(this.props.viewabilityConfig),\n // $FlowFixMe[incompatible-call]\n onViewableItemsChanged: this.props.onViewableItemsChanged\n });\n }\n\n var initialState = {\n first: this.props.initialScrollIndex || 0,\n last: Math.min(this.props.getItemCount(this.props.data), (this.props.initialScrollIndex || 0) + initialNumToRenderOrDefault(this.props.initialNumToRender)) - 1\n };\n\n if (this._isNestedWithSameOrientation()) {\n var storedState = this.context.getNestedChildState(this._getListKey());\n\n if (storedState) {\n initialState = storedState;\n this.state = storedState;\n this._frames = storedState.frames;\n }\n } // REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.\n // For issue https://github.com/necolas/react-native-web/issues/995\n\n\n this.invertedWheelEventHandler = ev => {\n if (this.props.inverted && this._scrollRef && this._scrollRef.getScrollableNode) {\n var node = this._scrollRef.getScrollableNode();\n\n if (this.props.horizontal) {\n node.scrollLeft -= ev.deltaX || ev.wheelDeltaX;\n } else {\n node.scrollTop -= ev.deltaY || ev.wheelDeltaY;\n }\n\n ev.preventDefault();\n }\n };\n\n this.state = initialState;\n }\n\n componentDidMount() {\n if (this._isNestedWithSameOrientation()) {\n this.context.registerAsNestedChild({\n cellKey: this._getCellKey(),\n key: this._getListKey(),\n ref: this,\n // NOTE: When the child mounts (here) it's not necessarily safe to read\n // the parent's props. This is why we explicitly propagate debugInfo\n // \"down\" via context and \"up\" again via this method call on the\n // parent.\n parentDebugInfo: this.context.debugInfo\n });\n } // REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.\n\n\n this.setupWebWheelHandler();\n }\n\n componentWillUnmount() {\n if (this._isNestedWithSameOrientation()) {\n this.context.unregisterAsNestedChild({\n key: this._getListKey(),\n state: {\n first: this.state.first,\n last: this.state.last,\n frames: this._frames\n }\n });\n }\n\n this._updateViewableItems(null);\n\n this._updateCellsToRenderBatcher.dispose({\n abort: true\n });\n\n this._viewabilityTuples.forEach(tuple => {\n tuple.viewabilityHelper.dispose();\n });\n\n this._fillRateHelper.deactivateAndFlush(); // REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.\n\n\n this.teardownWebWheelHandler();\n } // REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.\n\n\n setupWebWheelHandler() {\n if (this._scrollRef && this._scrollRef.getScrollableNode) {\n this._scrollRef.getScrollableNode().addEventListener('wheel', this.invertedWheelEventHandler);\n } else {\n setTimeout(() => this.setupWebWheelHandler(), 50);\n return;\n }\n } // REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.\n\n\n teardownWebWheelHandler() {\n if (this._scrollRef && this._scrollRef.getScrollableNode) {\n this._scrollRef.getScrollableNode().removeEventListener('wheel', this.invertedWheelEventHandler);\n }\n }\n\n static getDerivedStateFromProps(newProps, prevState) {\n var data = newProps.data,\n getItemCount = newProps.getItemCount;\n var maxToRenderPerBatch = maxToRenderPerBatchOrDefault(newProps.maxToRenderPerBatch); // first and last could be stale (e.g. if a new, shorter items props is passed in), so we make\n // sure we're rendering a reasonable range here.\n\n return {\n first: Math.max(0, Math.min(prevState.first, getItemCount(data) - 1 - maxToRenderPerBatch)),\n last: Math.max(0, Math.min(prevState.last, getItemCount(data) - 1))\n };\n }\n\n _pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, first, last, inversionStyle) {\n var _this = this;\n\n var _this$props6 = this.props,\n CellRendererComponent = _this$props6.CellRendererComponent,\n ItemSeparatorComponent = _this$props6.ItemSeparatorComponent,\n data = _this$props6.data,\n getItem = _this$props6.getItem,\n getItemCount = _this$props6.getItemCount,\n horizontal = _this$props6.horizontal;\n var stickyOffset = this.props.ListHeaderComponent ? 1 : 0;\n var end = getItemCount(data) - 1;\n var prevCellKey;\n last = Math.min(end, last);\n\n var _loop = function _loop(ii) {\n var item = getItem(data, ii);\n\n var key = _this._keyExtractor(item, ii);\n\n _this._indicesToKeys.set(ii, key);\n\n if (stickyIndicesFromProps.has(ii + stickyOffset)) {\n stickyHeaderIndices.push(cells.length);\n }\n\n cells.push( /*#__PURE__*/React.createElement(CellRenderer, {\n CellRendererComponent: CellRendererComponent,\n ItemSeparatorComponent: ii < end ? ItemSeparatorComponent : undefined,\n cellKey: key,\n fillRateHelper: _this._fillRateHelper,\n horizontal: horizontal,\n index: ii,\n inversionStyle: inversionStyle,\n item: item,\n key: key,\n prevCellKey: prevCellKey,\n onUpdateSeparators: _this._onUpdateSeparators,\n onLayout: e => _this._onCellLayout(e, key, ii),\n onUnmount: _this._onCellUnmount,\n parentProps: _this.props,\n ref: _ref => {\n _this._cellRefs[key] = _ref;\n }\n }));\n prevCellKey = key;\n };\n\n for (var ii = first; ii <= last; ii++) {\n _loop(ii);\n }\n }\n\n _isVirtualizationDisabled() {\n return this.props.disableVirtualization || false;\n }\n\n _isNestedWithSameOrientation() {\n var nestedContext = this.context;\n return !!(nestedContext && !!nestedContext.horizontal === horizontalOrDefault(this.props.horizontal));\n }\n\n _keyExtractor(item, index) {\n if (this.props.keyExtractor != null) {\n return this.props.keyExtractor(item, index);\n }\n\n var key = defaultKeyExtractor(item, index);\n\n if (key === String(index)) {\n _usedIndexForKey = true;\n\n if (item.type && item.type.displayName) {\n _keylessItemComponentName = item.type.displayName;\n }\n }\n\n return key;\n }\n\n render() {\n if (__DEV__) {\n var flatStyles = flattenStyle(this.props.contentContainerStyle);\n\n if (flatStyles != null && flatStyles.flexWrap === 'wrap') {\n console.warn('`flexWrap: `wrap`` is not supported with the `VirtualizedList` components.' + 'Consider using `numColumns` with `FlatList` instead.');\n }\n }\n\n var _this$props7 = this.props,\n ListEmptyComponent = _this$props7.ListEmptyComponent,\n ListFooterComponent = _this$props7.ListFooterComponent,\n ListHeaderComponent = _this$props7.ListHeaderComponent;\n var _this$props8 = this.props,\n data = _this$props8.data,\n horizontal = _this$props8.horizontal;\n\n var isVirtualizationDisabled = this._isVirtualizationDisabled();\n\n var inversionStyle = this.props.inverted ? horizontalOrDefault(this.props.horizontal) ? styles.horizontallyInverted : styles.verticallyInverted : null;\n var cells = [];\n var stickyIndicesFromProps = new Set(this.props.stickyHeaderIndices);\n var stickyHeaderIndices = [];\n\n if (ListHeaderComponent) {\n if (stickyIndicesFromProps.has(0)) {\n stickyHeaderIndices.push(0);\n }\n\n var element = /*#__PURE__*/React.isValidElement(ListHeaderComponent) ? ListHeaderComponent :\n /*#__PURE__*/\n // $FlowFixMe[not-a-component]\n // $FlowFixMe[incompatible-type-arg]\n React.createElement(ListHeaderComponent, null);\n cells.push( /*#__PURE__*/React.createElement(VirtualizedListCellContextProvider, {\n cellKey: this._getCellKey() + '-header',\n key: \"$header\"\n }, /*#__PURE__*/React.createElement(View, {\n onLayout: this._onLayoutHeader,\n style: StyleSheet.compose(inversionStyle, this.props.ListHeaderComponentStyle)\n }, // $FlowFixMe[incompatible-type] - Typing ReactNativeComponent revealed errors\n element)));\n }\n\n var itemCount = this.props.getItemCount(data);\n\n if (itemCount > 0) {\n _usedIndexForKey = false;\n _keylessItemComponentName = '';\n\n var spacerKey = this._getSpacerKey(!horizontal);\n\n var lastInitialIndex = this.props.initialScrollIndex ? -1 : initialNumToRenderOrDefault(this.props.initialNumToRender) - 1;\n var _this$state = this.state,\n first = _this$state.first,\n last = _this$state.last;\n\n this._pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, 0, lastInitialIndex, inversionStyle);\n\n var firstAfterInitial = Math.max(lastInitialIndex + 1, first);\n\n if (!isVirtualizationDisabled && first > lastInitialIndex + 1) {\n var insertedStickySpacer = false;\n\n if (stickyIndicesFromProps.size > 0) {\n var stickyOffset = ListHeaderComponent ? 1 : 0; // See if there are any sticky headers in the virtualized space that we need to render.\n\n for (var ii = firstAfterInitial - 1; ii > lastInitialIndex; ii--) {\n if (stickyIndicesFromProps.has(ii + stickyOffset)) {\n var initBlock = this._getFrameMetricsApprox(lastInitialIndex);\n\n var stickyBlock = this._getFrameMetricsApprox(ii);\n\n var leadSpace = stickyBlock.offset - initBlock.offset - (this.props.initialScrollIndex ? 0 : initBlock.length);\n cells.push( /*#__PURE__*/React.createElement(View, {\n key: \"$sticky_lead\",\n style: {\n [spacerKey]: leadSpace\n }\n }));\n\n this._pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, ii, ii, inversionStyle);\n\n var trailSpace = this._getFrameMetricsApprox(first).offset - (stickyBlock.offset + stickyBlock.length);\n cells.push( /*#__PURE__*/React.createElement(View, {\n key: \"$sticky_trail\",\n style: {\n [spacerKey]: trailSpace\n }\n }));\n insertedStickySpacer = true;\n break;\n }\n }\n }\n\n if (!insertedStickySpacer) {\n var _initBlock = this._getFrameMetricsApprox(lastInitialIndex);\n\n var firstSpace = this._getFrameMetricsApprox(first).offset - (_initBlock.offset + _initBlock.length);\n\n cells.push( /*#__PURE__*/React.createElement(View, {\n key: \"$lead_spacer\",\n style: {\n [spacerKey]: firstSpace\n }\n }));\n }\n }\n\n this._pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, firstAfterInitial, last, inversionStyle);\n\n if (!this._hasWarned.keys && _usedIndexForKey) {\n console.warn('VirtualizedList: missing keys for items, make sure to specify a key or id property on each ' + 'item or provide a custom keyExtractor.', _keylessItemComponentName);\n this._hasWarned.keys = true;\n }\n\n if (!isVirtualizationDisabled && last < itemCount - 1) {\n var lastFrame = this._getFrameMetricsApprox(last); // Without getItemLayout, we limit our tail spacer to the _highestMeasuredFrameIndex to\n // prevent the user for hyperscrolling into un-measured area because otherwise content will\n // likely jump around as it renders in above the viewport.\n\n\n var end = this.props.getItemLayout ? itemCount - 1 : Math.min(itemCount - 1, this._highestMeasuredFrameIndex);\n\n var endFrame = this._getFrameMetricsApprox(end);\n\n var tailSpacerLength = endFrame.offset + endFrame.length - (lastFrame.offset + lastFrame.length);\n cells.push( /*#__PURE__*/React.createElement(View, {\n key: \"$tail_spacer\",\n style: {\n [spacerKey]: tailSpacerLength\n }\n }));\n }\n } else if (ListEmptyComponent) {\n var _element = /*#__PURE__*/React.isValidElement(ListEmptyComponent) ? ListEmptyComponent :\n /*#__PURE__*/\n // $FlowFixMe[not-a-component]\n // $FlowFixMe[incompatible-type-arg]\n React.createElement(ListEmptyComponent, null);\n\n cells.push( /*#__PURE__*/React.cloneElement(_element, {\n key: '$empty',\n onLayout: event => {\n this._onLayoutEmpty(event);\n\n if (_element.props.onLayout) {\n _element.props.onLayout(event);\n }\n },\n style: StyleSheet.compose(inversionStyle, _element.props.style)\n }));\n }\n\n if (ListFooterComponent) {\n var _element2 = /*#__PURE__*/React.isValidElement(ListFooterComponent) ? ListFooterComponent :\n /*#__PURE__*/\n // $FlowFixMe[not-a-component]\n // $FlowFixMe[incompatible-type-arg]\n React.createElement(ListFooterComponent, null);\n\n cells.push( /*#__PURE__*/React.createElement(VirtualizedListCellContextProvider, {\n cellKey: this._getFooterCellKey(),\n key: \"$footer\"\n }, /*#__PURE__*/React.createElement(View, {\n onLayout: this._onLayoutFooter,\n style: StyleSheet.compose(inversionStyle, this.props.ListFooterComponentStyle)\n }, // $FlowFixMe[incompatible-type] - Typing ReactNativeComponent revealed errors\n _element2)));\n }\n\n var scrollProps = _objectSpread(_objectSpread({}, this.props), {}, {\n onContentSizeChange: this._onContentSizeChange,\n onLayout: this._onLayout,\n onScroll: this._onScroll,\n onScrollBeginDrag: this._onScrollBeginDrag,\n onScrollEndDrag: this._onScrollEndDrag,\n onMomentumScrollBegin: this._onMomentumScrollBegin,\n onMomentumScrollEnd: this._onMomentumScrollEnd,\n scrollEventThrottle: scrollEventThrottleOrDefault(this.props.scrollEventThrottle),\n // TODO: Android support\n invertStickyHeaders: this.props.invertStickyHeaders !== undefined ? this.props.invertStickyHeaders : this.props.inverted,\n stickyHeaderIndices,\n style: inversionStyle ? [inversionStyle, this.props.style] : this.props.style\n });\n\n this._hasMore = this.state.last < this.props.getItemCount(this.props.data) - 1;\n var innerRet = /*#__PURE__*/React.createElement(VirtualizedListContextProvider, {\n value: {\n cellKey: null,\n getScrollMetrics: this._getScrollMetrics,\n horizontal: horizontalOrDefault(this.props.horizontal),\n getOutermostParentListRef: this._getOutermostParentListRef,\n getNestedChildState: this._getNestedChildState,\n registerAsNestedChild: this._registerAsNestedChild,\n unregisterAsNestedChild: this._unregisterAsNestedChild,\n debugInfo: this._getDebugInfo()\n }\n }, /*#__PURE__*/React.cloneElement((this.props.renderScrollComponent || this._defaultRenderScrollComponent)(scrollProps), {\n ref: this._captureScrollRef\n }, cells));\n var ret = innerRet;\n /* https://github.com/necolas/react-native-web/issues/2239: Re-enable when ScrollView.Context.Consumer is available.\n if (__DEV__) {\n ret = (\n \n {scrollContext => {\n if (\n scrollContext != null &&\n !scrollContext.horizontal ===\n !horizontalOrDefault(this.props.horizontal) &&\n !this._hasWarned.nesting &&\n this.context == null\n ) {\n // TODO (T46547044): use React.warn once 16.9 is sync'd: https://github.com/facebook/react/pull/15170\n console.error(\n 'VirtualizedLists should never be nested inside plain ScrollViews with the same ' +\n 'orientation because it can break windowing and other functionality - use another ' +\n 'VirtualizedList-backed container instead.',\n );\n this._hasWarned.nesting = true;\n }\n return innerRet;\n }}\n \n );\n }*/\n\n if (this.props.debug) {\n return /*#__PURE__*/React.createElement(View, {\n style: styles.debug\n }, ret, this._renderDebugOverlay());\n } else {\n return ret;\n }\n }\n\n componentDidUpdate(prevProps) {\n var _this$props9 = this.props,\n data = _this$props9.data,\n extraData = _this$props9.extraData;\n\n if (data !== prevProps.data || extraData !== prevProps.extraData) {\n // clear the viewableIndices cache to also trigger\n // the onViewableItemsChanged callback with the new data\n this._viewabilityTuples.forEach(tuple => {\n tuple.viewabilityHelper.resetViewableIndices();\n });\n } // The `this._hiPriInProgress` is guaranteeing a hiPri cell update will only happen\n // once per fiber update. The `_scheduleCellsToRenderUpdate` will set it to true\n // if a hiPri update needs to perform. If `componentDidUpdate` is triggered with\n // `this._hiPriInProgress=true`, means it's triggered by the hiPri update. The\n // `_scheduleCellsToRenderUpdate` will check this condition and not perform\n // another hiPri update.\n\n\n var hiPriInProgress = this._hiPriInProgress;\n\n this._scheduleCellsToRenderUpdate(); // Make sure setting `this._hiPriInProgress` back to false after `componentDidUpdate`\n // is triggered with `this._hiPriInProgress = true`\n\n\n if (hiPriInProgress) {\n this._hiPriInProgress = false;\n }\n }\n\n _computeBlankness() {\n this._fillRateHelper.computeBlankness(this.props, this.state, this._scrollMetrics);\n }\n\n _onCellLayout(e, cellKey, index) {\n var layout = e.nativeEvent.layout;\n var next = {\n offset: this._selectOffset(layout),\n length: this._selectLength(layout),\n index,\n inLayout: true\n };\n var curr = this._frames[cellKey];\n\n if (!curr || next.offset !== curr.offset || next.length !== curr.length || index !== curr.index) {\n this._totalCellLength += next.length - (curr ? curr.length : 0);\n this._totalCellsMeasured += curr ? 0 : 1;\n this._averageCellLength = this._totalCellLength / this._totalCellsMeasured;\n this._frames[cellKey] = next;\n this._highestMeasuredFrameIndex = Math.max(this._highestMeasuredFrameIndex, index);\n\n this._scheduleCellsToRenderUpdate();\n } else {\n this._frames[cellKey].inLayout = true;\n }\n\n this._triggerRemeasureForChildListsInCell(cellKey);\n\n this._computeBlankness();\n\n this._updateViewableItems(this.props.data);\n }\n\n _triggerRemeasureForChildListsInCell(cellKey) {\n var childListKeys = this._cellKeysToChildListKeys.get(cellKey);\n\n if (childListKeys) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(childListKeys), _step2; !(_step2 = _iterator2()).done;) {\n var childKey = _step2.value;\n\n var childList = this._nestedChildLists.get(childKey);\n\n childList && childList.ref && childList.ref.measureLayoutRelativeToContainingList();\n }\n }\n }\n\n measureLayoutRelativeToContainingList() {\n // TODO (T35574538): findNodeHandle sometimes crashes with \"Unable to find\n // node on an unmounted component\" during scrolling\n try {\n if (!this._scrollRef) {\n return;\n } // We are assuming that getOutermostParentListRef().getScrollRef()\n // is a non-null reference to a ScrollView\n\n\n this._scrollRef.measureLayout(this.context.getOutermostParentListRef().getScrollRef(), (x, y, width, height) => {\n this._offsetFromParentVirtualizedList = this._selectOffset({\n x,\n y\n });\n this._scrollMetrics.contentLength = this._selectLength({\n width,\n height\n });\n\n var scrollMetrics = this._convertParentScrollMetrics(this.context.getScrollMetrics());\n\n var metricsChanged = this._scrollMetrics.visibleLength !== scrollMetrics.visibleLength || this._scrollMetrics.offset !== scrollMetrics.offset;\n\n if (metricsChanged) {\n this._scrollMetrics.visibleLength = scrollMetrics.visibleLength;\n this._scrollMetrics.offset = scrollMetrics.offset; // If metrics of the scrollView changed, then we triggered remeasure for child list\n // to ensure VirtualizedList has the right information.\n\n this._cellKeysToChildListKeys.forEach(childListKeys => {\n if (childListKeys) {\n for (var _iterator3 = _createForOfIteratorHelperLoose(childListKeys), _step3; !(_step3 = _iterator3()).done;) {\n var childKey = _step3.value;\n\n var childList = this._nestedChildLists.get(childKey);\n\n childList && childList.ref && childList.ref.measureLayoutRelativeToContainingList();\n }\n }\n });\n }\n }, error => {\n console.warn(\"VirtualizedList: Encountered an error while measuring a list's\" + ' offset from its containing VirtualizedList.');\n });\n } catch (error) {\n console.warn('measureLayoutRelativeToContainingList threw an error', error.stack);\n }\n }\n\n _getFooterCellKey() {\n return this._getCellKey() + '-footer';\n }\n\n _renderDebugOverlay() {\n var normalize = this._scrollMetrics.visibleLength / (this._scrollMetrics.contentLength || 1);\n var framesInLayout = [];\n var itemCount = this.props.getItemCount(this.props.data);\n\n for (var ii = 0; ii < itemCount; ii++) {\n var frame = this._getFrameMetricsApprox(ii);\n /* $FlowFixMe[prop-missing] (>=0.68.0 site=react_native_fb) This comment\n * suppresses an error found when Flow v0.68 was deployed. To see the\n * error delete this comment and run Flow. */\n\n\n if (frame.inLayout) {\n framesInLayout.push(frame);\n }\n }\n\n var windowTop = this._getFrameMetricsApprox(this.state.first).offset;\n\n var frameLast = this._getFrameMetricsApprox(this.state.last);\n\n var windowLen = frameLast.offset + frameLast.length - windowTop;\n var visTop = this._scrollMetrics.offset;\n var visLen = this._scrollMetrics.visibleLength;\n return /*#__PURE__*/React.createElement(View, {\n style: [styles.debugOverlayBase, styles.debugOverlay]\n }, framesInLayout.map((f, ii) => /*#__PURE__*/React.createElement(View, {\n key: 'f' + ii,\n style: [styles.debugOverlayBase, styles.debugOverlayFrame, {\n top: f.offset * normalize,\n height: f.length * normalize\n }]\n })), /*#__PURE__*/React.createElement(View, {\n style: [styles.debugOverlayBase, styles.debugOverlayFrameLast, {\n top: windowTop * normalize,\n height: windowLen * normalize\n }]\n }), /*#__PURE__*/React.createElement(View, {\n style: [styles.debugOverlayBase, styles.debugOverlayFrameVis, {\n top: visTop * normalize,\n height: visLen * normalize\n }]\n }));\n }\n\n _selectLength(metrics) {\n return !horizontalOrDefault(this.props.horizontal) ? metrics.height : metrics.width;\n }\n\n _selectOffset(metrics) {\n return !horizontalOrDefault(this.props.horizontal) ? metrics.y : metrics.x;\n }\n\n _maybeCallOnEndReached() {\n var _this$props10 = this.props,\n data = _this$props10.data,\n getItemCount = _this$props10.getItemCount,\n onEndReached = _this$props10.onEndReached,\n onEndReachedThreshold = _this$props10.onEndReachedThreshold;\n var _this$_scrollMetrics2 = this._scrollMetrics,\n contentLength = _this$_scrollMetrics2.contentLength,\n visibleLength = _this$_scrollMetrics2.visibleLength,\n offset = _this$_scrollMetrics2.offset;\n var distanceFromEnd = contentLength - visibleLength - offset;\n var threshold = onEndReachedThreshold != null ? onEndReachedThreshold * visibleLength : 2;\n\n if (onEndReached && this.state.last === getItemCount(data) - 1 && distanceFromEnd < threshold && this._scrollMetrics.contentLength !== this._sentEndForContentLength) {\n // Only call onEndReached once for a given content length\n this._sentEndForContentLength = this._scrollMetrics.contentLength;\n onEndReached({\n distanceFromEnd\n });\n } else if (distanceFromEnd > threshold) {\n // If the user scrolls away from the end and back again cause\n // an onEndReached to be triggered again\n this._sentEndForContentLength = 0;\n }\n }\n\n _scheduleCellsToRenderUpdate() {\n var _this$state2 = this.state,\n first = _this$state2.first,\n last = _this$state2.last;\n var _this$_scrollMetrics3 = this._scrollMetrics,\n offset = _this$_scrollMetrics3.offset,\n visibleLength = _this$_scrollMetrics3.visibleLength,\n velocity = _this$_scrollMetrics3.velocity;\n var itemCount = this.props.getItemCount(this.props.data);\n var hiPri = false;\n var onEndReachedThreshold = onEndReachedThresholdOrDefault(this.props.onEndReachedThreshold);\n var scrollingThreshold = onEndReachedThreshold * visibleLength / 2; // Mark as high priority if we're close to the start of the first item\n // But only if there are items before the first rendered item\n\n if (first > 0) {\n var distTop = offset - this._getFrameMetricsApprox(first).offset;\n\n hiPri = hiPri || distTop < 0 || velocity < -2 && distTop < scrollingThreshold;\n } // Mark as high priority if we're close to the end of the last item\n // But only if there are items after the last rendered item\n\n\n if (last < itemCount - 1) {\n var distBottom = this._getFrameMetricsApprox(last).offset - (offset + visibleLength);\n hiPri = hiPri || distBottom < 0 || velocity > 2 && distBottom < scrollingThreshold;\n } // Only trigger high-priority updates if we've actually rendered cells,\n // and with that size estimate, accurately compute how many cells we should render.\n // Otherwise, it would just render as many cells as it can (of zero dimension),\n // each time through attempting to render more (limited by maxToRenderPerBatch),\n // starving the renderer from actually laying out the objects and computing _averageCellLength.\n // If this is triggered in an `componentDidUpdate` followed by a hiPri cellToRenderUpdate\n // We shouldn't do another hipri cellToRenderUpdate\n\n\n if (hiPri && (this._averageCellLength || this.props.getItemLayout) && !this._hiPriInProgress) {\n this._hiPriInProgress = true; // Don't worry about interactions when scrolling quickly; focus on filling content as fast\n // as possible.\n\n this._updateCellsToRenderBatcher.dispose({\n abort: true\n });\n\n this._updateCellsToRender();\n\n return;\n } else {\n this._updateCellsToRenderBatcher.schedule();\n }\n }\n\n _updateViewableItems(data) {\n var getItemCount = this.props.getItemCount;\n\n this._viewabilityTuples.forEach(tuple => {\n tuple.viewabilityHelper.onUpdate(getItemCount(data), this._scrollMetrics.offset, this._scrollMetrics.visibleLength, this._getFrameMetrics, this._createViewToken, tuple.onViewableItemsChanged, this.state);\n });\n }\n\n}\n\nVirtualizedList.contextType = VirtualizedListContext;\n\nclass CellRenderer extends React.Component {\n constructor() {\n super(...arguments);\n this.state = {\n separatorProps: {\n highlighted: false,\n leadingItem: this.props.item\n }\n };\n this._separators = {\n highlight: () => {\n var _this$props11 = this.props,\n cellKey = _this$props11.cellKey,\n prevCellKey = _this$props11.prevCellKey;\n this.props.onUpdateSeparators([cellKey, prevCellKey], {\n highlighted: true\n });\n },\n unhighlight: () => {\n var _this$props12 = this.props,\n cellKey = _this$props12.cellKey,\n prevCellKey = _this$props12.prevCellKey;\n this.props.onUpdateSeparators([cellKey, prevCellKey], {\n highlighted: false\n });\n },\n updateProps: (select, newProps) => {\n var _this$props13 = this.props,\n cellKey = _this$props13.cellKey,\n prevCellKey = _this$props13.prevCellKey;\n this.props.onUpdateSeparators([select === 'leading' ? prevCellKey : cellKey], newProps);\n }\n };\n }\n\n static getDerivedStateFromProps(props, prevState) {\n return {\n separatorProps: _objectSpread(_objectSpread({}, prevState.separatorProps), {}, {\n leadingItem: props.item\n })\n };\n } // TODO: consider factoring separator stuff out of VirtualizedList into FlatList since it's not\n // reused by SectionList and we can keep VirtualizedList simpler.\n\n\n updateSeparatorProps(newProps) {\n this.setState(state => ({\n separatorProps: _objectSpread(_objectSpread({}, state.separatorProps), newProps)\n }));\n }\n\n componentWillUnmount() {\n this.props.onUnmount(this.props.cellKey);\n }\n\n _renderElement(renderItem, ListItemComponent, item, index) {\n if (renderItem && ListItemComponent) {\n console.warn('VirtualizedList: Both ListItemComponent and renderItem props are present. ListItemComponent will take' + ' precedence over renderItem.');\n }\n\n if (ListItemComponent) {\n /* $FlowFixMe[not-a-component] (>=0.108.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.108 was deployed. To\n * see the error, delete this comment and run Flow. */\n\n /* $FlowFixMe[incompatible-type-arg] (>=0.108.0 site=react_native_fb)\n * This comment suppresses an error found when Flow v0.108 was deployed.\n * To see the error, delete this comment and run Flow. */\n return /*#__PURE__*/React.createElement(ListItemComponent, {\n item,\n index,\n separators: this._separators\n });\n }\n\n if (renderItem) {\n return renderItem({\n item,\n index,\n separators: this._separators\n });\n }\n\n invariant(false, 'VirtualizedList: Either ListItemComponent or renderItem props are required but none were found.');\n }\n\n render() {\n var _this$props14 = this.props,\n CellRendererComponent = _this$props14.CellRendererComponent,\n ItemSeparatorComponent = _this$props14.ItemSeparatorComponent,\n fillRateHelper = _this$props14.fillRateHelper,\n horizontal = _this$props14.horizontal,\n item = _this$props14.item,\n index = _this$props14.index,\n inversionStyle = _this$props14.inversionStyle,\n parentProps = _this$props14.parentProps;\n var renderItem = parentProps.renderItem,\n getItemLayout = parentProps.getItemLayout,\n ListItemComponent = parentProps.ListItemComponent;\n\n var element = this._renderElement(renderItem, ListItemComponent, item, index);\n\n var onLayout =\n /* $FlowFixMe[prop-missing] (>=0.68.0 site=react_native_fb) This comment\n * suppresses an error found when Flow v0.68 was deployed. To see the\n * error delete this comment and run Flow. */\n getItemLayout && !parentProps.debug && !fillRateHelper.enabled() ? undefined : this.props.onLayout; // NOTE: that when this is a sticky header, `onLayout` will get automatically extracted and\n // called explicitly by `ScrollViewStickyHeader`.\n\n var itemSeparator = ItemSeparatorComponent && /*#__PURE__*/React.createElement(ItemSeparatorComponent, this.state.separatorProps);\n var cellStyle = inversionStyle ? horizontal ? [styles.rowReverse, inversionStyle] : [styles.columnReverse, inversionStyle] : horizontal ? [styles.row, inversionStyle] : inversionStyle;\n var result = !CellRendererComponent ?\n /*#__PURE__*/\n\n /* $FlowFixMe[incompatible-type-arg] (>=0.89.0 site=react_native_fb) *\n This comment suppresses an error found when Flow v0.89 was deployed. *\n To see the error, delete this comment and run Flow. */\n React.createElement(View, {\n style: cellStyle,\n onLayout: onLayout\n }, element, itemSeparator) : /*#__PURE__*/React.createElement(CellRendererComponent, _extends({}, this.props, {\n style: cellStyle,\n onLayout: onLayout\n }), element, itemSeparator);\n return /*#__PURE__*/React.createElement(VirtualizedListCellContextProvider, {\n cellKey: this.props.cellKey\n }, result);\n }\n\n}\n\nfunction describeNestedLists(childList) {\n var trace = 'VirtualizedList trace:\\n' + (\" Child (\" + (childList.horizontal ? 'horizontal' : 'vertical') + \"):\\n\") + (\" listKey: \" + childList.key + \"\\n\") + (\" cellKey: \" + childList.cellKey);\n var debugInfo = childList.parentDebugInfo;\n\n while (debugInfo) {\n trace += \"\\n Parent (\" + (debugInfo.horizontal ? 'horizontal' : 'vertical') + \"):\\n\" + (\" listKey: \" + debugInfo.listKey + \"\\n\") + (\" cellKey: \" + debugInfo.cellKey);\n debugInfo = debugInfo.parent;\n }\n\n return trace;\n}\n\nvar styles = StyleSheet.create({\n verticallyInverted: {\n transform: [{\n scaleY: -1\n }]\n },\n horizontallyInverted: {\n transform: [{\n scaleX: -1\n }]\n },\n row: {\n flexDirection: 'row'\n },\n rowReverse: {\n flexDirection: 'row-reverse'\n },\n columnReverse: {\n flexDirection: 'column-reverse'\n },\n debug: {\n flex: 1\n },\n debugOverlayBase: {\n position: 'absolute',\n top: 0,\n right: 0\n },\n debugOverlay: {\n bottom: 0,\n width: 20,\n borderColor: 'blue',\n borderWidth: 1\n },\n debugOverlayFrame: {\n left: 0,\n backgroundColor: 'orange'\n },\n debugOverlayFrameLast: {\n left: 0,\n borderColor: 'green',\n borderWidth: 2\n },\n debugOverlayFrameVis: {\n left: 0,\n borderColor: 'red',\n borderWidth: 2\n }\n});\nexport default VirtualizedList;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n'use strict';\n\n/**\n * EventSubscription represents a subscription to a particular event. It can\n * remove its own subscription.\n */\nclass _EventSubscription {\n /**\n * @param {EventSubscriptionVendor} subscriber the subscriber that controls\n * this subscription.\n */\n constructor(subscriber) {\n this.subscriber = subscriber;\n }\n /**\n * Removes this subscription from the subscriber that controls it.\n */\n\n\n remove() {\n this.subscriber.removeSubscription(this);\n }\n\n}\n\nexport default _EventSubscription;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n'use strict';\n\nimport _EventSubscription from './_EventSubscription';\n\n/**\n * EmitterSubscription represents a subscription with listener and context data.\n */\nclass EmitterSubscription extends _EventSubscription {\n /**\n * @param {EventEmitter} emitter - The event emitter that registered this\n * subscription\n * @param {EventSubscriptionVendor} subscriber - The subscriber that controls\n * this subscription\n * @param {function} listener - Function to invoke when the specified event is\n * emitted\n * @param {*} context - Optional context object to use when invoking the\n * listener\n */\n constructor(emitter, subscriber, listener, context) {\n super(subscriber);\n this.emitter = emitter;\n this.listener = listener;\n this.context = context;\n }\n /**\n * Removes this subscription from the emitter that registered it.\n * Note: we're overriding the `remove()` method of _EventSubscription here\n * but deliberately not calling `super.remove()` as the responsibility\n * for removing the subscription lies with the EventEmitter.\n */\n\n\n remove() {\n this.emitter.removeSubscription(this);\n }\n\n}\n\nexport default EmitterSubscription;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n'use strict';\n\nimport invariant from 'fbjs/lib/invariant';\n\n/**\n * EventSubscriptionVendor stores a set of EventSubscriptions that are\n * subscribed to a particular event type.\n */\nclass EventSubscriptionVendor {\n constructor() {\n this._subscriptionsForType = {};\n }\n /**\n * Adds a subscription keyed by an event type.\n *\n * @param {string} eventType\n * @param {EventSubscription} subscription\n */\n\n\n addSubscription(eventType, subscription) {\n invariant(subscription.subscriber === this, 'The subscriber of the subscription is incorrectly set.');\n\n if (!this._subscriptionsForType[eventType]) {\n this._subscriptionsForType[eventType] = [];\n }\n\n var key = this._subscriptionsForType[eventType].length;\n\n this._subscriptionsForType[eventType].push(subscription);\n\n subscription.eventType = eventType;\n subscription.key = key;\n return subscription;\n }\n /**\n * Removes a bulk set of the subscriptions.\n *\n * @param {?string} eventType - Optional name of the event type whose\n * registered supscriptions to remove, if null remove all subscriptions.\n */\n\n\n removeAllSubscriptions(eventType) {\n if (eventType == null) {\n this._subscriptionsForType = {};\n } else {\n delete this._subscriptionsForType[eventType];\n }\n }\n /**\n * Removes a specific subscription. Instead of calling this function, call\n * `subscription.remove()` directly.\n *\n * @param {object} subscription\n */\n\n\n removeSubscription(subscription) {\n var eventType = subscription.eventType;\n var key = subscription.key;\n var subscriptionsForType = this._subscriptionsForType[eventType];\n\n if (subscriptionsForType) {\n delete subscriptionsForType[key];\n }\n }\n /**\n * Returns the array of subscriptions that are currently registered for the\n * given event type.\n *\n * Note: This array can be potentially sparse as subscriptions are deleted\n * from it when they are removed.\n *\n * TODO: This returns a nullable array. wat?\n *\n * @param {string} eventType\n * @returns {?array}\n */\n\n\n getSubscriptionsForType(eventType) {\n return this._subscriptionsForType[eventType];\n }\n\n}\n\nexport default EventSubscriptionVendor;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @typecheck\n */\nimport invariant from 'fbjs/lib/invariant';\nimport EmitterSubscription from './_EmitterSubscription';\nimport EventSubscriptionVendor from './_EventSubscriptionVendor';\n\nvar sparseFilterPredicate = () => true;\n\n/**\n * @class EventEmitter\n * @description\n * An EventEmitter is responsible for managing a set of listeners and publishing\n * events to them when it is told that such events happened. In addition to the\n * data for the given event it also sends a event control object which allows\n * the listeners/handlers to prevent the default behavior of the given event.\n *\n * The emitter is designed to be generic enough to support all the different\n * contexts in which one might want to emit events. It is a simple multicast\n * mechanism on top of which extra functionality can be composed. For example, a\n * more advanced emitter may use an EventHolder and EventFactory.\n */\nclass EventEmitter {\n /**\n * @constructor\n *\n * @param {EventSubscriptionVendor} subscriber - Optional subscriber instance\n * to use. If omitted, a new subscriber will be created for the emitter.\n */\n constructor(subscriber) {\n this._subscriber = subscriber || new EventSubscriptionVendor();\n }\n /**\n * Adds a listener to be invoked when events of the specified type are\n * emitted. An optional calling context may be provided. The data arguments\n * emitted will be passed to the listener function.\n *\n * TODO: Annotate the listener arg's type. This is tricky because listeners\n * can be invoked with varargs.\n *\n * @param {string} eventType - Name of the event to listen to\n * @param {function} listener - Function to invoke when the specified event is\n * emitted\n * @param {*} context - Optional context object to use when invoking the\n * listener\n */\n\n\n addListener(eventType, // FIXME: listeners should return void instead of mixed to prevent issues\n listener, context) {\n return this._subscriber.addSubscription(eventType, new EmitterSubscription(this, this._subscriber, listener, context));\n }\n /**\n * Removes all of the registered listeners, including those registered as\n * listener maps.\n *\n * @param {?string} eventType - Optional name of the event whose registered\n * listeners to remove\n */\n\n\n removeAllListeners(eventType) {\n this._subscriber.removeAllSubscriptions(eventType);\n }\n /**\n * @deprecated Use `remove` on the EventSubscription from `addListener`.\n */\n\n\n removeSubscription(subscription) {\n invariant(subscription.emitter === this, 'Subscription does not belong to this emitter.');\n\n this._subscriber.removeSubscription(subscription);\n }\n /**\n * Returns the number of listeners that are currently registered for the given\n * event.\n *\n * @param {string} eventType - Name of the event to query\n * @returns {number}\n */\n\n\n listenerCount(eventType) {\n var subscriptions = this._subscriber.getSubscriptionsForType(eventType);\n\n return subscriptions ? // We filter out missing entries because the array is sparse.\n // \"callbackfn is called only for elements of the array which actually\n // exist; it is not called for missing elements of the array.\"\n // https://www.ecma-international.org/ecma-262/9.0/index.html#sec-array.prototype.filter\n subscriptions.filter(sparseFilterPredicate).length : 0;\n }\n /**\n * Emits an event of the given type with the given data. All handlers of that\n * particular type will be notified.\n *\n * @param {string} eventType - Name of the event to emit\n * @param {...*} Arbitrary arguments to be passed to each registered listener\n *\n * @example\n * emitter.addListener('someEvent', function(message) {\n * console.log(message);\n * });\n *\n * emitter.emit('someEvent', 'abc'); // logs 'abc'\n */\n\n\n emit(eventType) {\n var subscriptions = this._subscriber.getSubscriptionsForType(eventType);\n\n if (subscriptions) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n for (var i = 0, l = subscriptions.length; i < l; i++) {\n var subscription = subscriptions[i]; // The subscription may have been removed during this event loop.\n\n if (subscription && subscription.listener) {\n subscription.listener.apply(subscription.context, args);\n }\n }\n }\n }\n /**\n * @deprecated Use `remove` on the EventSubscription from `addListener`.\n */\n\n\n removeListener(eventType, // FIXME: listeners should return void instead of mixed to prevent issues\n listener) {\n console.error(\"EventEmitter.removeListener('\" + eventType + \"', ...): Method has been \" + 'deprecated. Please instead use `remove()` on the subscription ' + 'returned by `EventEmitter.addListener`.');\n\n var subscriptions = this._subscriber.getSubscriptionsForType(eventType);\n\n if (subscriptions) {\n for (var i = 0, l = subscriptions.length; i < l; i++) {\n var subscription = subscriptions[i]; // The subscription may have been removed during this event loop.\n // its listener matches the listener in method parameters\n\n if (subscription && subscription.listener === listener) {\n subscription.remove();\n }\n }\n }\n }\n\n}\n\nexport default EventEmitter;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\n// -- Inlined from fbjs --\n\nvar emptyObject = {};\n\nif (process.env.NODE_ENV !== 'production') {\n Object.freeze(emptyObject);\n}\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction _invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nvar warning = function(){};\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\n// /-- Inlined from fbjs --\n\nvar MIXINS_KEY = 'mixins';\n\n// Helper function to allow the creation of anonymous functions which do not\n// have .name set to the name of the variable being assigned to.\nfunction identity(fn) {\n return fn;\n}\n\nvar ReactPropTypeLocationNames;\nif (process.env.NODE_ENV !== 'production') {\n ReactPropTypeLocationNames = {\n prop: 'prop',\n context: 'context',\n childContext: 'child context'\n };\n} else {\n ReactPropTypeLocationNames = {};\n}\n\nfunction factory(ReactComponent, isValidElement, ReactNoopUpdateQueue) {\n /**\n * Policies that describe methods in `ReactClassInterface`.\n */\n\n var injectedMixins = [];\n\n /**\n * Composite components are higher-level components that compose other composite\n * or host components.\n *\n * To create a new type of `ReactClass`, pass a specification of\n * your new class to `React.createClass`. The only requirement of your class\n * specification is that you implement a `render` method.\n *\n * var MyComponent = React.createClass({\n * render: function() {\n * return
Hello World
;\n * }\n * });\n *\n * The class specification supports a specific protocol of methods that have\n * special meaning (e.g. `render`). See `ReactClassInterface` for\n * more the comprehensive protocol. Any other properties and methods in the\n * class specification will be available on the prototype.\n *\n * @interface ReactClassInterface\n * @internal\n */\n var ReactClassInterface = {\n /**\n * An array of Mixin objects to include when defining your component.\n *\n * @type {array}\n * @optional\n */\n mixins: 'DEFINE_MANY',\n\n /**\n * An object containing properties and methods that should be defined on\n * the component's constructor instead of its prototype (static methods).\n *\n * @type {object}\n * @optional\n */\n statics: 'DEFINE_MANY',\n\n /**\n * Definition of prop types for this component.\n *\n * @type {object}\n * @optional\n */\n propTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types for this component.\n *\n * @type {object}\n * @optional\n */\n contextTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types this component sets for its children.\n *\n * @type {object}\n * @optional\n */\n childContextTypes: 'DEFINE_MANY',\n\n // ==== Definition methods ====\n\n /**\n * Invoked when the component is mounted. Values in the mapping will be set on\n * `this.props` if that prop is not specified (i.e. using an `in` check).\n *\n * This method is invoked before `getInitialState` and therefore cannot rely\n * on `this.state` or use `this.setState`.\n *\n * @return {object}\n * @optional\n */\n getDefaultProps: 'DEFINE_MANY_MERGED',\n\n /**\n * Invoked once before the component is mounted. The return value will be used\n * as the initial value of `this.state`.\n *\n * getInitialState: function() {\n * return {\n * isOn: false,\n * fooBaz: new BazFoo()\n * }\n * }\n *\n * @return {object}\n * @optional\n */\n getInitialState: 'DEFINE_MANY_MERGED',\n\n /**\n * @return {object}\n * @optional\n */\n getChildContext: 'DEFINE_MANY_MERGED',\n\n /**\n * Uses props from `this.props` and state from `this.state` to render the\n * structure of the component.\n *\n * No guarantees are made about when or how often this method is invoked, so\n * it must not have side effects.\n *\n * render: function() {\n * var name = this.props.name;\n * return
Hello, {name}!
;\n * }\n *\n * @return {ReactComponent}\n * @required\n */\n render: 'DEFINE_ONCE',\n\n // ==== Delegate methods ====\n\n /**\n * Invoked when the component is initially created and about to be mounted.\n * This may have side effects, but any external subscriptions or data created\n * by this method must be cleaned up in `componentWillUnmount`.\n *\n * @optional\n */\n componentWillMount: 'DEFINE_MANY',\n\n /**\n * Invoked when the component has been mounted and has a DOM representation.\n * However, there is no guarantee that the DOM node is in the document.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been mounted (initialized and rendered) for the first time.\n *\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidMount: 'DEFINE_MANY',\n\n /**\n * Invoked before the component receives new props.\n *\n * Use this as an opportunity to react to a prop transition by updating the\n * state using `this.setState`. Current props are accessed via `this.props`.\n *\n * componentWillReceiveProps: function(nextProps, nextContext) {\n * this.setState({\n * likesIncreasing: nextProps.likeCount > this.props.likeCount\n * });\n * }\n *\n * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop\n * transition may cause a state change, but the opposite is not true. If you\n * need it, you are probably looking for `componentWillUpdate`.\n *\n * @param {object} nextProps\n * @optional\n */\n componentWillReceiveProps: 'DEFINE_MANY',\n\n /**\n * Invoked while deciding if the component should be updated as a result of\n * receiving new props, state and/or context.\n *\n * Use this as an opportunity to `return false` when you're certain that the\n * transition to the new props/state/context will not require a component\n * update.\n *\n * shouldComponentUpdate: function(nextProps, nextState, nextContext) {\n * return !equal(nextProps, this.props) ||\n * !equal(nextState, this.state) ||\n * !equal(nextContext, this.context);\n * }\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @return {boolean} True if the component should update.\n * @optional\n */\n shouldComponentUpdate: 'DEFINE_ONCE',\n\n /**\n * Invoked when the component is about to update due to a transition from\n * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState`\n * and `nextContext`.\n *\n * Use this as an opportunity to perform preparation before an update occurs.\n *\n * NOTE: You **cannot** use `this.setState()` in this method.\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @param {ReactReconcileTransaction} transaction\n * @optional\n */\n componentWillUpdate: 'DEFINE_MANY',\n\n /**\n * Invoked when the component's DOM representation has been updated.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been updated.\n *\n * @param {object} prevProps\n * @param {?object} prevState\n * @param {?object} prevContext\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidUpdate: 'DEFINE_MANY',\n\n /**\n * Invoked when the component is about to be removed from its parent and have\n * its DOM representation destroyed.\n *\n * Use this as an opportunity to deallocate any external resources.\n *\n * NOTE: There is no `componentDidUnmount` since your component will have been\n * destroyed by that point.\n *\n * @optional\n */\n componentWillUnmount: 'DEFINE_MANY',\n\n /**\n * Replacement for (deprecated) `componentWillMount`.\n *\n * @optional\n */\n UNSAFE_componentWillMount: 'DEFINE_MANY',\n\n /**\n * Replacement for (deprecated) `componentWillReceiveProps`.\n *\n * @optional\n */\n UNSAFE_componentWillReceiveProps: 'DEFINE_MANY',\n\n /**\n * Replacement for (deprecated) `componentWillUpdate`.\n *\n * @optional\n */\n UNSAFE_componentWillUpdate: 'DEFINE_MANY',\n\n // ==== Advanced methods ====\n\n /**\n * Updates the component's currently mounted DOM representation.\n *\n * By default, this implements React's rendering and reconciliation algorithm.\n * Sophisticated clients may wish to override this.\n *\n * @param {ReactReconcileTransaction} transaction\n * @internal\n * @overridable\n */\n updateComponent: 'OVERRIDE_BASE'\n };\n\n /**\n * Similar to ReactClassInterface but for static methods.\n */\n var ReactClassStaticInterface = {\n /**\n * This method is invoked after a component is instantiated and when it\n * receives new props. Return an object to update state in response to\n * prop changes. Return null to indicate no change to state.\n *\n * If an object is returned, its keys will be merged into the existing state.\n *\n * @return {object || null}\n * @optional\n */\n getDerivedStateFromProps: 'DEFINE_MANY_MERGED'\n };\n\n /**\n * Mapping from class specification keys to special processing functions.\n *\n * Although these are declared like instance properties in the specification\n * when defining classes using `React.createClass`, they are actually static\n * and are accessible on the constructor instead of the prototype. Despite\n * being static, they must be defined outside of the \"statics\" key under\n * which all other static methods are defined.\n */\n var RESERVED_SPEC_KEYS = {\n displayName: function(Constructor, displayName) {\n Constructor.displayName = displayName;\n },\n mixins: function(Constructor, mixins) {\n if (mixins) {\n for (var i = 0; i < mixins.length; i++) {\n mixSpecIntoComponent(Constructor, mixins[i]);\n }\n }\n },\n childContextTypes: function(Constructor, childContextTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, childContextTypes, 'childContext');\n }\n Constructor.childContextTypes = _assign(\n {},\n Constructor.childContextTypes,\n childContextTypes\n );\n },\n contextTypes: function(Constructor, contextTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, contextTypes, 'context');\n }\n Constructor.contextTypes = _assign(\n {},\n Constructor.contextTypes,\n contextTypes\n );\n },\n /**\n * Special case getDefaultProps which should move into statics but requires\n * automatic merging.\n */\n getDefaultProps: function(Constructor, getDefaultProps) {\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps = createMergedResultFunction(\n Constructor.getDefaultProps,\n getDefaultProps\n );\n } else {\n Constructor.getDefaultProps = getDefaultProps;\n }\n },\n propTypes: function(Constructor, propTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, propTypes, 'prop');\n }\n Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes);\n },\n statics: function(Constructor, statics) {\n mixStaticSpecIntoComponent(Constructor, statics);\n },\n autobind: function() {}\n };\n\n function validateTypeDef(Constructor, typeDef, location) {\n for (var propName in typeDef) {\n if (typeDef.hasOwnProperty(propName)) {\n // use a warning instead of an _invariant so components\n // don't show up in prod but only in __DEV__\n if (process.env.NODE_ENV !== 'production') {\n warning(\n typeof typeDef[propName] === 'function',\n '%s: %s type `%s` is invalid; it must be a function, usually from ' +\n 'React.PropTypes.',\n Constructor.displayName || 'ReactClass',\n ReactPropTypeLocationNames[location],\n propName\n );\n }\n }\n }\n }\n\n function validateMethodOverride(isAlreadyDefined, name) {\n var specPolicy = ReactClassInterface.hasOwnProperty(name)\n ? ReactClassInterface[name]\n : null;\n\n // Disallow overriding of base class methods unless explicitly allowed.\n if (ReactClassMixin.hasOwnProperty(name)) {\n _invariant(\n specPolicy === 'OVERRIDE_BASE',\n 'ReactClassInterface: You are attempting to override ' +\n '`%s` from your class specification. Ensure that your method names ' +\n 'do not overlap with React methods.',\n name\n );\n }\n\n // Disallow defining methods more than once unless explicitly allowed.\n if (isAlreadyDefined) {\n _invariant(\n specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED',\n 'ReactClassInterface: You are attempting to define ' +\n '`%s` on your component more than once. This conflict may be due ' +\n 'to a mixin.',\n name\n );\n }\n }\n\n /**\n * Mixin helper which handles policy validation and reserved\n * specification keys when building React classes.\n */\n function mixSpecIntoComponent(Constructor, spec) {\n if (!spec) {\n if (process.env.NODE_ENV !== 'production') {\n var typeofSpec = typeof spec;\n var isMixinValid = typeofSpec === 'object' && spec !== null;\n\n if (process.env.NODE_ENV !== 'production') {\n warning(\n isMixinValid,\n \"%s: You're attempting to include a mixin that is either null \" +\n 'or not an object. Check the mixins included by the component, ' +\n 'as well as any mixins they include themselves. ' +\n 'Expected object but got %s.',\n Constructor.displayName || 'ReactClass',\n spec === null ? null : typeofSpec\n );\n }\n }\n\n return;\n }\n\n _invariant(\n typeof spec !== 'function',\n \"ReactClass: You're attempting to \" +\n 'use a component class or function as a mixin. Instead, just use a ' +\n 'regular object.'\n );\n _invariant(\n !isValidElement(spec),\n \"ReactClass: You're attempting to \" +\n 'use a component as a mixin. Instead, just use a regular object.'\n );\n\n var proto = Constructor.prototype;\n var autoBindPairs = proto.__reactAutoBindPairs;\n\n // By handling mixins before any other properties, we ensure the same\n // chaining order is applied to methods with DEFINE_MANY policy, whether\n // mixins are listed before or after these methods in the spec.\n if (spec.hasOwnProperty(MIXINS_KEY)) {\n RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);\n }\n\n for (var name in spec) {\n if (!spec.hasOwnProperty(name)) {\n continue;\n }\n\n if (name === MIXINS_KEY) {\n // We have already handled mixins in a special case above.\n continue;\n }\n\n var property = spec[name];\n var isAlreadyDefined = proto.hasOwnProperty(name);\n validateMethodOverride(isAlreadyDefined, name);\n\n if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {\n RESERVED_SPEC_KEYS[name](Constructor, property);\n } else {\n // Setup methods on prototype:\n // The following member methods should not be automatically bound:\n // 1. Expected ReactClass methods (in the \"interface\").\n // 2. Overridden methods (that were mixed in).\n var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);\n var isFunction = typeof property === 'function';\n var shouldAutoBind =\n isFunction &&\n !isReactClassMethod &&\n !isAlreadyDefined &&\n spec.autobind !== false;\n\n if (shouldAutoBind) {\n autoBindPairs.push(name, property);\n proto[name] = property;\n } else {\n if (isAlreadyDefined) {\n var specPolicy = ReactClassInterface[name];\n\n // These cases should already be caught by validateMethodOverride.\n _invariant(\n isReactClassMethod &&\n (specPolicy === 'DEFINE_MANY_MERGED' ||\n specPolicy === 'DEFINE_MANY'),\n 'ReactClass: Unexpected spec policy %s for key %s ' +\n 'when mixing in component specs.',\n specPolicy,\n name\n );\n\n // For methods which are defined more than once, call the existing\n // methods before calling the new property, merging if appropriate.\n if (specPolicy === 'DEFINE_MANY_MERGED') {\n proto[name] = createMergedResultFunction(proto[name], property);\n } else if (specPolicy === 'DEFINE_MANY') {\n proto[name] = createChainedFunction(proto[name], property);\n }\n } else {\n proto[name] = property;\n if (process.env.NODE_ENV !== 'production') {\n // Add verbose displayName to the function, which helps when looking\n // at profiling tools.\n if (typeof property === 'function' && spec.displayName) {\n proto[name].displayName = spec.displayName + '_' + name;\n }\n }\n }\n }\n }\n }\n }\n\n function mixStaticSpecIntoComponent(Constructor, statics) {\n if (!statics) {\n return;\n }\n\n for (var name in statics) {\n var property = statics[name];\n if (!statics.hasOwnProperty(name)) {\n continue;\n }\n\n var isReserved = name in RESERVED_SPEC_KEYS;\n _invariant(\n !isReserved,\n 'ReactClass: You are attempting to define a reserved ' +\n 'property, `%s`, that shouldn\\'t be on the \"statics\" key. Define it ' +\n 'as an instance property instead; it will still be accessible on the ' +\n 'constructor.',\n name\n );\n\n var isAlreadyDefined = name in Constructor;\n if (isAlreadyDefined) {\n var specPolicy = ReactClassStaticInterface.hasOwnProperty(name)\n ? ReactClassStaticInterface[name]\n : null;\n\n _invariant(\n specPolicy === 'DEFINE_MANY_MERGED',\n 'ReactClass: You are attempting to define ' +\n '`%s` on your component more than once. This conflict may be ' +\n 'due to a mixin.',\n name\n );\n\n Constructor[name] = createMergedResultFunction(Constructor[name], property);\n\n return;\n }\n\n Constructor[name] = property;\n }\n }\n\n /**\n * Merge two objects, but throw if both contain the same key.\n *\n * @param {object} one The first object, which is mutated.\n * @param {object} two The second object\n * @return {object} one after it has been mutated to contain everything in two.\n */\n function mergeIntoWithNoDuplicateKeys(one, two) {\n _invariant(\n one && two && typeof one === 'object' && typeof two === 'object',\n 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.'\n );\n\n for (var key in two) {\n if (two.hasOwnProperty(key)) {\n _invariant(\n one[key] === undefined,\n 'mergeIntoWithNoDuplicateKeys(): ' +\n 'Tried to merge two objects with the same key: `%s`. This conflict ' +\n 'may be due to a mixin; in particular, this may be caused by two ' +\n 'getInitialState() or getDefaultProps() methods returning objects ' +\n 'with clashing keys.',\n key\n );\n one[key] = two[key];\n }\n }\n return one;\n }\n\n /**\n * Creates a function that invokes two functions and merges their return values.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n function createMergedResultFunction(one, two) {\n return function mergedResult() {\n var a = one.apply(this, arguments);\n var b = two.apply(this, arguments);\n if (a == null) {\n return b;\n } else if (b == null) {\n return a;\n }\n var c = {};\n mergeIntoWithNoDuplicateKeys(c, a);\n mergeIntoWithNoDuplicateKeys(c, b);\n return c;\n };\n }\n\n /**\n * Creates a function that invokes two functions and ignores their return vales.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n function createChainedFunction(one, two) {\n return function chainedFunction() {\n one.apply(this, arguments);\n two.apply(this, arguments);\n };\n }\n\n /**\n * Binds a method to the component.\n *\n * @param {object} component Component whose method is going to be bound.\n * @param {function} method Method to be bound.\n * @return {function} The bound method.\n */\n function bindAutoBindMethod(component, method) {\n var boundMethod = method.bind(component);\n if (process.env.NODE_ENV !== 'production') {\n boundMethod.__reactBoundContext = component;\n boundMethod.__reactBoundMethod = method;\n boundMethod.__reactBoundArguments = null;\n var componentName = component.constructor.displayName;\n var _bind = boundMethod.bind;\n boundMethod.bind = function(newThis) {\n for (\n var _len = arguments.length,\n args = Array(_len > 1 ? _len - 1 : 0),\n _key = 1;\n _key < _len;\n _key++\n ) {\n args[_key - 1] = arguments[_key];\n }\n\n // User is trying to bind() an autobound method; we effectively will\n // ignore the value of \"this\" that the user is trying to use, so\n // let's warn.\n if (newThis !== component && newThis !== null) {\n if (process.env.NODE_ENV !== 'production') {\n warning(\n false,\n 'bind(): React component methods may only be bound to the ' +\n 'component instance. See %s',\n componentName\n );\n }\n } else if (!args.length) {\n if (process.env.NODE_ENV !== 'production') {\n warning(\n false,\n 'bind(): You are binding a component method to the component. ' +\n 'React does this for you automatically in a high-performance ' +\n 'way, so you can safely remove this call. See %s',\n componentName\n );\n }\n return boundMethod;\n }\n var reboundMethod = _bind.apply(boundMethod, arguments);\n reboundMethod.__reactBoundContext = component;\n reboundMethod.__reactBoundMethod = method;\n reboundMethod.__reactBoundArguments = args;\n return reboundMethod;\n };\n }\n return boundMethod;\n }\n\n /**\n * Binds all auto-bound methods in a component.\n *\n * @param {object} component Component whose method is going to be bound.\n */\n function bindAutoBindMethods(component) {\n var pairs = component.__reactAutoBindPairs;\n for (var i = 0; i < pairs.length; i += 2) {\n var autoBindKey = pairs[i];\n var method = pairs[i + 1];\n component[autoBindKey] = bindAutoBindMethod(component, method);\n }\n }\n\n var IsMountedPreMixin = {\n componentDidMount: function() {\n this.__isMounted = true;\n }\n };\n\n var IsMountedPostMixin = {\n componentWillUnmount: function() {\n this.__isMounted = false;\n }\n };\n\n /**\n * Add more to the ReactClass base class. These are all legacy features and\n * therefore not already part of the modern ReactComponent.\n */\n var ReactClassMixin = {\n /**\n * TODO: This will be deprecated because state should always keep a consistent\n * type signature and the only use case for this, is to avoid that.\n */\n replaceState: function(newState, callback) {\n this.updater.enqueueReplaceState(this, newState, callback);\n },\n\n /**\n * Checks whether or not this composite component is mounted.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function() {\n if (process.env.NODE_ENV !== 'production') {\n warning(\n this.__didWarnIsMounted,\n '%s: isMounted is deprecated. Instead, make sure to clean up ' +\n 'subscriptions and pending requests in componentWillUnmount to ' +\n 'prevent memory leaks.',\n (this.constructor && this.constructor.displayName) ||\n this.name ||\n 'Component'\n );\n this.__didWarnIsMounted = true;\n }\n return !!this.__isMounted;\n }\n };\n\n var ReactClassComponent = function() {};\n _assign(\n ReactClassComponent.prototype,\n ReactComponent.prototype,\n ReactClassMixin\n );\n\n /**\n * Creates a composite component class given a class specification.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.createclass\n *\n * @param {object} spec Class specification (which must define `render`).\n * @return {function} Component constructor function.\n * @public\n */\n function createClass(spec) {\n // To keep our warnings more understandable, we'll use a little hack here to\n // ensure that Constructor.name !== 'Constructor'. This makes sure we don't\n // unnecessarily identify a class without displayName as 'Constructor'.\n var Constructor = identity(function(props, context, updater) {\n // This constructor gets overridden by mocks. The argument is used\n // by mocks to assert on what gets mounted.\n\n if (process.env.NODE_ENV !== 'production') {\n warning(\n this instanceof Constructor,\n 'Something is calling a React component directly. Use a factory or ' +\n 'JSX instead. See: https://fb.me/react-legacyfactory'\n );\n }\n\n // Wire up auto-binding\n if (this.__reactAutoBindPairs.length) {\n bindAutoBindMethods(this);\n }\n\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n\n this.state = null;\n\n // ReactClasses doesn't have constructors. Instead, they use the\n // getInitialState and componentWillMount methods for initialization.\n\n var initialState = this.getInitialState ? this.getInitialState() : null;\n if (process.env.NODE_ENV !== 'production') {\n // We allow auto-mocks to proceed as if they're returning null.\n if (\n initialState === undefined &&\n this.getInitialState._isMockFunction\n ) {\n // This is probably bad practice. Consider warning here and\n // deprecating this convenience.\n initialState = null;\n }\n }\n _invariant(\n typeof initialState === 'object' && !Array.isArray(initialState),\n '%s.getInitialState(): must return an object or null',\n Constructor.displayName || 'ReactCompositeComponent'\n );\n\n this.state = initialState;\n });\n Constructor.prototype = new ReactClassComponent();\n Constructor.prototype.constructor = Constructor;\n Constructor.prototype.__reactAutoBindPairs = [];\n\n injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));\n\n mixSpecIntoComponent(Constructor, IsMountedPreMixin);\n mixSpecIntoComponent(Constructor, spec);\n mixSpecIntoComponent(Constructor, IsMountedPostMixin);\n\n // Initialize the defaultProps property after all mixins have been merged.\n if (Constructor.getDefaultProps) {\n Constructor.defaultProps = Constructor.getDefaultProps();\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // This is a tag to indicate that the use of these method names is ok,\n // since it's used with createClass. If it's not, then it's likely a\n // mistake so we'll warn you to use the static property, property\n // initializer or constructor respectively.\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps.isReactClassApproved = {};\n }\n if (Constructor.prototype.getInitialState) {\n Constructor.prototype.getInitialState.isReactClassApproved = {};\n }\n }\n\n _invariant(\n Constructor.prototype.render,\n 'createClass(...): Class specification must implement a `render` method.'\n );\n\n if (process.env.NODE_ENV !== 'production') {\n warning(\n !Constructor.prototype.componentShouldUpdate,\n '%s has a method called ' +\n 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' +\n 'The name is phrased as a question because the function is ' +\n 'expected to return a value.',\n spec.displayName || 'A component'\n );\n warning(\n !Constructor.prototype.componentWillRecieveProps,\n '%s has a method called ' +\n 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?',\n spec.displayName || 'A component'\n );\n warning(\n !Constructor.prototype.UNSAFE_componentWillRecieveProps,\n '%s has a method called UNSAFE_componentWillRecieveProps(). ' +\n 'Did you mean UNSAFE_componentWillReceiveProps()?',\n spec.displayName || 'A component'\n );\n }\n\n // Reduce time spent doing lookups by setting these on the prototype.\n for (var methodName in ReactClassInterface) {\n if (!Constructor.prototype[methodName]) {\n Constructor.prototype[methodName] = null;\n }\n }\n\n return Constructor;\n }\n\n return createClass;\n}\n\nmodule.exports = factory;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar React = require('react');\nvar factory = require('./factory');\n\nif (typeof React === 'undefined') {\n throw Error(\n 'create-react-class could not find the React object. If you are using script tags, ' +\n 'make sure that React is being loaded before create-react-class.'\n );\n}\n\n// Hack to grab NoopUpdateQueue from isomorphic React\nvar ReactNoopUpdateQueue = new React.Component().updater;\n\nmodule.exports = factory(\n React.Component,\n React.isValidElement,\n ReactNoopUpdateQueue\n);\n","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\";\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;","/* Font Face Observer v2.3.0 - © Bram Stein. License: BSD-3-Clause */(function(){function p(a,c){document.addEventListener?a.addEventListener(\"scroll\",c,!1):a.attachEvent(\"scroll\",c)}function u(a){document.body?a():document.addEventListener?document.addEventListener(\"DOMContentLoaded\",function b(){document.removeEventListener(\"DOMContentLoaded\",b);a()}):document.attachEvent(\"onreadystatechange\",function g(){if(\"interactive\"==document.readyState||\"complete\"==document.readyState)document.detachEvent(\"onreadystatechange\",g),a()})};function w(a){this.g=document.createElement(\"div\");this.g.setAttribute(\"aria-hidden\",\"true\");this.g.appendChild(document.createTextNode(a));this.h=document.createElement(\"span\");this.i=document.createElement(\"span\");this.m=document.createElement(\"span\");this.j=document.createElement(\"span\");this.l=-1;this.h.style.cssText=\"max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;\";this.i.style.cssText=\"max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;\";\nthis.j.style.cssText=\"max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;\";this.m.style.cssText=\"display:inline-block;width:200%;height:200%;font-size:16px;max-width:none;\";this.h.appendChild(this.m);this.i.appendChild(this.j);this.g.appendChild(this.h);this.g.appendChild(this.i)}\nfunction x(a,c){a.g.style.cssText=\"max-width:none;min-width:20px;min-height:20px;display:inline-block;overflow:hidden;position:absolute;width:auto;margin:0;padding:0;top:-999px;white-space:nowrap;font-synthesis:none;font:\"+c+\";\"}function B(a){var c=a.g.offsetWidth,b=c+100;a.j.style.width=b+\"px\";a.i.scrollLeft=b;a.h.scrollLeft=a.h.scrollWidth+100;return a.l!==c?(a.l=c,!0):!1}function C(a,c){function b(){var e=g;B(e)&&null!==e.g.parentNode&&c(e.l)}var g=a;p(a.h,b);p(a.i,b);B(a)};function D(a,c,b){c=c||{};b=b||window;this.family=a;this.style=c.style||\"normal\";this.weight=c.weight||\"normal\";this.stretch=c.stretch||\"normal\";this.context=b}var E=null,F=null,G=null,H=null;function I(a){null===F&&(M(a)&&/Apple/.test(window.navigator.vendor)?(a=/AppleWebKit\\/([0-9]+)(?:\\.([0-9]+))(?:\\.([0-9]+))/.exec(window.navigator.userAgent),F=!!a&&603>parseInt(a[1],10)):F=!1);return F}function M(a){null===H&&(H=!!a.document.fonts);return H}\nfunction N(a,c){var b=a.style,g=a.weight;if(null===G){var e=document.createElement(\"div\");try{e.style.font=\"condensed 100px sans-serif\"}catch(q){}G=\"\"!==e.style.font}return[b,g,G?a.stretch:\"\",\"100px\",c].join(\" \")}\nD.prototype.load=function(a,c){var b=this,g=a||\"BESbswy\",e=0,q=c||3E3,J=(new Date).getTime();return new Promise(function(K,L){if(M(b.context)&&!I(b.context)){var O=new Promise(function(r,t){function h(){(new Date).getTime()-J>=q?t(Error(\"\"+q+\"ms timeout exceeded\")):b.context.document.fonts.load(N(b,'\"'+b.family+'\"'),g).then(function(n){1<=n.length?r():setTimeout(h,25)},t)}h()}),P=new Promise(function(r,t){e=setTimeout(function(){t(Error(\"\"+q+\"ms timeout exceeded\"))},q)});Promise.race([P,O]).then(function(){clearTimeout(e);\nK(b)},L)}else u(function(){function r(){var d;if(d=-1!=k&&-1!=l||-1!=k&&-1!=m||-1!=l&&-1!=m)(d=k!=l&&k!=m&&l!=m)||(null===E&&(d=/AppleWebKit\\/([0-9]+)(?:\\.([0-9]+))/.exec(window.navigator.userAgent),E=!!d&&(536>parseInt(d[1],10)||536===parseInt(d[1],10)&&11>=parseInt(d[2],10))),d=E&&(k==y&&l==y&&m==y||k==z&&l==z&&m==z||k==A&&l==A&&m==A)),d=!d;d&&(null!==f.parentNode&&f.parentNode.removeChild(f),clearTimeout(e),K(b))}function t(){if((new Date).getTime()-J>=q)null!==f.parentNode&&f.parentNode.removeChild(f),\nL(Error(\"\"+q+\"ms timeout exceeded\"));else{var d=b.context.document.hidden;if(!0===d||void 0===d)k=h.g.offsetWidth,l=n.g.offsetWidth,m=v.g.offsetWidth,r();e=setTimeout(t,50)}}var h=new w(g),n=new w(g),v=new w(g),k=-1,l=-1,m=-1,y=-1,z=-1,A=-1,f=document.createElement(\"div\");f.dir=\"ltr\";x(h,N(b,\"sans-serif\"));x(n,N(b,\"serif\"));x(v,N(b,\"monospace\"));f.appendChild(h.g);f.appendChild(n.g);f.appendChild(v.g);b.context.document.body.appendChild(f);y=h.g.offsetWidth;z=n.g.offsetWidth;A=v.g.offsetWidth;t();\nC(h,function(d){k=d;r()});x(h,N(b,'\"'+b.family+'\",sans-serif'));C(n,function(d){l=d;r()});x(n,N(b,'\"'+b.family+'\",serif'));C(v,function(d){m=d;r()});x(v,N(b,'\"'+b.family+'\",monospace'))})})};\"object\"===typeof module?module.exports=D:(window.FontFaceObserver=D,window.FontFaceObserver.prototype.load=D.prototype.load);}());\n","/* 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}","/**\n * @license\n * Lodash \n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n;(function() {\n\n /** Used as a safe reference for `undefined` in pre-ES5 environments. */\n var undefined;\n\n /** Used as the semantic version number. */\n var VERSION = '4.17.21';\n\n /** Used as the size to enable large array optimizations. */\n var LARGE_ARRAY_SIZE = 200;\n\n /** Error message constants. */\n var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.',\n FUNC_ERROR_TEXT = 'Expected a function',\n INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`';\n\n /** Used to stand-in for `undefined` hash values. */\n var HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n /** Used as the maximum memoize cache size. */\n var MAX_MEMOIZE_SIZE = 500;\n\n /** Used as the internal argument placeholder. */\n var PLACEHOLDER = '__lodash_placeholder__';\n\n /** Used to compose bitmasks for cloning. */\n var CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n /** Used to compose bitmasks for value comparisons. */\n var COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n /** Used to compose bitmasks for function metadata. */\n var WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256,\n WRAP_FLIP_FLAG = 512;\n\n /** Used as default options for `_.truncate`. */\n var DEFAULT_TRUNC_LENGTH = 30,\n DEFAULT_TRUNC_OMISSION = '...';\n\n /** Used to detect hot functions by number of calls within a span of milliseconds. */\n var HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n /** Used to indicate the type of lazy iteratees. */\n var LAZY_FILTER_FLAG = 1,\n LAZY_MAP_FLAG = 2,\n LAZY_WHILE_FLAG = 3;\n\n /** Used as references for various `Number` constants. */\n var INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n\n /** Used as references for the maximum length and index of an array. */\n var MAX_ARRAY_LENGTH = 4294967295,\n MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1,\n HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;\n\n /** Used to associate wrap methods with their bit flags. */\n var wrapFlags = [\n ['ary', WRAP_ARY_FLAG],\n ['bind', WRAP_BIND_FLAG],\n ['bindKey', WRAP_BIND_KEY_FLAG],\n ['curry', WRAP_CURRY_FLAG],\n ['curryRight', WRAP_CURRY_RIGHT_FLAG],\n ['flip', WRAP_FLIP_FLAG],\n ['partial', WRAP_PARTIAL_FLAG],\n ['partialRight', WRAP_PARTIAL_RIGHT_FLAG],\n ['rearg', WRAP_REARG_FLAG]\n ];\n\n /** `Object#toString` result references. */\n var argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n domExcTag = '[object DOMException]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]',\n weakSetTag = '[object WeakSet]';\n\n var arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n /** Used to match empty string literals in compiled template source. */\n var reEmptyStringLeading = /\\b__p \\+= '';/g,\n reEmptyStringMiddle = /\\b(__p \\+=) '' \\+/g,\n reEmptyStringTrailing = /(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g;\n\n /** Used to match HTML entities and HTML characters. */\n var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g,\n reUnescapedHtml = /[&<>\"']/g,\n reHasEscapedHtml = RegExp(reEscapedHtml.source),\n reHasUnescapedHtml = RegExp(reUnescapedHtml.source);\n\n /** Used to match template delimiters. */\n var reEscape = /<%-([\\s\\S]+?)%>/g,\n reEvaluate = /<%([\\s\\S]+?)%>/g,\n reInterpolate = /<%=([\\s\\S]+?)%>/g;\n\n /** Used to match property names within property paths. */\n var reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n /**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\n var reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n reHasRegExpChar = RegExp(reRegExpChar.source);\n\n /** Used to match leading whitespace. */\n var reTrimStart = /^\\s+/;\n\n /** Used to match a single whitespace character. */\n var reWhitespace = /\\s/;\n\n /** Used to match wrap detail comments. */\n var reWrapComment = /\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,\n reWrapDetails = /\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,\n reSplitDetails = /,? & /;\n\n /** Used to match words composed of alphanumeric characters. */\n var reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n /**\n * Used to validate the `validate` option in `_.template` variable.\n *\n * Forbids characters which could potentially change the meaning of the function argument definition:\n * - \"(),\" (modification of function parameters)\n * - \"=\" (default value)\n * - \"[]{}\" (destructuring of function parameters)\n * - \"/\" (beginning of a comment)\n * - whitespace\n */\n var reForbiddenIdentifierChars = /[()=,{}\\[\\]\\/\\s]/;\n\n /** Used to match backslashes in property paths. */\n var reEscapeChar = /\\\\(\\\\)?/g;\n\n /**\n * Used to match\n * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).\n */\n var reEsTemplate = /\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g;\n\n /** Used to match `RegExp` flags from their coerced string values. */\n var reFlags = /\\w*$/;\n\n /** Used to detect bad signed hexadecimal string values. */\n var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n /** Used to detect binary string values. */\n var reIsBinary = /^0b[01]+$/i;\n\n /** Used to detect host constructors (Safari). */\n var reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n /** Used to detect octal string values. */\n var reIsOctal = /^0o[0-7]+$/i;\n\n /** Used to detect unsigned integer values. */\n var reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n /** Used to match Latin Unicode letters (excluding mathematical operators). */\n var reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n /** Used to ensure capturing order of template delimiters. */\n var reNoMatch = /($^)/;\n\n /** Used to match unescaped characters in compiled string literals. */\n var reUnescapedString = /['\\n\\r\\u2028\\u2029\\\\]/g;\n\n /** Used to compose unicode character classes. */\n var rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n /** Used to compose unicode capture groups. */\n var rsApos = \"['\\u2019]\",\n rsAstral = '[' + rsAstralRange + ']',\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n /** Used to compose unicode regexes. */\n var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n /** Used to match apostrophes. */\n var reApos = RegExp(rsApos, 'g');\n\n /**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\n var reComboMark = RegExp(rsCombo, 'g');\n\n /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\n var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n /** Used to match complex or compound words. */\n var reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n ].join('|'), 'g');\n\n /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\n var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n /** Used to detect strings that need a more robust regexp to match words. */\n var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n /** Used to assign default `context` object properties. */\n var contextProps = [\n 'Array', 'Buffer', 'DataView', 'Date', 'Error', 'Float32Array', 'Float64Array',\n 'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object',\n 'Promise', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError', 'Uint8Array',\n 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap',\n '_', 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout'\n ];\n\n /** Used to make template sourceURLs easier to identify. */\n var templateCounter = -1;\n\n /** Used to identify `toStringTag` values of typed arrays. */\n var typedArrayTags = {};\n typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\n typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\n typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\n typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\n typedArrayTags[uint32Tag] = true;\n typedArrayTags[argsTag] = typedArrayTags[arrayTag] =\n typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\n typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\n typedArrayTags[errorTag] = typedArrayTags[funcTag] =\n typedArrayTags[mapTag] = typedArrayTags[numberTag] =\n typedArrayTags[objectTag] = typedArrayTags[regexpTag] =\n typedArrayTags[setTag] = typedArrayTags[stringTag] =\n typedArrayTags[weakMapTag] = false;\n\n /** Used to identify `toStringTag` values supported by `_.clone`. */\n var cloneableTags = {};\n cloneableTags[argsTag] = cloneableTags[arrayTag] =\n cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\n cloneableTags[boolTag] = cloneableTags[dateTag] =\n cloneableTags[float32Tag] = cloneableTags[float64Tag] =\n cloneableTags[int8Tag] = cloneableTags[int16Tag] =\n cloneableTags[int32Tag] = cloneableTags[mapTag] =\n cloneableTags[numberTag] = cloneableTags[objectTag] =\n cloneableTags[regexpTag] = cloneableTags[setTag] =\n cloneableTags[stringTag] = cloneableTags[symbolTag] =\n cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\n cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\n cloneableTags[errorTag] = cloneableTags[funcTag] =\n cloneableTags[weakMapTag] = false;\n\n /** Used to map Latin Unicode letters to basic Latin letters. */\n var deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n };\n\n /** Used to map characters to HTML entities. */\n var htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n };\n\n /** Used to map HTML entities to characters. */\n var htmlUnescapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\"\n };\n\n /** Used to escape characters for inclusion in compiled string literals. */\n var stringEscapes = {\n '\\\\': '\\\\',\n \"'\": \"'\",\n '\\n': 'n',\n '\\r': 'r',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n };\n\n /** Built-in method references without a dependency on `root`. */\n var freeParseFloat = parseFloat,\n freeParseInt = parseInt;\n\n /** Detect free variable `global` from Node.js. */\n var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n /** Detect free variable `self`. */\n var freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n /** Used as a reference to the global object. */\n var root = freeGlobal || freeSelf || Function('return this')();\n\n /** Detect free variable `exports`. */\n var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n /** Detect free variable `module`. */\n var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n /** Detect the popular CommonJS extension `module.exports`. */\n var moduleExports = freeModule && freeModule.exports === freeExports;\n\n /** Detect free variable `process` from Node.js. */\n var freeProcess = moduleExports && freeGlobal.process;\n\n /** Used to access faster Node.js helpers. */\n var nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n }());\n\n /* Node.js helper references. */\n var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer,\n nodeIsDate = nodeUtil && nodeUtil.isDate,\n nodeIsMap = nodeUtil && nodeUtil.isMap,\n nodeIsRegExp = nodeUtil && nodeUtil.isRegExp,\n nodeIsSet = nodeUtil && nodeUtil.isSet,\n nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\n function apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n }\n\n /**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n function arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n function arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n }\n\n /**\n * A specialized version of `_.forEachRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n function arrayEachRight(array, iteratee) {\n var length = array == null ? 0 : array.length;\n\n while (length--) {\n if (iteratee(array[length], length, array) === false) {\n break;\n }\n }\n return array;\n }\n\n /**\n * A specialized version of `_.every` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n */\n function arrayEvery(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n function arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n }\n\n /**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n function arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n }\n\n /**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\n function arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n }\n\n /**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n function arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.reduceRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the last element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n function arrayReduceRight(array, iteratee, accumulator, initAccum) {\n var length = array == null ? 0 : array.length;\n if (initAccum && length) {\n accumulator = array[--length];\n }\n while (length--) {\n accumulator = iteratee(accumulator, array[length], length, array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n var asciiSize = baseProperty('length');\n\n /**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function asciiToArray(string) {\n return string.split('');\n }\n\n /**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n function asciiWords(string) {\n return string.match(reAsciiWord) || [];\n }\n\n /**\n * The base implementation of methods like `_.findKey` and `_.findLastKey`,\n * without support for iteratee shorthands, which iterates over `collection`\n * using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the found element or its key, else `undefined`.\n */\n function baseFindKey(collection, predicate, eachFunc) {\n var result;\n eachFunc(collection, function(value, key, collection) {\n if (predicate(value, key, collection)) {\n result = key;\n return false;\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n }\n\n /**\n * This function is like `baseIndexOf` except that it accepts a comparator.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseIndexOfWith(array, value, fromIndex, comparator) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (comparator(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\n function baseIsNaN(value) {\n return value !== value;\n }\n\n /**\n * The base implementation of `_.mean` and `_.meanBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the mean.\n */\n function baseMean(array, iteratee) {\n var length = array == null ? 0 : array.length;\n return length ? (baseSum(array, iteratee) / length) : NAN;\n }\n\n /**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\n function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection) {\n accumulator = initAccum\n ? (initAccum = false, value)\n : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\n function baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n }\n\n /**\n * The base implementation of `_.sum` and `_.sumBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the sum.\n */\n function baseSum(array, iteratee) {\n var result,\n index = -1,\n length = array.length;\n\n while (++index < length) {\n var current = iteratee(array[index]);\n if (current !== undefined) {\n result = result === undefined ? current : (result + current);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\n function baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n }\n\n /**\n * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array\n * of key-value pairs for `object` corresponding to the property names of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the key-value pairs.\n */\n function baseToPairs(object, props) {\n return arrayMap(props, function(key) {\n return [key, object[key]];\n });\n }\n\n /**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\n function baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n }\n\n /**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\n function baseUnary(func) {\n return function(value) {\n return func(value);\n };\n }\n\n /**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\n function baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n }\n\n /**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function cacheHas(cache, key) {\n return cache.has(key);\n }\n\n /**\n * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the first unmatched string symbol.\n */\n function charsStartIndex(strSymbols, chrSymbols) {\n var index = -1,\n length = strSymbols.length;\n\n while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n }\n\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the last unmatched string symbol.\n */\n function charsEndIndex(strSymbols, chrSymbols) {\n var index = strSymbols.length;\n\n while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n }\n\n /**\n * Gets the number of `placeholder` occurrences in `array`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} placeholder The placeholder to search for.\n * @returns {number} Returns the placeholder count.\n */\n function countHolders(array, placeholder) {\n var length = array.length,\n result = 0;\n\n while (length--) {\n if (array[length] === placeholder) {\n ++result;\n }\n }\n return result;\n }\n\n /**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\n var deburrLetter = basePropertyOf(deburredLetters);\n\n /**\n * Used by `_.escape` to convert characters to HTML entities.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n var escapeHtmlChar = basePropertyOf(htmlEscapes);\n\n /**\n * Used by `_.template` to escape characters for inclusion in compiled string literals.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n function escapeStringChar(chr) {\n return '\\\\' + stringEscapes[chr];\n }\n\n /**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n function getValue(object, key) {\n return object == null ? undefined : object[key];\n }\n\n /**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\n function hasUnicode(string) {\n return reHasUnicode.test(string);\n }\n\n /**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\n function hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n }\n\n /**\n * Converts `iterator` to an array.\n *\n * @private\n * @param {Object} iterator The iterator to convert.\n * @returns {Array} Returns the converted array.\n */\n function iteratorToArray(iterator) {\n var data,\n result = [];\n\n while (!(data = iterator.next()).done) {\n result.push(data.value);\n }\n return result;\n }\n\n /**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\n function mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n }\n\n /**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\n function overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n }\n\n /**\n * Replaces all `placeholder` elements in `array` with an internal placeholder\n * and returns an array of their indexes.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {*} placeholder The placeholder to replace.\n * @returns {Array} Returns the new array of placeholder indexes.\n */\n function replaceHolders(array, placeholder) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value === placeholder || value === PLACEHOLDER) {\n array[index] = PLACEHOLDER;\n result[resIndex++] = index;\n }\n }\n return result;\n }\n\n /**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\n function setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n }\n\n /**\n * Converts `set` to its value-value pairs.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the value-value pairs.\n */\n function setToPairs(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = [value, value];\n });\n return result;\n }\n\n /**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * A specialized version of `_.lastIndexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function strictLastIndexOf(array, value, fromIndex) {\n var index = fromIndex + 1;\n while (index--) {\n if (array[index] === value) {\n return index;\n }\n }\n return index;\n }\n\n /**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\n function stringSize(string) {\n return hasUnicode(string)\n ? unicodeSize(string)\n : asciiSize(string);\n }\n\n /**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n }\n\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\n function trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n }\n\n /**\n * Used by `_.unescape` to convert HTML entities to characters.\n *\n * @private\n * @param {string} chr The matched character to unescape.\n * @returns {string} Returns the unescaped character.\n */\n var unescapeHtmlChar = basePropertyOf(htmlUnescapes);\n\n /**\n * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n function unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n ++result;\n }\n return result;\n }\n\n /**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function unicodeToArray(string) {\n return string.match(reUnicode) || [];\n }\n\n /**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n function unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n }\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Create a new pristine `lodash` function using the `context` object.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Util\n * @param {Object} [context=root] The context object.\n * @returns {Function} Returns a new `lodash` function.\n * @example\n *\n * _.mixin({ 'foo': _.constant('foo') });\n *\n * var lodash = _.runInContext();\n * lodash.mixin({ 'bar': lodash.constant('bar') });\n *\n * _.isFunction(_.foo);\n * // => true\n * _.isFunction(_.bar);\n * // => false\n *\n * lodash.isFunction(lodash.foo);\n * // => false\n * lodash.isFunction(lodash.bar);\n * // => true\n *\n * // Create a suped-up `defer` in Node.js.\n * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer;\n */\n var runInContext = (function runInContext(context) {\n context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps));\n\n /** Built-in constructor references. */\n var Array = context.Array,\n Date = context.Date,\n Error = context.Error,\n Function = context.Function,\n Math = context.Math,\n Object = context.Object,\n RegExp = context.RegExp,\n String = context.String,\n TypeError = context.TypeError;\n\n /** Used for built-in method references. */\n var arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n /** Used to detect overreaching core-js shims. */\n var coreJsData = context['__core-js_shared__'];\n\n /** Used to resolve the decompiled source of functions. */\n var funcToString = funcProto.toString;\n\n /** Used to check objects for own properties. */\n var hasOwnProperty = objectProto.hasOwnProperty;\n\n /** Used to generate unique IDs. */\n var idCounter = 0;\n\n /** Used to detect methods masquerading as native. */\n var maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n }());\n\n /**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n var nativeObjectToString = objectProto.toString;\n\n /** Used to infer the `Object` constructor. */\n var objectCtorString = funcToString.call(Object);\n\n /** Used to restore the original `_` reference in `_.noConflict`. */\n var oldDash = root._;\n\n /** Used to detect if a method is native. */\n var reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n );\n\n /** Built-in value references. */\n var Buffer = moduleExports ? context.Buffer : undefined,\n Symbol = context.Symbol,\n Uint8Array = context.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined,\n symIterator = Symbol ? Symbol.iterator : undefined,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n var defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n }());\n\n /** Mocked built-ins. */\n var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout,\n ctxNow = Date && Date.now !== root.Date.now && Date.now,\n ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout;\n\n /* Built-in method references for those with the same name as other `lodash` methods. */\n var nativeCeil = Math.ceil,\n nativeFloor = Math.floor,\n nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeIsFinite = context.isFinite,\n nativeJoin = arrayProto.join,\n nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max,\n nativeMin = Math.min,\n nativeNow = Date.now,\n nativeParseInt = context.parseInt,\n nativeRandom = Math.random,\n nativeReverse = arrayProto.reverse;\n\n /* Built-in method references that are verified to be native. */\n var DataView = getNative(context, 'DataView'),\n Map = getNative(context, 'Map'),\n Promise = getNative(context, 'Promise'),\n Set = getNative(context, 'Set'),\n WeakMap = getNative(context, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n /** Used to store function metadata. */\n var metaMap = WeakMap && new WeakMap;\n\n /** Used to lookup unminified function names. */\n var realNames = {};\n\n /** Used to detect maps, sets, and weakmaps. */\n var dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n /** Used to convert symbols to primitives and strings. */\n var symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` object which wraps `value` to enable implicit method\n * chain sequences. Methods that operate on and return arrays, collections,\n * and functions can be chained together. Methods that retrieve a single value\n * or may return a primitive value will automatically end the chain sequence\n * and return the unwrapped value. Otherwise, the value must be unwrapped\n * with `_#value`.\n *\n * Explicit chain sequences, which must be unwrapped with `_#value`, may be\n * enabled using `_.chain`.\n *\n * The execution of chained methods is lazy, that is, it's deferred until\n * `_#value` is implicitly or explicitly called.\n *\n * Lazy evaluation allows several methods to support shortcut fusion.\n * Shortcut fusion is an optimization to merge iteratee calls; this avoids\n * the creation of intermediate arrays and can greatly reduce the number of\n * iteratee executions. Sections of a chain sequence qualify for shortcut\n * fusion if the section is applied to an array and iteratees accept only\n * one argument. The heuristic for whether a section qualifies for shortcut\n * fusion is subject to change.\n *\n * Chaining is supported in custom builds as long as the `_#value` method is\n * directly or indirectly included in the build.\n *\n * In addition to lodash methods, wrappers have `Array` and `String` methods.\n *\n * The wrapper `Array` methods are:\n * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`\n *\n * The wrapper `String` methods are:\n * `replace` and `split`\n *\n * The wrapper methods that support shortcut fusion are:\n * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,\n * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,\n * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`\n *\n * The chainable wrapper methods are:\n * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,\n * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,\n * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,\n * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,\n * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,\n * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,\n * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,\n * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,\n * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,\n * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,\n * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,\n * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,\n * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,\n * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,\n * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,\n * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,\n * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,\n * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,\n * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,\n * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,\n * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,\n * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,\n * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,\n * `zipObject`, `zipObjectDeep`, and `zipWith`\n *\n * The wrapper methods that are **not** chainable by default are:\n * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,\n * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,\n * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,\n * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,\n * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,\n * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,\n * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,\n * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,\n * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,\n * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,\n * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,\n * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,\n * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,\n * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,\n * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,\n * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,\n * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,\n * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,\n * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,\n * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,\n * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,\n * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,\n * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,\n * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,\n * `upperFirst`, `value`, and `words`\n *\n * @name _\n * @constructor\n * @category Seq\n * @param {*} value The value to wrap in a `lodash` instance.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2, 3]);\n *\n * // Returns an unwrapped value.\n * wrapped.reduce(_.add);\n * // => 6\n *\n * // Returns a wrapped value.\n * var squares = wrapped.map(square);\n *\n * _.isArray(squares);\n * // => false\n *\n * _.isArray(squares.value());\n * // => true\n */\n function lodash(value) {\n if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {\n if (value instanceof LodashWrapper) {\n return value;\n }\n if (hasOwnProperty.call(value, '__wrapped__')) {\n return wrapperClone(value);\n }\n }\n return new LodashWrapper(value);\n }\n\n /**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\n var baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n }());\n\n /**\n * The function whose prototype chain sequence wrappers inherit from.\n *\n * @private\n */\n function baseLodash() {\n // No operation performed.\n }\n\n /**\n * The base constructor for creating `lodash` wrapper objects.\n *\n * @private\n * @param {*} value The value to wrap.\n * @param {boolean} [chainAll] Enable explicit method chain sequences.\n */\n function LodashWrapper(value, chainAll) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__chain__ = !!chainAll;\n this.__index__ = 0;\n this.__values__ = undefined;\n }\n\n /**\n * By default, the template delimiters used by lodash are like those in\n * embedded Ruby (ERB) as well as ES2015 template strings. Change the\n * following template settings to use alternative delimiters.\n *\n * @static\n * @memberOf _\n * @type {Object}\n */\n lodash.templateSettings = {\n\n /**\n * Used to detect `data` property values to be HTML-escaped.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'escape': reEscape,\n\n /**\n * Used to detect code to be evaluated.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'evaluate': reEvaluate,\n\n /**\n * Used to detect `data` property values to inject.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'interpolate': reInterpolate,\n\n /**\n * Used to reference the data object in the template text.\n *\n * @memberOf _.templateSettings\n * @type {string}\n */\n 'variable': '',\n\n /**\n * Used to import variables into the compiled template.\n *\n * @memberOf _.templateSettings\n * @type {Object}\n */\n 'imports': {\n\n /**\n * A reference to the `lodash` function.\n *\n * @memberOf _.templateSettings.imports\n * @type {Function}\n */\n '_': lodash\n }\n };\n\n // Ensure wrappers are instances of `baseLodash`.\n lodash.prototype = baseLodash.prototype;\n lodash.prototype.constructor = lodash;\n\n LodashWrapper.prototype = baseCreate(baseLodash.prototype);\n LodashWrapper.prototype.constructor = LodashWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.\n *\n * @private\n * @constructor\n * @param {*} value The value to wrap.\n */\n function LazyWrapper(value) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__dir__ = 1;\n this.__filtered__ = false;\n this.__iteratees__ = [];\n this.__takeCount__ = MAX_ARRAY_LENGTH;\n this.__views__ = [];\n }\n\n /**\n * Creates a clone of the lazy wrapper object.\n *\n * @private\n * @name clone\n * @memberOf LazyWrapper\n * @returns {Object} Returns the cloned `LazyWrapper` object.\n */\n function lazyClone() {\n var result = new LazyWrapper(this.__wrapped__);\n result.__actions__ = copyArray(this.__actions__);\n result.__dir__ = this.__dir__;\n result.__filtered__ = this.__filtered__;\n result.__iteratees__ = copyArray(this.__iteratees__);\n result.__takeCount__ = this.__takeCount__;\n result.__views__ = copyArray(this.__views__);\n return result;\n }\n\n /**\n * Reverses the direction of lazy iteration.\n *\n * @private\n * @name reverse\n * @memberOf LazyWrapper\n * @returns {Object} Returns the new reversed `LazyWrapper` object.\n */\n function lazyReverse() {\n if (this.__filtered__) {\n var result = new LazyWrapper(this);\n result.__dir__ = -1;\n result.__filtered__ = true;\n } else {\n result = this.clone();\n result.__dir__ *= -1;\n }\n return result;\n }\n\n /**\n * Extracts the unwrapped value from its lazy wrapper.\n *\n * @private\n * @name value\n * @memberOf LazyWrapper\n * @returns {*} Returns the unwrapped value.\n */\n function lazyValue() {\n var array = this.__wrapped__.value(),\n dir = this.__dir__,\n isArr = isArray(array),\n isRight = dir < 0,\n arrLength = isArr ? array.length : 0,\n view = getView(0, arrLength, this.__views__),\n start = view.start,\n end = view.end,\n length = end - start,\n index = isRight ? end : (start - 1),\n iteratees = this.__iteratees__,\n iterLength = iteratees.length,\n resIndex = 0,\n takeCount = nativeMin(length, this.__takeCount__);\n\n if (!isArr || (!isRight && arrLength == length && takeCount == length)) {\n return baseWrapperValue(array, this.__actions__);\n }\n var result = [];\n\n outer:\n while (length-- && resIndex < takeCount) {\n index += dir;\n\n var iterIndex = -1,\n value = array[index];\n\n while (++iterIndex < iterLength) {\n var data = iteratees[iterIndex],\n iteratee = data.iteratee,\n type = data.type,\n computed = iteratee(value);\n\n if (type == LAZY_MAP_FLAG) {\n value = computed;\n } else if (!computed) {\n if (type == LAZY_FILTER_FLAG) {\n continue outer;\n } else {\n break outer;\n }\n }\n }\n result[resIndex++] = value;\n }\n return result;\n }\n\n // Ensure `LazyWrapper` is an instance of `baseLodash`.\n LazyWrapper.prototype = baseCreate(baseLodash.prototype);\n LazyWrapper.prototype.constructor = LazyWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\n function hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n }\n\n /**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n }\n\n /**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n }\n\n /**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\n function hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n }\n\n // Add methods to `Hash`.\n Hash.prototype.clear = hashClear;\n Hash.prototype['delete'] = hashDelete;\n Hash.prototype.get = hashGet;\n Hash.prototype.has = hashHas;\n Hash.prototype.set = hashSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\n function listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n }\n\n /**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n }\n\n /**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n }\n\n /**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\n function listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n }\n\n // Add methods to `ListCache`.\n ListCache.prototype.clear = listCacheClear;\n ListCache.prototype['delete'] = listCacheDelete;\n ListCache.prototype.get = listCacheGet;\n ListCache.prototype.has = listCacheHas;\n ListCache.prototype.set = listCacheSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\n function mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n }\n\n /**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n }\n\n /**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function mapCacheGet(key) {\n return getMapData(this, key).get(key);\n }\n\n /**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function mapCacheHas(key) {\n return getMapData(this, key).has(key);\n }\n\n /**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\n function mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n }\n\n // Add methods to `MapCache`.\n MapCache.prototype.clear = mapCacheClear;\n MapCache.prototype['delete'] = mapCacheDelete;\n MapCache.prototype.get = mapCacheGet;\n MapCache.prototype.has = mapCacheHas;\n MapCache.prototype.set = mapCacheSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\n function SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n }\n\n /**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\n function setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n }\n\n /**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\n function setCacheHas(value) {\n return this.__data__.has(value);\n }\n\n // Add methods to `SetCache`.\n SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\n SetCache.prototype.has = setCacheHas;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n }\n\n /**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\n function stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n }\n\n /**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function stackGet(key) {\n return this.__data__.get(key);\n }\n\n /**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function stackHas(key) {\n return this.__data__.has(key);\n }\n\n /**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\n function stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n }\n\n // Add methods to `Stack`.\n Stack.prototype.clear = stackClear;\n Stack.prototype['delete'] = stackDelete;\n Stack.prototype.get = stackGet;\n Stack.prototype.has = stackHas;\n Stack.prototype.set = stackSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\n function arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `_.sample` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @returns {*} Returns the random element.\n */\n function arraySample(array) {\n var length = array.length;\n return length ? array[baseRandom(0, length - 1)] : undefined;\n }\n\n /**\n * A specialized version of `_.sampleSize` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n function arraySampleSize(array, n) {\n return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length));\n }\n\n /**\n * A specialized version of `_.shuffle` for arrays.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n function arrayShuffle(array) {\n return shuffleSelf(copyArray(array));\n }\n\n /**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n }\n\n /**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n }\n\n /**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n }\n\n /**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n function baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function(value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n function baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n }\n\n /**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n function baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n }\n\n /**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n }\n\n /**\n * The base implementation of `_.at` without support for individual paths.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {string[]} paths The property paths to pick.\n * @returns {Array} Returns the picked elements.\n */\n function baseAt(object, paths) {\n var index = -1,\n length = paths.length,\n result = Array(length),\n skip = object == null;\n\n while (++index < length) {\n result[index] = skip ? undefined : get(object, paths[index]);\n }\n return result;\n }\n\n /**\n * The base implementation of `_.clamp` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n */\n function baseClamp(number, lower, upper) {\n if (number === number) {\n if (upper !== undefined) {\n number = number <= upper ? number : upper;\n }\n if (lower !== undefined) {\n number = number >= lower ? number : lower;\n }\n }\n return number;\n }\n\n /**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\n function baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n }\n\n /**\n * The base implementation of `_.conforms` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property predicates to conform to.\n * @returns {Function} Returns the new spec function.\n */\n function baseConforms(source) {\n var props = keys(source);\n return function(object) {\n return baseConformsTo(object, source, props);\n };\n }\n\n /**\n * The base implementation of `_.conformsTo` which accepts `props` to check.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n */\n function baseConformsTo(object, source, props) {\n var length = props.length;\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (length--) {\n var key = props[length],\n predicate = source[key],\n value = object[key];\n\n if ((value === undefined && !(key in object)) || !predicate(value)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * The base implementation of `_.delay` and `_.defer` which accepts `args`\n * to provide to `func`.\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {Array} args The arguments to provide to `func`.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n function baseDelay(func, wait, args) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return setTimeout(function() { func.apply(undefined, args); }, wait);\n }\n\n /**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\n function baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEach = createBaseEach(baseForOwn);\n\n /**\n * The base implementation of `_.forEachRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEachRight = createBaseEach(baseForOwnRight, true);\n\n /**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\n function baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n }\n\n /**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\n function baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.fill` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n */\n function baseFill(array, value, start, end) {\n var length = array.length;\n\n start = toInteger(start);\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = (end === undefined || end > length) ? length : toInteger(end);\n if (end < 0) {\n end += length;\n }\n end = start > end ? 0 : toLength(end);\n while (start < end) {\n array[start++] = value;\n }\n return array;\n }\n\n /**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\n function baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseFor = createBaseFor();\n\n /**\n * This function is like `baseFor` except that it iterates over properties\n * in the opposite order.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseForRight = createBaseFor(true);\n\n /**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.forOwnRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwnRight(object, iteratee) {\n return object && baseForRight(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.functions` which creates an array of\n * `object` function property names filtered from `props`.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Array} props The property names to filter.\n * @returns {Array} Returns the function names.\n */\n function baseFunctions(object, props) {\n return arrayFilter(props, function(key) {\n return isFunction(object[key]);\n });\n }\n\n /**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\n function baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n }\n\n /**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n }\n\n /**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n function baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n }\n\n /**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\n function baseGt(value, other) {\n return value > other;\n }\n\n /**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n function baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n }\n\n /**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n function baseHasIn(object, key) {\n return object != null && key in Object(object);\n }\n\n /**\n * The base implementation of `_.inRange` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to check.\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n */\n function baseInRange(number, start, end) {\n return number >= nativeMin(start, end) && number < nativeMax(start, end);\n }\n\n /**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\n function baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.invert` and `_.invertBy` which inverts\n * `object` with values transformed by `iteratee` and set by `setter`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform values.\n * @param {Object} accumulator The initial inverted object.\n * @returns {Function} Returns `accumulator`.\n */\n function baseInverter(object, setter, iteratee, accumulator) {\n baseForOwn(object, function(value, key, object) {\n setter(accumulator, iteratee(value), key, object);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.invoke` without support for individual\n * method arguments.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {Array} args The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n */\n function baseInvoke(object, path, args) {\n path = castPath(path, object);\n object = parent(object, path);\n var func = object == null ? object : object[toKey(last(path))];\n return func == null ? undefined : apply(func, object, args);\n }\n\n /**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\n function baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n }\n\n /**\n * The base implementation of `_.isArrayBuffer` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n */\n function baseIsArrayBuffer(value) {\n return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;\n }\n\n /**\n * The base implementation of `_.isDate` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n */\n function baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\n }\n\n /**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\n function baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n }\n\n /**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n }\n\n /**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\n function baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n }\n\n /**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\n function baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n }\n\n /**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\n function baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n }\n\n /**\n * The base implementation of `_.isRegExp` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n */\n function baseIsRegExp(value) {\n return isObjectLike(value) && baseGetTag(value) == regexpTag;\n }\n\n /**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\n function baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n }\n\n /**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\n function baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n }\n\n /**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\n function baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n }\n\n /**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\n function baseLt(value, other) {\n return value < other;\n }\n\n /**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n }\n\n /**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n }\n\n /**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n }\n\n /**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n }\n\n /**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n }\n\n /**\n * The base implementation of `_.nth` which doesn't coerce arguments.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {number} n The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n */\n function baseNth(array, n) {\n var length = array.length;\n if (!length) {\n return;\n }\n n += n < 0 ? length : 0;\n return isIndex(n, length) ? array[n] : undefined;\n }\n\n /**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\n function baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n }\n\n /**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\n function basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n }\n\n /**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\n function basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n }\n\n /**\n * The base implementation of `_.pullAllBy` without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n */\n function basePullAll(array, values, iteratee, comparator) {\n var indexOf = comparator ? baseIndexOfWith : baseIndexOf,\n index = -1,\n length = values.length,\n seen = array;\n\n if (array === values) {\n values = copyArray(values);\n }\n if (iteratee) {\n seen = arrayMap(array, baseUnary(iteratee));\n }\n while (++index < length) {\n var fromIndex = 0,\n value = values[index],\n computed = iteratee ? iteratee(value) : value;\n\n while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {\n if (seen !== array) {\n splice.call(seen, fromIndex, 1);\n }\n splice.call(array, fromIndex, 1);\n }\n }\n return array;\n }\n\n /**\n * The base implementation of `_.pullAt` without support for individual\n * indexes or capturing the removed elements.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {number[]} indexes The indexes of elements to remove.\n * @returns {Array} Returns `array`.\n */\n function basePullAt(array, indexes) {\n var length = array ? indexes.length : 0,\n lastIndex = length - 1;\n\n while (length--) {\n var index = indexes[length];\n if (length == lastIndex || index !== previous) {\n var previous = index;\n if (isIndex(index)) {\n splice.call(array, index, 1);\n } else {\n baseUnset(array, index);\n }\n }\n }\n return array;\n }\n\n /**\n * The base implementation of `_.random` without support for returning\n * floating-point numbers.\n *\n * @private\n * @param {number} lower The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the random number.\n */\n function baseRandom(lower, upper) {\n return lower + nativeFloor(nativeRandom() * (upper - lower + 1));\n }\n\n /**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\n function baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n }\n\n /**\n * The base implementation of `_.repeat` which doesn't coerce arguments.\n *\n * @private\n * @param {string} string The string to repeat.\n * @param {number} n The number of times to repeat the string.\n * @returns {string} Returns the repeated string.\n */\n function baseRepeat(string, n) {\n var result = '';\n if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n return result;\n }\n // Leverage the exponentiation by squaring algorithm for a faster repeat.\n // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.\n do {\n if (n % 2) {\n result += string;\n }\n n = nativeFloor(n / 2);\n if (n) {\n string += string;\n }\n } while (n);\n\n return result;\n }\n\n /**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\n function baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n }\n\n /**\n * The base implementation of `_.sample`.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n */\n function baseSample(collection) {\n return arraySample(values(collection));\n }\n\n /**\n * The base implementation of `_.sampleSize` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n function baseSampleSize(collection, n) {\n var array = values(collection);\n return shuffleSelf(array, baseClamp(n, 0, array.length));\n }\n\n /**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n }\n\n /**\n * The base implementation of `setData` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n var baseSetData = !metaMap ? identity : function(func, data) {\n metaMap.set(func, data);\n return func;\n };\n\n /**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n };\n\n /**\n * The base implementation of `_.shuffle`.\n *\n * @private\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n function baseShuffle(collection) {\n return shuffleSelf(values(collection));\n }\n\n /**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n }\n\n /**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n }\n\n /**\n * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which\n * performs a binary search of `array` to determine the index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n function baseSortedIndex(array, value, retHighest) {\n var low = 0,\n high = array == null ? low : array.length;\n\n if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) {\n while (low < high) {\n var mid = (low + high) >>> 1,\n computed = array[mid];\n\n if (computed !== null && !isSymbol(computed) &&\n (retHighest ? (computed <= value) : (computed < value))) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return high;\n }\n return baseSortedIndexBy(array, value, identity, retHighest);\n }\n\n /**\n * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy`\n * which invokes `iteratee` for `value` and each element of `array` to compute\n * their sort ranking. The iteratee is invoked with one argument; (value).\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} iteratee The iteratee invoked per element.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n function baseSortedIndexBy(array, value, iteratee, retHighest) {\n var low = 0,\n high = array == null ? 0 : array.length;\n if (high === 0) {\n return 0;\n }\n\n value = iteratee(value);\n var valIsNaN = value !== value,\n valIsNull = value === null,\n valIsSymbol = isSymbol(value),\n valIsUndefined = value === undefined;\n\n while (low < high) {\n var mid = nativeFloor((low + high) / 2),\n computed = iteratee(array[mid]),\n othIsDefined = computed !== undefined,\n othIsNull = computed === null,\n othIsReflexive = computed === computed,\n othIsSymbol = isSymbol(computed);\n\n if (valIsNaN) {\n var setLow = retHighest || othIsReflexive;\n } else if (valIsUndefined) {\n setLow = othIsReflexive && (retHighest || othIsDefined);\n } else if (valIsNull) {\n setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);\n } else if (valIsSymbol) {\n setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);\n } else if (othIsNull || othIsSymbol) {\n setLow = false;\n } else {\n setLow = retHighest ? (computed <= value) : (computed < value);\n }\n if (setLow) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return nativeMin(high, MAX_ARRAY_INDEX);\n }\n\n /**\n * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n function baseSortedUniq(array, iteratee) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n if (!index || !eq(computed, seen)) {\n var seen = computed;\n result[resIndex++] = value === 0 ? 0 : value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.toNumber` which doesn't ensure correct\n * conversions of binary, hexadecimal, or octal string values.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n */\n function baseToNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n return +value;\n }\n\n /**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\n function baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n }\n\n /**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n function baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\n function baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n }\n\n /**\n * The base implementation of `_.update`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to update.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseUpdate(object, path, updater, customizer) {\n return baseSet(object, path, updater(baseGet(object, path)), customizer);\n }\n\n /**\n * The base implementation of methods like `_.dropWhile` and `_.takeWhile`\n * without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {Function} predicate The function invoked per iteration.\n * @param {boolean} [isDrop] Specify dropping elements instead of taking them.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseWhile(array, predicate, isDrop, fromRight) {\n var length = array.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length) &&\n predicate(array[index], index, array)) {}\n\n return isDrop\n ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length))\n : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index));\n }\n\n /**\n * The base implementation of `wrapperValue` which returns the result of\n * performing a sequence of actions on the unwrapped `value`, where each\n * successive action is supplied the return value of the previous.\n *\n * @private\n * @param {*} value The unwrapped value.\n * @param {Array} actions Actions to perform to resolve the unwrapped value.\n * @returns {*} Returns the resolved value.\n */\n function baseWrapperValue(value, actions) {\n var result = value;\n if (result instanceof LazyWrapper) {\n result = result.value();\n }\n return arrayReduce(actions, function(result, action) {\n return action.func.apply(action.thisArg, arrayPush([result], action.args));\n }, result);\n }\n\n /**\n * The base implementation of methods like `_.xor`, without support for\n * iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of values.\n */\n function baseXor(arrays, iteratee, comparator) {\n var length = arrays.length;\n if (length < 2) {\n return length ? baseUniq(arrays[0]) : [];\n }\n var index = -1,\n result = Array(length);\n\n while (++index < length) {\n var array = arrays[index],\n othIndex = -1;\n\n while (++othIndex < length) {\n if (othIndex != index) {\n result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);\n }\n }\n }\n return baseUniq(baseFlatten(result, 1), iteratee, comparator);\n }\n\n /**\n * This base implementation of `_.zipObject` which assigns values using `assignFunc`.\n *\n * @private\n * @param {Array} props The property identifiers.\n * @param {Array} values The property values.\n * @param {Function} assignFunc The function to assign values.\n * @returns {Object} Returns the new object.\n */\n function baseZipObject(props, values, assignFunc) {\n var index = -1,\n length = props.length,\n valsLength = values.length,\n result = {};\n\n while (++index < length) {\n var value = index < valsLength ? values[index] : undefined;\n assignFunc(result, props[index], value);\n }\n return result;\n }\n\n /**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\n function castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n }\n\n /**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\n function castFunction(value) {\n return typeof value == 'function' ? value : identity;\n }\n\n /**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\n function castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n }\n\n /**\n * A `baseRest` alias which can be replaced with `identity` by module\n * replacement plugins.\n *\n * @private\n * @type {Function}\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n var castRest = baseRest;\n\n /**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\n function castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n }\n\n /**\n * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout).\n *\n * @private\n * @param {number|Object} id The timer id or timeout object of the timer to clear.\n */\n var clearTimeout = ctxClearTimeout || function(id) {\n return root.clearTimeout(id);\n };\n\n /**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\n function cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n }\n\n /**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\n function cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n }\n\n /**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\n function cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n }\n\n /**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\n function cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n }\n\n /**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\n function cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n }\n\n /**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\n function cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n }\n\n /**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\n function compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n }\n\n /**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\n function compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n }\n\n /**\n * Creates an array that is the composition of partially applied arguments,\n * placeholders, and provided arguments into a single array of arguments.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to prepend to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n function composeArgs(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersLength = holders.length,\n leftIndex = -1,\n leftLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(leftLength + rangeLength),\n isUncurried = !isCurried;\n\n while (++leftIndex < leftLength) {\n result[leftIndex] = partials[leftIndex];\n }\n while (++argsIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[holders[argsIndex]] = args[argsIndex];\n }\n }\n while (rangeLength--) {\n result[leftIndex++] = args[argsIndex++];\n }\n return result;\n }\n\n /**\n * This function is like `composeArgs` except that the arguments composition\n * is tailored for `_.partialRight`.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to append to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n function composeArgsRight(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersIndex = -1,\n holdersLength = holders.length,\n rightIndex = -1,\n rightLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(rangeLength + rightLength),\n isUncurried = !isCurried;\n\n while (++argsIndex < rangeLength) {\n result[argsIndex] = args[argsIndex];\n }\n var offset = argsIndex;\n while (++rightIndex < rightLength) {\n result[offset + rightIndex] = partials[rightIndex];\n }\n while (++holdersIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[offset + holders[holdersIndex]] = args[argsIndex++];\n }\n }\n return result;\n }\n\n /**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\n function copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n }\n\n /**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\n function copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n }\n\n /**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n function copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n }\n\n /**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n function copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n }\n\n /**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\n function createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, getIteratee(iteratee, 2), accumulator);\n };\n }\n\n /**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\n function createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n }\n\n /**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n }\n\n /**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the optional `this`\n * binding of `thisArg`.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createBind(func, bitmask, thisArg) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return fn.apply(isBind ? thisArg : this, arguments);\n }\n return wrapper;\n }\n\n /**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\n function createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n }\n\n /**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\n function createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n }\n\n /**\n * Creates a function that produces an instance of `Ctor` regardless of\n * whether it was invoked as part of a `new` expression or by `call` or `apply`.\n *\n * @private\n * @param {Function} Ctor The constructor to wrap.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCtor(Ctor) {\n return function() {\n // Use a `switch` statement to work with class constructors. See\n // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist\n // for more details.\n var args = arguments;\n switch (args.length) {\n case 0: return new Ctor;\n case 1: return new Ctor(args[0]);\n case 2: return new Ctor(args[0], args[1]);\n case 3: return new Ctor(args[0], args[1], args[2]);\n case 4: return new Ctor(args[0], args[1], args[2], args[3]);\n case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);\n case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);\n case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);\n }\n var thisBinding = baseCreate(Ctor.prototype),\n result = Ctor.apply(thisBinding, args);\n\n // Mimic the constructor's `return` behavior.\n // See https://es5.github.io/#x13.2.2 for more details.\n return isObject(result) ? result : thisBinding;\n };\n }\n\n /**\n * Creates a function that wraps `func` to enable currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {number} arity The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCurry(func, bitmask, arity) {\n var Ctor = createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length,\n placeholder = getHolder(wrapper);\n\n while (index--) {\n args[index] = arguments[index];\n }\n var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder)\n ? []\n : replaceHolders(args, placeholder);\n\n length -= holders.length;\n if (length < arity) {\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, undefined,\n args, holders, undefined, undefined, arity - length);\n }\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return apply(fn, this, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\n function createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = getIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n }\n\n /**\n * Creates a `_.flow` or `_.flowRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new flow function.\n */\n function createFlow(fromRight) {\n return flatRest(function(funcs) {\n var length = funcs.length,\n index = length,\n prereq = LodashWrapper.prototype.thru;\n\n if (fromRight) {\n funcs.reverse();\n }\n while (index--) {\n var func = funcs[index];\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (prereq && !wrapper && getFuncName(func) == 'wrapper') {\n var wrapper = new LodashWrapper([], true);\n }\n }\n index = wrapper ? index : length;\n while (++index < length) {\n func = funcs[index];\n\n var funcName = getFuncName(func),\n data = funcName == 'wrapper' ? getData(func) : undefined;\n\n if (data && isLaziable(data[0]) &&\n data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) &&\n !data[4].length && data[9] == 1\n ) {\n wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);\n } else {\n wrapper = (func.length == 1 && isLaziable(func))\n ? wrapper[funcName]()\n : wrapper.thru(func);\n }\n }\n return function() {\n var args = arguments,\n value = args[0];\n\n if (wrapper && args.length == 1 && isArray(value)) {\n return wrapper.plant(value).value();\n }\n var index = 0,\n result = length ? funcs[index].apply(this, args) : value;\n\n while (++index < length) {\n result = funcs[index].call(this, result);\n }\n return result;\n };\n });\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with optional `this`\n * binding of `thisArg`, partial application, and currying.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [partialsRight] The arguments to append to those provided\n * to the new function.\n * @param {Array} [holdersRight] The `partialsRight` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {\n var isAry = bitmask & WRAP_ARY_FLAG,\n isBind = bitmask & WRAP_BIND_FLAG,\n isBindKey = bitmask & WRAP_BIND_KEY_FLAG,\n isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),\n isFlip = bitmask & WRAP_FLIP_FLAG,\n Ctor = isBindKey ? undefined : createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length;\n\n while (index--) {\n args[index] = arguments[index];\n }\n if (isCurried) {\n var placeholder = getHolder(wrapper),\n holdersCount = countHolders(args, placeholder);\n }\n if (partials) {\n args = composeArgs(args, partials, holders, isCurried);\n }\n if (partialsRight) {\n args = composeArgsRight(args, partialsRight, holdersRight, isCurried);\n }\n length -= holdersCount;\n if (isCurried && length < arity) {\n var newHolders = replaceHolders(args, placeholder);\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, thisArg,\n args, newHolders, argPos, ary, arity - length\n );\n }\n var thisBinding = isBind ? thisArg : this,\n fn = isBindKey ? thisBinding[func] : func;\n\n length = args.length;\n if (argPos) {\n args = reorder(args, argPos);\n } else if (isFlip && length > 1) {\n args.reverse();\n }\n if (isAry && ary < length) {\n args.length = ary;\n }\n if (this && this !== root && this instanceof wrapper) {\n fn = Ctor || createCtor(fn);\n }\n return fn.apply(thisBinding, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a function like `_.invertBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} toIteratee The function to resolve iteratees.\n * @returns {Function} Returns the new inverter function.\n */\n function createInverter(setter, toIteratee) {\n return function(object, iteratee) {\n return baseInverter(object, setter, toIteratee(iteratee), {});\n };\n }\n\n /**\n * Creates a function that performs a mathematical operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @param {number} [defaultValue] The value used for `undefined` arguments.\n * @returns {Function} Returns the new mathematical operation function.\n */\n function createMathOperation(operator, defaultValue) {\n return function(value, other) {\n var result;\n if (value === undefined && other === undefined) {\n return defaultValue;\n }\n if (value !== undefined) {\n result = value;\n }\n if (other !== undefined) {\n if (result === undefined) {\n return other;\n }\n if (typeof value == 'string' || typeof other == 'string') {\n value = baseToString(value);\n other = baseToString(other);\n } else {\n value = baseToNumber(value);\n other = baseToNumber(other);\n }\n result = operator(value, other);\n }\n return result;\n };\n }\n\n /**\n * Creates a function like `_.over`.\n *\n * @private\n * @param {Function} arrayFunc The function to iterate over iteratees.\n * @returns {Function} Returns the new over function.\n */\n function createOver(arrayFunc) {\n return flatRest(function(iteratees) {\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n return baseRest(function(args) {\n var thisArg = this;\n return arrayFunc(iteratees, function(iteratee) {\n return apply(iteratee, thisArg, args);\n });\n });\n });\n }\n\n /**\n * Creates the padding for `string` based on `length`. The `chars` string\n * is truncated if the number of characters exceeds `length`.\n *\n * @private\n * @param {number} length The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padding for `string`.\n */\n function createPadding(length, chars) {\n chars = chars === undefined ? ' ' : baseToString(chars);\n\n var charsLength = chars.length;\n if (charsLength < 2) {\n return charsLength ? baseRepeat(chars, length) : chars;\n }\n var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));\n return hasUnicode(chars)\n ? castSlice(stringToArray(result), 0, length).join('')\n : result.slice(0, length);\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the `this` binding\n * of `thisArg` and `partials` prepended to the arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} partials The arguments to prepend to those provided to\n * the new function.\n * @returns {Function} Returns the new wrapped function.\n */\n function createPartial(func, bitmask, thisArg, partials) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var argsIndex = -1,\n argsLength = arguments.length,\n leftIndex = -1,\n leftLength = partials.length,\n args = Array(leftLength + argsLength),\n fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n\n while (++leftIndex < leftLength) {\n args[leftIndex] = partials[leftIndex];\n }\n while (argsLength--) {\n args[leftIndex++] = arguments[++argsIndex];\n }\n return apply(fn, isBind ? thisArg : this, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\n function createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n }\n\n /**\n * Creates a function that performs a relational operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @returns {Function} Returns the new relational operation function.\n */\n function createRelationalOperation(operator) {\n return function(value, other) {\n if (!(typeof value == 'string' && typeof other == 'string')) {\n value = toNumber(value);\n other = toNumber(other);\n }\n return operator(value, other);\n };\n }\n\n /**\n * Creates a function that wraps `func` to continue currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {Function} wrapFunc The function to create the `func` wrapper.\n * @param {*} placeholder The placeholder value.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {\n var isCurry = bitmask & WRAP_CURRY_FLAG,\n newHolders = isCurry ? holders : undefined,\n newHoldersRight = isCurry ? undefined : holders,\n newPartials = isCurry ? partials : undefined,\n newPartialsRight = isCurry ? undefined : partials;\n\n bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG);\n bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);\n\n if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {\n bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);\n }\n var newData = [\n func, bitmask, thisArg, newPartials, newHolders, newPartialsRight,\n newHoldersRight, argPos, ary, arity\n ];\n\n var result = wrapFunc.apply(undefined, newData);\n if (isLaziable(func)) {\n setData(result, newData);\n }\n result.placeholder = placeholder;\n return setWrapToString(result, func, bitmask);\n }\n\n /**\n * Creates a function like `_.round`.\n *\n * @private\n * @param {string} methodName The name of the `Math` method to use when rounding.\n * @returns {Function} Returns the new round function.\n */\n function createRound(methodName) {\n var func = Math[methodName];\n return function(number, precision) {\n number = toNumber(number);\n precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);\n if (precision && nativeIsFinite(number)) {\n // Shift with exponential notation to avoid floating-point issues.\n // See [MDN](https://mdn.io/round#Examples) for more details.\n var pair = (toString(number) + 'e').split('e'),\n value = func(pair[0] + 'e' + (+pair[1] + precision));\n\n pair = (toString(value) + 'e').split('e');\n return +(pair[0] + 'e' + (+pair[1] - precision));\n }\n return func(number);\n };\n }\n\n /**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\n var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n };\n\n /**\n * Creates a `_.toPairs` or `_.toPairsIn` function.\n *\n * @private\n * @param {Function} keysFunc The function to get the keys of a given object.\n * @returns {Function} Returns the new pairs function.\n */\n function createToPairs(keysFunc) {\n return function(object) {\n var tag = getTag(object);\n if (tag == mapTag) {\n return mapToArray(object);\n }\n if (tag == setTag) {\n return setToPairs(object);\n }\n return baseToPairs(object, keysFunc(object));\n };\n }\n\n /**\n * Creates a function that either curries or invokes `func` with optional\n * `this` binding and partially applied arguments.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags.\n * 1 - `_.bind`\n * 2 - `_.bindKey`\n * 4 - `_.curry` or `_.curryRight` of a bound function\n * 8 - `_.curry`\n * 16 - `_.curryRight`\n * 32 - `_.partial`\n * 64 - `_.partialRight`\n * 128 - `_.rearg`\n * 256 - `_.ary`\n * 512 - `_.flip`\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to be partially applied.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {\n var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;\n if (!isBindKey && typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var length = partials ? partials.length : 0;\n if (!length) {\n bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);\n partials = holders = undefined;\n }\n ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);\n arity = arity === undefined ? arity : toInteger(arity);\n length -= holders ? holders.length : 0;\n\n if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {\n var partialsRight = partials,\n holdersRight = holders;\n\n partials = holders = undefined;\n }\n var data = isBindKey ? undefined : getData(func);\n\n var newData = [\n func, bitmask, thisArg, partials, holders, partialsRight, holdersRight,\n argPos, ary, arity\n ];\n\n if (data) {\n mergeData(newData, data);\n }\n func = newData[0];\n bitmask = newData[1];\n thisArg = newData[2];\n partials = newData[3];\n holders = newData[4];\n arity = newData[9] = newData[9] === undefined\n ? (isBindKey ? 0 : func.length)\n : nativeMax(newData[9] - length, 0);\n\n if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {\n bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);\n }\n if (!bitmask || bitmask == WRAP_BIND_FLAG) {\n var result = createBind(func, bitmask, thisArg);\n } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {\n result = createCurry(func, bitmask, arity);\n } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {\n result = createPartial(func, bitmask, thisArg, partials);\n } else {\n result = createHybrid.apply(undefined, newData);\n }\n var setter = data ? baseSetData : setData;\n return setWrapToString(setter(result, newData), func, bitmask);\n }\n\n /**\n * Used by `_.defaults` to customize its `_.assignIn` use to assign properties\n * of source objects to the destination object for all destination properties\n * that resolve to `undefined`.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to assign.\n * @param {Object} object The parent object of `objValue`.\n * @returns {*} Returns the value to assign.\n */\n function customDefaultsAssignIn(objValue, srcValue, key, object) {\n if (objValue === undefined ||\n (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n return srcValue;\n }\n return objValue;\n }\n\n /**\n * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source\n * objects into destination objects that are passed thru.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to merge.\n * @param {Object} object The parent object of `objValue`.\n * @param {Object} source The parent object of `srcValue`.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n * @returns {*} Returns the value to assign.\n */\n function customDefaultsMerge(objValue, srcValue, key, object, source, stack) {\n if (isObject(objValue) && isObject(srcValue)) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, objValue);\n baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack);\n stack['delete'](srcValue);\n }\n return objValue;\n }\n\n /**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\n function customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\n function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n }\n\n /**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n function flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n }\n\n /**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n }\n\n /**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n }\n\n /**\n * Gets metadata for `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {*} Returns the metadata for `func`.\n */\n var getData = !metaMap ? noop : function(func) {\n return metaMap.get(func);\n };\n\n /**\n * Gets the name of `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {string} Returns the function name.\n */\n function getFuncName(func) {\n var result = (func.name + ''),\n array = realNames[result],\n length = hasOwnProperty.call(realNames, result) ? array.length : 0;\n\n while (length--) {\n var data = array[length],\n otherFunc = data.func;\n if (otherFunc == null || otherFunc == func) {\n return data.name;\n }\n }\n return result;\n }\n\n /**\n * Gets the argument placeholder value for `func`.\n *\n * @private\n * @param {Function} func The function to inspect.\n * @returns {*} Returns the placeholder value.\n */\n function getHolder(func) {\n var object = hasOwnProperty.call(lodash, 'placeholder') ? lodash : func;\n return object.placeholder;\n }\n\n /**\n * Gets the appropriate \"iteratee\" function. If `_.iteratee` is customized,\n * this function returns the custom method, otherwise it returns `baseIteratee`.\n * If arguments are provided, the chosen function is invoked with them and\n * its result is returned.\n *\n * @private\n * @param {*} [value] The value to convert to an iteratee.\n * @param {number} [arity] The arity of the created iteratee.\n * @returns {Function} Returns the chosen function or its result.\n */\n function getIteratee() {\n var result = lodash.iteratee || iteratee;\n result = result === iteratee ? baseIteratee : result;\n return arguments.length ? result(arguments[0], arguments[1]) : result;\n }\n\n /**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\n function getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n }\n\n /**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\n function getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n }\n\n /**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\n function getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n }\n\n /**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\n function getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n }\n\n /**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n var getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n };\n\n /**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n };\n\n /**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n var getTag = baseGetTag;\n\n // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\n if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n }\n\n /**\n * Gets the view, applying any `transforms` to the `start` and `end` positions.\n *\n * @private\n * @param {number} start The start of the view.\n * @param {number} end The end of the view.\n * @param {Array} transforms The transformations to apply to the view.\n * @returns {Object} Returns an object containing the `start` and `end`\n * positions of the view.\n */\n function getView(start, end, transforms) {\n var index = -1,\n length = transforms.length;\n\n while (++index < length) {\n var data = transforms[index],\n size = data.size;\n\n switch (data.type) {\n case 'drop': start += size; break;\n case 'dropRight': end -= size; break;\n case 'take': end = nativeMin(end, start + size); break;\n case 'takeRight': start = nativeMax(start, end - size); break;\n }\n }\n return { 'start': start, 'end': end };\n }\n\n /**\n * Extracts wrapper details from the `source` body comment.\n *\n * @private\n * @param {string} source The source to inspect.\n * @returns {Array} Returns the wrapper details.\n */\n function getWrapDetails(source) {\n var match = source.match(reWrapDetails);\n return match ? match[1].split(reSplitDetails) : [];\n }\n\n /**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\n function hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n }\n\n /**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\n function initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n }\n\n /**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\n function initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n }\n\n /**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\n function initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n }\n\n /**\n * Inserts wrapper `details` in a comment at the top of the `source` body.\n *\n * @private\n * @param {string} source The source to modify.\n * @returns {Array} details The details to insert.\n * @returns {string} Returns the modified source.\n */\n function insertWrapDetails(source, details) {\n var length = details.length;\n if (!length) {\n return source;\n }\n var lastIndex = length - 1;\n details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex];\n details = details.join(length > 2 ? ', ' : ' ');\n return source.replace(reWrapComment, '{\\n/* [wrapped with ' + details + '] */\\n');\n }\n\n /**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\n function isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n }\n\n /**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\n function isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n }\n\n /**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\n function isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n }\n\n /**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\n function isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n }\n\n /**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\n function isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n }\n\n /**\n * Checks if `func` has a lazy counterpart.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` has a lazy counterpart,\n * else `false`.\n */\n function isLaziable(func) {\n var funcName = getFuncName(func),\n other = lodash[funcName];\n\n if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {\n return false;\n }\n if (func === other) {\n return true;\n }\n var data = getData(other);\n return !!data && func === data[0];\n }\n\n /**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\n function isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n }\n\n /**\n * Checks if `func` is capable of being masked.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `func` is maskable, else `false`.\n */\n var isMaskable = coreJsData ? isFunction : stubFalse;\n\n /**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\n function isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n }\n\n /**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\n function isStrictComparable(value) {\n return value === value && !isObject(value);\n }\n\n /**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n function matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n }\n\n /**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\n function memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n }\n\n /**\n * Merges the function metadata of `source` into `data`.\n *\n * Merging metadata reduces the number of wrappers used to invoke a function.\n * This is possible because methods like `_.bind`, `_.curry`, and `_.partial`\n * may be applied regardless of execution order. Methods like `_.ary` and\n * `_.rearg` modify function arguments, making the order in which they are\n * executed important, preventing the merging of metadata. However, we make\n * an exception for a safe combined case where curried functions have `_.ary`\n * and or `_.rearg` applied.\n *\n * @private\n * @param {Array} data The destination metadata.\n * @param {Array} source The source metadata.\n * @returns {Array} Returns `data`.\n */\n function mergeData(data, source) {\n var bitmask = data[1],\n srcBitmask = source[1],\n newBitmask = bitmask | srcBitmask,\n isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);\n\n var isCombo =\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) ||\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) ||\n ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG));\n\n // Exit early if metadata can't be merged.\n if (!(isCommon || isCombo)) {\n return data;\n }\n // Use source `thisArg` if available.\n if (srcBitmask & WRAP_BIND_FLAG) {\n data[2] = source[2];\n // Set when currying a bound function.\n newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;\n }\n // Compose partial arguments.\n var value = source[3];\n if (value) {\n var partials = data[3];\n data[3] = partials ? composeArgs(partials, value, source[4]) : value;\n data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];\n }\n // Compose partial right arguments.\n value = source[5];\n if (value) {\n partials = data[5];\n data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;\n data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];\n }\n // Use source `argPos` if available.\n value = source[7];\n if (value) {\n data[7] = value;\n }\n // Use source `ary` if it's smaller.\n if (srcBitmask & WRAP_ARY_FLAG) {\n data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);\n }\n // Use source `arity` if one is not provided.\n if (data[9] == null) {\n data[9] = source[9];\n }\n // Use source `func` and merge bitmasks.\n data[0] = source[0];\n data[1] = newBitmask;\n\n return data;\n }\n\n /**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\n function objectToString(value) {\n return nativeObjectToString.call(value);\n }\n\n /**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\n function overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n }\n\n /**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\n function parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n }\n\n /**\n * Reorder `array` according to the specified indexes where the element at\n * the first index is assigned as the first element, the element at\n * the second index is assigned as the second element, and so on.\n *\n * @private\n * @param {Array} array The array to reorder.\n * @param {Array} indexes The arranged array indexes.\n * @returns {Array} Returns `array`.\n */\n function reorder(array, indexes) {\n var arrLength = array.length,\n length = nativeMin(indexes.length, arrLength),\n oldArray = copyArray(array);\n\n while (length--) {\n var index = indexes[length];\n array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;\n }\n return array;\n }\n\n /**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n function safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n }\n\n /**\n * Sets metadata for `func`.\n *\n * **Note:** If this function becomes hot, i.e. is invoked a lot in a short\n * period of time, it will trip its breaker and transition to an identity\n * function to avoid garbage collection pauses in V8. See\n * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070)\n * for more details.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n var setData = shortOut(baseSetData);\n\n /**\n * A simple wrapper around the global [`setTimeout`](https://mdn.io/setTimeout).\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n var setTimeout = ctxSetTimeout || function(func, wait) {\n return root.setTimeout(func, wait);\n };\n\n /**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var setToString = shortOut(baseSetToString);\n\n /**\n * Sets the `toString` method of `wrapper` to mimic the source of `reference`\n * with wrapper details in a comment at the top of the source body.\n *\n * @private\n * @param {Function} wrapper The function to modify.\n * @param {Function} reference The reference function.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Function} Returns `wrapper`.\n */\n function setWrapToString(wrapper, reference, bitmask) {\n var source = (reference + '');\n return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));\n }\n\n /**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\n function shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n }\n\n /**\n * A specialized version of `_.shuffle` which mutates and sets the size of `array`.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @param {number} [size=array.length] The size of `array`.\n * @returns {Array} Returns `array`.\n */\n function shuffleSelf(array, size) {\n var index = -1,\n length = array.length,\n lastIndex = length - 1;\n\n size = size === undefined ? length : size;\n while (++index < size) {\n var rand = baseRandom(index, lastIndex),\n value = array[rand];\n\n array[rand] = array[index];\n array[index] = value;\n }\n array.length = size;\n return array;\n }\n\n /**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\n var stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n });\n\n /**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\n function toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n }\n\n /**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\n function toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n }\n\n /**\n * Updates wrapper `details` based on `bitmask` flags.\n *\n * @private\n * @returns {Array} details The details to modify.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Array} Returns `details`.\n */\n function updateWrapDetails(details, bitmask) {\n arrayEach(wrapFlags, function(pair) {\n var value = '_.' + pair[0];\n if ((bitmask & pair[1]) && !arrayIncludes(details, value)) {\n details.push(value);\n }\n });\n return details.sort();\n }\n\n /**\n * Creates a clone of `wrapper`.\n *\n * @private\n * @param {Object} wrapper The wrapper to clone.\n * @returns {Object} Returns the cloned wrapper.\n */\n function wrapperClone(wrapper) {\n if (wrapper instanceof LazyWrapper) {\n return wrapper.clone();\n }\n var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);\n result.__actions__ = copyArray(wrapper.__actions__);\n result.__index__ = wrapper.__index__;\n result.__values__ = wrapper.__values__;\n return result;\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array of elements split into groups the length of `size`.\n * If `array` can't be split evenly, the final chunk will be the remaining\n * elements.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to process.\n * @param {number} [size=1] The length of each chunk\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the new array of chunks.\n * @example\n *\n * _.chunk(['a', 'b', 'c', 'd'], 2);\n * // => [['a', 'b'], ['c', 'd']]\n *\n * _.chunk(['a', 'b', 'c', 'd'], 3);\n * // => [['a', 'b', 'c'], ['d']]\n */\n function chunk(array, size, guard) {\n if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {\n size = 1;\n } else {\n size = nativeMax(toInteger(size), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size < 1) {\n return [];\n }\n var index = 0,\n resIndex = 0,\n result = Array(nativeCeil(length / size));\n\n while (index < length) {\n result[resIndex++] = baseSlice(array, index, (index += size));\n }\n return result;\n }\n\n /**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\n function compact(array) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n\n /**\n * Creates a new array concatenating `array` with any additional arrays\n * and/or values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to concatenate.\n * @param {...*} [values] The values to concatenate.\n * @returns {Array} Returns the new concatenated array.\n * @example\n *\n * var array = [1];\n * var other = _.concat(array, 2, [3], [[4]]);\n *\n * console.log(other);\n * // => [1, 2, 3, [4]]\n *\n * console.log(array);\n * // => [1]\n */\n function concat() {\n var length = arguments.length;\n if (!length) {\n return [];\n }\n var args = Array(length - 1),\n array = arguments[0],\n index = length;\n\n while (index--) {\n args[index - 1] = arguments[index];\n }\n return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));\n }\n\n /**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\n var difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n });\n\n /**\n * This method is like `_.difference` except that it accepts `iteratee` which\n * is invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * **Note:** Unlike `_.pullAllBy`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n var differenceBy = baseRest(function(array, values) {\n var iteratee = last(values);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), getIteratee(iteratee, 2))\n : [];\n });\n\n /**\n * This method is like `_.difference` except that it accepts `comparator`\n * which is invoked to compare elements of `array` to `values`. The order and\n * references of result values are determined by the first array. The comparator\n * is invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.pullAllWith`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n *\n * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }]\n */\n var differenceWith = baseRest(function(array, values) {\n var comparator = last(values);\n if (isArrayLikeObject(comparator)) {\n comparator = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator)\n : [];\n });\n\n /**\n * Creates a slice of `array` with `n` elements dropped from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.drop([1, 2, 3]);\n * // => [2, 3]\n *\n * _.drop([1, 2, 3], 2);\n * // => [3]\n *\n * _.drop([1, 2, 3], 5);\n * // => []\n *\n * _.drop([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n function drop(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n\n /**\n * Creates a slice of `array` with `n` elements dropped from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.dropRight([1, 2, 3]);\n * // => [1, 2]\n *\n * _.dropRight([1, 2, 3], 2);\n * // => [1]\n *\n * _.dropRight([1, 2, 3], 5);\n * // => []\n *\n * _.dropRight([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n function dropRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n\n /**\n * Creates a slice of `array` excluding elements dropped from the end.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.dropRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropRightWhile(users, ['active', false]);\n * // => objects for ['barney']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropRightWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n function dropRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), true, true)\n : [];\n }\n\n /**\n * Creates a slice of `array` excluding elements dropped from the beginning.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.dropWhile(users, function(o) { return !o.active; });\n * // => objects for ['pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropWhile(users, ['active', false]);\n * // => objects for ['pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n function dropWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), true)\n : [];\n }\n\n /**\n * Fills elements of `array` with `value` from `start` up to, but not\n * including, `end`.\n *\n * **Note:** This method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Array\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.fill(array, 'a');\n * console.log(array);\n * // => ['a', 'a', 'a']\n *\n * _.fill(Array(3), 2);\n * // => [2, 2, 2]\n *\n * _.fill([4, 6, 8, 10], '*', 1, 3);\n * // => [4, '*', '*', 10]\n */\n function fill(array, value, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (start && typeof start != 'number' && isIterateeCall(array, value, start)) {\n start = 0;\n end = length;\n }\n return baseFill(array, value, start, end);\n }\n\n /**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\n function findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index);\n }\n\n /**\n * This method is like `_.findIndex` except that it iterates over elements\n * of `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; });\n * // => 2\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastIndex(users, { 'user': 'barney', 'active': true });\n * // => 0\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastIndex(users, ['active', false]);\n * // => 2\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastIndex(users, 'active');\n * // => 0\n */\n function findLastIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length - 1;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = fromIndex < 0\n ? nativeMax(length + index, 0)\n : nativeMin(index, length - 1);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index, true);\n }\n\n /**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\n function flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n }\n\n /**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\n function flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n }\n\n /**\n * Recursively flatten `array` up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * var array = [1, [2, [3, [4]], 5]];\n *\n * _.flattenDepth(array, 1);\n * // => [1, 2, [3, [4]], 5]\n *\n * _.flattenDepth(array, 2);\n * // => [1, 2, 3, [4], 5]\n */\n function flattenDepth(array, depth) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(array, depth);\n }\n\n /**\n * The inverse of `_.toPairs`; this method returns an object composed\n * from key-value `pairs`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} pairs The key-value pairs.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.fromPairs([['a', 1], ['b', 2]]);\n * // => { 'a': 1, 'b': 2 }\n */\n function fromPairs(pairs) {\n var index = -1,\n length = pairs == null ? 0 : pairs.length,\n result = {};\n\n while (++index < length) {\n var pair = pairs[index];\n result[pair[0]] = pair[1];\n }\n return result;\n }\n\n /**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\n function head(array) {\n return (array && array.length) ? array[0] : undefined;\n }\n\n /**\n * Gets the index at which the first occurrence of `value` is found in `array`\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. If `fromIndex` is negative, it's used as the\n * offset from the end of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.indexOf([1, 2, 1, 2], 2);\n * // => 1\n *\n * // Search from the `fromIndex`.\n * _.indexOf([1, 2, 1, 2], 2, 2);\n * // => 3\n */\n function indexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseIndexOf(array, value, index);\n }\n\n /**\n * Gets all but the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.initial([1, 2, 3]);\n * // => [1, 2]\n */\n function initial(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 0, -1) : [];\n }\n\n /**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\n var intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n });\n\n /**\n * This method is like `_.intersection` except that it accepts `iteratee`\n * which is invoked for each element of each `arrays` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [2.1]\n *\n * // The `_.property` iteratee shorthand.\n * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }]\n */\n var intersectionBy = baseRest(function(arrays) {\n var iteratee = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n if (iteratee === last(mapped)) {\n iteratee = undefined;\n } else {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, getIteratee(iteratee, 2))\n : [];\n });\n\n /**\n * This method is like `_.intersection` except that it accepts `comparator`\n * which is invoked to compare elements of `arrays`. The order and references\n * of result values are determined by the first array. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.intersectionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }]\n */\n var intersectionWith = baseRest(function(arrays) {\n var comparator = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n comparator = typeof comparator == 'function' ? comparator : undefined;\n if (comparator) {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, undefined, comparator)\n : [];\n });\n\n /**\n * Converts all elements in `array` into a string separated by `separator`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to convert.\n * @param {string} [separator=','] The element separator.\n * @returns {string} Returns the joined string.\n * @example\n *\n * _.join(['a', 'b', 'c'], '~');\n * // => 'a~b~c'\n */\n function join(array, separator) {\n return array == null ? '' : nativeJoin.call(array, separator);\n }\n\n /**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\n function last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n }\n\n /**\n * This method is like `_.indexOf` except that it iterates over elements of\n * `array` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.lastIndexOf([1, 2, 1, 2], 2);\n * // => 3\n *\n * // Search from the `fromIndex`.\n * _.lastIndexOf([1, 2, 1, 2], 2, 2);\n * // => 1\n */\n function lastIndexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);\n }\n return value === value\n ? strictLastIndexOf(array, value, index)\n : baseFindIndex(array, baseIsNaN, index, true);\n }\n\n /**\n * Gets the element at index `n` of `array`. If `n` is negative, the nth\n * element from the end is returned.\n *\n * @static\n * @memberOf _\n * @since 4.11.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=0] The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n *\n * _.nth(array, 1);\n * // => 'b'\n *\n * _.nth(array, -2);\n * // => 'c';\n */\n function nth(array, n) {\n return (array && array.length) ? baseNth(array, toInteger(n)) : undefined;\n }\n\n /**\n * Removes all given values from `array` using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove`\n * to remove elements from an array by predicate.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...*} [values] The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pull(array, 'a', 'c');\n * console.log(array);\n * // => ['b', 'b']\n */\n var pull = baseRest(pullAll);\n\n /**\n * This method is like `_.pull` except that it accepts an array of values to remove.\n *\n * **Note:** Unlike `_.difference`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pullAll(array, ['a', 'c']);\n * console.log(array);\n * // => ['b', 'b']\n */\n function pullAll(array, values) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values)\n : array;\n }\n\n /**\n * This method is like `_.pullAll` except that it accepts `iteratee` which is\n * invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The iteratee is invoked with one argument: (value).\n *\n * **Note:** Unlike `_.differenceBy`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];\n *\n * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');\n * console.log(array);\n * // => [{ 'x': 2 }]\n */\n function pullAllBy(array, values, iteratee) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, getIteratee(iteratee, 2))\n : array;\n }\n\n /**\n * This method is like `_.pullAll` except that it accepts `comparator` which\n * is invoked to compare elements of `array` to `values`. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.differenceWith`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];\n *\n * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);\n * console.log(array);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]\n */\n function pullAllWith(array, values, comparator) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, undefined, comparator)\n : array;\n }\n\n /**\n * Removes elements from `array` corresponding to `indexes` and returns an\n * array of removed elements.\n *\n * **Note:** Unlike `_.at`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...(number|number[])} [indexes] The indexes of elements to remove.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n * var pulled = _.pullAt(array, [1, 3]);\n *\n * console.log(array);\n * // => ['a', 'c']\n *\n * console.log(pulled);\n * // => ['b', 'd']\n */\n var pullAt = flatRest(function(array, indexes) {\n var length = array == null ? 0 : array.length,\n result = baseAt(array, indexes);\n\n basePullAt(array, arrayMap(indexes, function(index) {\n return isIndex(index, length) ? +index : index;\n }).sort(compareAscending));\n\n return result;\n });\n\n /**\n * Removes all elements from `array` that `predicate` returns truthy for\n * and returns an array of the removed elements. The predicate is invoked\n * with three arguments: (value, index, array).\n *\n * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`\n * to pull elements from an array by value.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = [1, 2, 3, 4];\n * var evens = _.remove(array, function(n) {\n * return n % 2 == 0;\n * });\n *\n * console.log(array);\n * // => [1, 3]\n *\n * console.log(evens);\n * // => [2, 4]\n */\n function remove(array, predicate) {\n var result = [];\n if (!(array && array.length)) {\n return result;\n }\n var index = -1,\n indexes = [],\n length = array.length;\n\n predicate = getIteratee(predicate, 3);\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result.push(value);\n indexes.push(index);\n }\n }\n basePullAt(array, indexes);\n return result;\n }\n\n /**\n * Reverses `array` so that the first element becomes the last, the second\n * element becomes the second to last, and so on.\n *\n * **Note:** This method mutates `array` and is based on\n * [`Array#reverse`](https://mdn.io/Array/reverse).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.reverse(array);\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n function reverse(array) {\n return array == null ? array : nativeReverse.call(array);\n }\n\n /**\n * Creates a slice of `array` from `start` up to, but not including, `end`.\n *\n * **Note:** This method is used instead of\n * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are\n * returned.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function slice(array, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {\n start = 0;\n end = length;\n }\n else {\n start = start == null ? 0 : toInteger(start);\n end = end === undefined ? length : toInteger(end);\n }\n return baseSlice(array, start, end);\n }\n\n /**\n * Uses a binary search to determine the lowest index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedIndex([30, 50], 40);\n * // => 1\n */\n function sortedIndex(array, value) {\n return baseSortedIndex(array, value);\n }\n\n /**\n * This method is like `_.sortedIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedIndexBy(objects, { 'x': 4 }, 'x');\n * // => 0\n */\n function sortedIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2));\n }\n\n /**\n * This method is like `_.indexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedIndexOf([4, 5, 5, 5, 6], 5);\n * // => 1\n */\n function sortedIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value);\n if (index < length && eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * This method is like `_.sortedIndex` except that it returns the highest\n * index at which `value` should be inserted into `array` in order to\n * maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedLastIndex([4, 5, 5, 5, 6], 5);\n * // => 4\n */\n function sortedLastIndex(array, value) {\n return baseSortedIndex(array, value, true);\n }\n\n /**\n * This method is like `_.sortedLastIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 1\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x');\n * // => 1\n */\n function sortedLastIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2), true);\n }\n\n /**\n * This method is like `_.lastIndexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5);\n * // => 3\n */\n function sortedLastIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value, true) - 1;\n if (eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * This method is like `_.uniq` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniq([1, 1, 2]);\n * // => [1, 2]\n */\n function sortedUniq(array) {\n return (array && array.length)\n ? baseSortedUniq(array)\n : [];\n }\n\n /**\n * This method is like `_.uniqBy` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);\n * // => [1.1, 2.3]\n */\n function sortedUniqBy(array, iteratee) {\n return (array && array.length)\n ? baseSortedUniq(array, getIteratee(iteratee, 2))\n : [];\n }\n\n /**\n * Gets all but the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.tail([1, 2, 3]);\n * // => [2, 3]\n */\n function tail(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 1, length) : [];\n }\n\n /**\n * Creates a slice of `array` with `n` elements taken from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.take([1, 2, 3]);\n * // => [1]\n *\n * _.take([1, 2, 3], 2);\n * // => [1, 2]\n *\n * _.take([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.take([1, 2, 3], 0);\n * // => []\n */\n function take(array, n, guard) {\n if (!(array && array.length)) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n\n /**\n * Creates a slice of `array` with `n` elements taken from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.takeRight([1, 2, 3]);\n * // => [3]\n *\n * _.takeRight([1, 2, 3], 2);\n * // => [2, 3]\n *\n * _.takeRight([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.takeRight([1, 2, 3], 0);\n * // => []\n */\n function takeRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n\n /**\n * Creates a slice of `array` with elements taken from the end. Elements are\n * taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.takeRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeRightWhile(users, ['active', false]);\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeRightWhile(users, 'active');\n * // => []\n */\n function takeRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), false, true)\n : [];\n }\n\n /**\n * Creates a slice of `array` with elements taken from the beginning. Elements\n * are taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.takeWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeWhile(users, ['active', false]);\n * // => objects for ['barney', 'fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeWhile(users, 'active');\n * // => []\n */\n function takeWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3))\n : [];\n }\n\n /**\n * Creates an array of unique values, in order, from all given arrays using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.union([2], [1, 2]);\n * // => [2, 1]\n */\n var union = baseRest(function(arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n });\n\n /**\n * This method is like `_.union` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which uniqueness is computed. Result values are chosen from the first\n * array in which the value occurs. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.unionBy([2.1], [1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n var unionBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee, 2));\n });\n\n /**\n * This method is like `_.union` except that it accepts `comparator` which\n * is invoked to compare elements of `arrays`. Result values are chosen from\n * the first array in which the value occurs. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.unionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n var unionWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator);\n });\n\n /**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\n function uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n }\n\n /**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n function uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, getIteratee(iteratee, 2)) : [];\n }\n\n /**\n * This method is like `_.uniq` except that it accepts `comparator` which\n * is invoked to compare elements of `array`. The order of result values is\n * determined by the order they occur in the array.The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.uniqWith(objects, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]\n */\n function uniqWith(array, comparator) {\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return (array && array.length) ? baseUniq(array, undefined, comparator) : [];\n }\n\n /**\n * This method is like `_.zip` except that it accepts an array of grouped\n * elements and creates an array regrouping the elements to their pre-zip\n * configuration.\n *\n * @static\n * @memberOf _\n * @since 1.2.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n *\n * _.unzip(zipped);\n * // => [['a', 'b'], [1, 2], [true, false]]\n */\n function unzip(array) {\n if (!(array && array.length)) {\n return [];\n }\n var length = 0;\n array = arrayFilter(array, function(group) {\n if (isArrayLikeObject(group)) {\n length = nativeMax(group.length, length);\n return true;\n }\n });\n return baseTimes(length, function(index) {\n return arrayMap(array, baseProperty(index));\n });\n }\n\n /**\n * This method is like `_.unzip` except that it accepts `iteratee` to specify\n * how regrouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * regrouped values.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip([1, 2], [10, 20], [100, 200]);\n * // => [[1, 10, 100], [2, 20, 200]]\n *\n * _.unzipWith(zipped, _.add);\n * // => [3, 30, 300]\n */\n function unzipWith(array, iteratee) {\n if (!(array && array.length)) {\n return [];\n }\n var result = unzip(array);\n if (iteratee == null) {\n return result;\n }\n return arrayMap(result, function(group) {\n return apply(iteratee, undefined, group);\n });\n }\n\n /**\n * Creates an array excluding all given values using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.pull`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...*} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.xor\n * @example\n *\n * _.without([2, 1, 2, 3], 1, 2);\n * // => [3]\n */\n var without = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, values)\n : [];\n });\n\n /**\n * Creates an array of unique values that is the\n * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)\n * of the given arrays. The order of result values is determined by the order\n * they occur in the arrays.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.without\n * @example\n *\n * _.xor([2, 1], [2, 3]);\n * // => [1, 3]\n */\n var xor = baseRest(function(arrays) {\n return baseXor(arrayFilter(arrays, isArrayLikeObject));\n });\n\n /**\n * This method is like `_.xor` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which by which they're compared. The order of result values is determined\n * by the order they occur in the arrays. The iteratee is invoked with one\n * argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2, 3.4]\n *\n * // The `_.property` iteratee shorthand.\n * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n var xorBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee, 2));\n });\n\n /**\n * This method is like `_.xor` except that it accepts `comparator` which is\n * invoked to compare elements of `arrays`. The order of result values is\n * determined by the order they occur in the arrays. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.xorWith(objects, others, _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n var xorWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator);\n });\n\n /**\n * Creates an array of grouped elements, the first of which contains the\n * first elements of the given arrays, the second of which contains the\n * second elements of the given arrays, and so on.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n */\n var zip = baseRest(unzip);\n\n /**\n * This method is like `_.fromPairs` except that it accepts two arrays,\n * one of property identifiers and one of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 0.4.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObject(['a', 'b'], [1, 2]);\n * // => { 'a': 1, 'b': 2 }\n */\n function zipObject(props, values) {\n return baseZipObject(props || [], values || [], assignValue);\n }\n\n /**\n * This method is like `_.zipObject` except that it supports property paths.\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]);\n * // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } }\n */\n function zipObjectDeep(props, values) {\n return baseZipObject(props || [], values || [], baseSet);\n }\n\n /**\n * This method is like `_.zip` except that it accepts `iteratee` to specify\n * how grouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * grouped values.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) {\n * return a + b + c;\n * });\n * // => [111, 222]\n */\n var zipWith = baseRest(function(arrays) {\n var length = arrays.length,\n iteratee = length > 1 ? arrays[length - 1] : undefined;\n\n iteratee = typeof iteratee == 'function' ? (arrays.pop(), iteratee) : undefined;\n return unzipWith(arrays, iteratee);\n });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` wrapper instance that wraps `value` with explicit method\n * chain sequences enabled. The result of such sequences must be unwrapped\n * with `_#value`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Seq\n * @param {*} value The value to wrap.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'pebbles', 'age': 1 }\n * ];\n *\n * var youngest = _\n * .chain(users)\n * .sortBy('age')\n * .map(function(o) {\n * return o.user + ' is ' + o.age;\n * })\n * .head()\n * .value();\n * // => 'pebbles is 1'\n */\n function chain(value) {\n var result = lodash(value);\n result.__chain__ = true;\n return result;\n }\n\n /**\n * This method invokes `interceptor` and returns `value`. The interceptor\n * is invoked with one argument; (value). The purpose of this method is to\n * \"tap into\" a method chain sequence in order to modify intermediate results.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns `value`.\n * @example\n *\n * _([1, 2, 3])\n * .tap(function(array) {\n * // Mutate input array.\n * array.pop();\n * })\n * .reverse()\n * .value();\n * // => [2, 1]\n */\n function tap(value, interceptor) {\n interceptor(value);\n return value;\n }\n\n /**\n * This method is like `_.tap` except that it returns the result of `interceptor`.\n * The purpose of this method is to \"pass thru\" values replacing intermediate\n * results in a method chain sequence.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns the result of `interceptor`.\n * @example\n *\n * _(' abc ')\n * .chain()\n * .trim()\n * .thru(function(value) {\n * return [value];\n * })\n * .value();\n * // => ['abc']\n */\n function thru(value, interceptor) {\n return interceptor(value);\n }\n\n /**\n * This method is the wrapper version of `_.at`.\n *\n * @name at\n * @memberOf _\n * @since 1.0.0\n * @category Seq\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _(object).at(['a[0].b.c', 'a[1]']).value();\n * // => [3, 4]\n */\n var wrapperAt = flatRest(function(paths) {\n var length = paths.length,\n start = length ? paths[0] : 0,\n value = this.__wrapped__,\n interceptor = function(object) { return baseAt(object, paths); };\n\n if (length > 1 || this.__actions__.length ||\n !(value instanceof LazyWrapper) || !isIndex(start)) {\n return this.thru(interceptor);\n }\n value = value.slice(start, +start + (length ? 1 : 0));\n value.__actions__.push({\n 'func': thru,\n 'args': [interceptor],\n 'thisArg': undefined\n });\n return new LodashWrapper(value, this.__chain__).thru(function(array) {\n if (length && !array.length) {\n array.push(undefined);\n }\n return array;\n });\n });\n\n /**\n * Creates a `lodash` wrapper instance with explicit method chain sequences enabled.\n *\n * @name chain\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 }\n * ];\n *\n * // A sequence without explicit chaining.\n * _(users).head();\n * // => { 'user': 'barney', 'age': 36 }\n *\n * // A sequence with explicit chaining.\n * _(users)\n * .chain()\n * .head()\n * .pick('user')\n * .value();\n * // => { 'user': 'barney' }\n */\n function wrapperChain() {\n return chain(this);\n }\n\n /**\n * Executes the chain sequence and returns the wrapped result.\n *\n * @name commit\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2];\n * var wrapped = _(array).push(3);\n *\n * console.log(array);\n * // => [1, 2]\n *\n * wrapped = wrapped.commit();\n * console.log(array);\n * // => [1, 2, 3]\n *\n * wrapped.last();\n * // => 3\n *\n * console.log(array);\n * // => [1, 2, 3]\n */\n function wrapperCommit() {\n return new LodashWrapper(this.value(), this.__chain__);\n }\n\n /**\n * Gets the next value on a wrapped object following the\n * [iterator protocol](https://mdn.io/iteration_protocols#iterator).\n *\n * @name next\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the next iterator value.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 1 }\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 2 }\n *\n * wrapped.next();\n * // => { 'done': true, 'value': undefined }\n */\n function wrapperNext() {\n if (this.__values__ === undefined) {\n this.__values__ = toArray(this.value());\n }\n var done = this.__index__ >= this.__values__.length,\n value = done ? undefined : this.__values__[this.__index__++];\n\n return { 'done': done, 'value': value };\n }\n\n /**\n * Enables the wrapper to be iterable.\n *\n * @name Symbol.iterator\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the wrapper object.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped[Symbol.iterator]() === wrapped;\n * // => true\n *\n * Array.from(wrapped);\n * // => [1, 2]\n */\n function wrapperToIterator() {\n return this;\n }\n\n /**\n * Creates a clone of the chain sequence planting `value` as the wrapped value.\n *\n * @name plant\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @param {*} value The value to plant.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2]).map(square);\n * var other = wrapped.plant([3, 4]);\n *\n * other.value();\n * // => [9, 16]\n *\n * wrapped.value();\n * // => [1, 4]\n */\n function wrapperPlant(value) {\n var result,\n parent = this;\n\n while (parent instanceof baseLodash) {\n var clone = wrapperClone(parent);\n clone.__index__ = 0;\n clone.__values__ = undefined;\n if (result) {\n previous.__wrapped__ = clone;\n } else {\n result = clone;\n }\n var previous = clone;\n parent = parent.__wrapped__;\n }\n previous.__wrapped__ = value;\n return result;\n }\n\n /**\n * This method is the wrapper version of `_.reverse`.\n *\n * **Note:** This method mutates the wrapped array.\n *\n * @name reverse\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _(array).reverse().value()\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n function wrapperReverse() {\n var value = this.__wrapped__;\n if (value instanceof LazyWrapper) {\n var wrapped = value;\n if (this.__actions__.length) {\n wrapped = new LazyWrapper(this);\n }\n wrapped = wrapped.reverse();\n wrapped.__actions__.push({\n 'func': thru,\n 'args': [reverse],\n 'thisArg': undefined\n });\n return new LodashWrapper(wrapped, this.__chain__);\n }\n return this.thru(reverse);\n }\n\n /**\n * Executes the chain sequence to resolve the unwrapped value.\n *\n * @name value\n * @memberOf _\n * @since 0.1.0\n * @alias toJSON, valueOf\n * @category Seq\n * @returns {*} Returns the resolved unwrapped value.\n * @example\n *\n * _([1, 2, 3]).value();\n * // => [1, 2, 3]\n */\n function wrapperValue() {\n return baseWrapperValue(this.__wrapped__, this.__actions__);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the number of times the key was returned by `iteratee`. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.countBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': 1, '6': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.countBy(['one', 'two', 'three'], 'length');\n * // => { '3': 2, '5': 1 }\n */\n var countBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n ++result[key];\n } else {\n baseAssignValue(result, key, 1);\n }\n });\n\n /**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\n function every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\n function filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\n var find = createFind(findIndex);\n\n /**\n * This method is like `_.find` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=collection.length-1] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * _.findLast([1, 2, 3, 4], function(n) {\n * return n % 2 == 1;\n * });\n * // => 3\n */\n var findLast = createFind(findLastIndex);\n\n /**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n function flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n }\n\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDeep([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n function flatMapDeep(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), INFINITY);\n }\n\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDepth([1, 2], duplicate, 2);\n * // => [[1, 1], [2, 2]]\n */\n function flatMapDepth(collection, iteratee, depth) {\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(map(collection, iteratee), depth);\n }\n\n /**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.forEach` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @alias eachRight\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEach\n * @example\n *\n * _.forEachRight([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `2` then `1`.\n */\n function forEachRight(collection, iteratee) {\n var func = isArray(collection) ? arrayEachRight : baseEachRight;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\n var groupBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n baseAssignValue(result, key, [value]);\n }\n });\n\n /**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\n function includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n }\n\n /**\n * Invokes the method at `path` of each element in `collection`, returning\n * an array of the results of each invoked method. Any additional arguments\n * are provided to each invoked method. If `path` is a function, it's invoked\n * for, and `this` bound to, each element in `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array|Function|string} path The path of the method to invoke or\n * the function invoked per iteration.\n * @param {...*} [args] The arguments to invoke each method with.\n * @returns {Array} Returns the array of results.\n * @example\n *\n * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort');\n * // => [[1, 5, 7], [1, 2, 3]]\n *\n * _.invokeMap([123, 456], String.prototype.split, '');\n * // => [['1', '2', '3'], ['4', '5', '6']]\n */\n var invokeMap = baseRest(function(collection, path, args) {\n var index = -1,\n isFunc = typeof path == 'function',\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value) {\n result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args);\n });\n return result;\n });\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the last element responsible for generating the key. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * var array = [\n * { 'dir': 'left', 'code': 97 },\n * { 'dir': 'right', 'code': 100 }\n * ];\n *\n * _.keyBy(array, function(o) {\n * return String.fromCharCode(o.code);\n * });\n * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }\n *\n * _.keyBy(array, 'dir');\n * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }\n */\n var keyBy = createAggregator(function(result, value, key) {\n baseAssignValue(result, key, value);\n });\n\n /**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\n function map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.sortBy` except that it allows specifying the sort\n * orders of the iteratees to sort by. If `orders` is unspecified, all values\n * are sorted in ascending order. Otherwise, specify an order of \"desc\" for\n * descending or \"asc\" for ascending sort order of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @param {string[]} [orders] The sort orders of `iteratees`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 34 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 36 }\n * ];\n *\n * // Sort by `user` in ascending order and by `age` in descending order.\n * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\n function orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n orders = guard ? undefined : orders;\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n return baseOrderBy(collection, iteratees, orders);\n }\n\n /**\n * Creates an array of elements split into two groups, the first of which\n * contains elements `predicate` returns truthy for, the second of which\n * contains elements `predicate` returns falsey for. The predicate is\n * invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the array of grouped elements.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true },\n * { 'user': 'pebbles', 'age': 1, 'active': false }\n * ];\n *\n * _.partition(users, function(o) { return o.active; });\n * // => objects for [['fred'], ['barney', 'pebbles']]\n *\n * // The `_.matches` iteratee shorthand.\n * _.partition(users, { 'age': 1, 'active': false });\n * // => objects for [['pebbles'], ['barney', 'fred']]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.partition(users, ['active', false]);\n * // => objects for [['barney', 'pebbles'], ['fred']]\n *\n * // The `_.property` iteratee shorthand.\n * _.partition(users, 'active');\n * // => objects for [['fred'], ['barney', 'pebbles']]\n */\n var partition = createAggregator(function(result, value, key) {\n result[key ? 0 : 1].push(value);\n }, function() { return [[], []]; });\n\n /**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\n function reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n }\n\n /**\n * This method is like `_.reduce` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduce\n * @example\n *\n * var array = [[0, 1], [2, 3], [4, 5]];\n *\n * _.reduceRight(array, function(flattened, other) {\n * return flattened.concat(other);\n * }, []);\n * // => [4, 5, 2, 3, 0, 1]\n */\n function reduceRight(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduceRight : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEachRight);\n }\n\n /**\n * The opposite of `_.filter`; this method returns the elements of `collection`\n * that `predicate` does **not** return truthy for.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.filter\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true }\n * ];\n *\n * _.reject(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.reject(users, { 'age': 40, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.reject(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.reject(users, 'active');\n * // => objects for ['barney']\n */\n function reject(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, negate(getIteratee(predicate, 3)));\n }\n\n /**\n * Gets a random element from `collection`.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n * @example\n *\n * _.sample([1, 2, 3, 4]);\n * // => 2\n */\n function sample(collection) {\n var func = isArray(collection) ? arraySample : baseSample;\n return func(collection);\n }\n\n /**\n * Gets `n` random elements at unique keys from `collection` up to the\n * size of `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @param {number} [n=1] The number of elements to sample.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the random elements.\n * @example\n *\n * _.sampleSize([1, 2, 3], 2);\n * // => [3, 1]\n *\n * _.sampleSize([1, 2, 3], 4);\n * // => [2, 3, 1]\n */\n function sampleSize(collection, n, guard) {\n if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n var func = isArray(collection) ? arraySampleSize : baseSampleSize;\n return func(collection, n);\n }\n\n /**\n * Creates an array of shuffled values, using a version of the\n * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n * @example\n *\n * _.shuffle([1, 2, 3, 4]);\n * // => [4, 1, 3, 2]\n */\n function shuffle(collection) {\n var func = isArray(collection) ? arrayShuffle : baseShuffle;\n return func(collection);\n }\n\n /**\n * Gets the size of `collection` by returning its length for array-like\n * values or the number of own enumerable string keyed properties for objects.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @returns {number} Returns the collection size.\n * @example\n *\n * _.size([1, 2, 3]);\n * // => 3\n *\n * _.size({ 'a': 1, 'b': 2 });\n * // => 2\n *\n * _.size('pebbles');\n * // => 7\n */\n function size(collection) {\n if (collection == null) {\n return 0;\n }\n if (isArrayLike(collection)) {\n return isString(collection) ? stringSize(collection) : collection.length;\n }\n var tag = getTag(collection);\n if (tag == mapTag || tag == setTag) {\n return collection.size;\n }\n return baseKeys(collection).length;\n }\n\n /**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\n function some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\n var sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\n var now = ctxNow || function() {\n return root.Date.now();\n };\n\n /*------------------------------------------------------------------------*/\n\n /**\n * The opposite of `_.before`; this method creates a function that invokes\n * `func` once it's called `n` or more times.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {number} n The number of calls before `func` is invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var saves = ['profile', 'settings'];\n *\n * var done = _.after(saves.length, function() {\n * console.log('done saving!');\n * });\n *\n * _.forEach(saves, function(type) {\n * asyncSave({ 'type': type, 'complete': done });\n * });\n * // => Logs 'done saving!' after the two async saves have completed.\n */\n function after(n, func) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n < 1) {\n return func.apply(this, arguments);\n }\n };\n }\n\n /**\n * Creates a function that invokes `func`, with up to `n` arguments,\n * ignoring any additional arguments.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @param {number} [n=func.length] The arity cap.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.ary(parseInt, 1));\n * // => [6, 8, 10]\n */\n function ary(func, n, guard) {\n n = guard ? undefined : n;\n n = (func && n == null) ? func.length : n;\n return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n);\n }\n\n /**\n * Creates a function that invokes `func`, with the `this` binding and arguments\n * of the created function, while it's called less than `n` times. Subsequent\n * calls to the created function return the result of the last `func` invocation.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {number} n The number of calls at which `func` is no longer invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * jQuery(element).on('click', _.before(5, addContactToList));\n * // => Allows adding up to 4 contacts to the list.\n */\n function before(n, func) {\n var result;\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n > 0) {\n result = func.apply(this, arguments);\n }\n if (n <= 1) {\n func = undefined;\n }\n return result;\n };\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of `thisArg`\n * and `partials` prepended to the arguments it receives.\n *\n * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for partially applied arguments.\n *\n * **Note:** Unlike native `Function#bind`, this method doesn't set the \"length\"\n * property of bound functions.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * function greet(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n *\n * var object = { 'user': 'fred' };\n *\n * var bound = _.bind(greet, object, 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bind(greet, object, _, '!');\n * bound('hi');\n * // => 'hi fred!'\n */\n var bind = baseRest(function(func, thisArg, partials) {\n var bitmask = WRAP_BIND_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bind));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(func, bitmask, thisArg, partials, holders);\n });\n\n /**\n * Creates a function that invokes the method at `object[key]` with `partials`\n * prepended to the arguments it receives.\n *\n * This method differs from `_.bind` by allowing bound functions to reference\n * methods that may be redefined or don't yet exist. See\n * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern)\n * for more details.\n *\n * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Function\n * @param {Object} object The object to invoke the method on.\n * @param {string} key The key of the method.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * var object = {\n * 'user': 'fred',\n * 'greet': function(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n * };\n *\n * var bound = _.bindKey(object, 'greet', 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * object.greet = function(greeting, punctuation) {\n * return greeting + 'ya ' + this.user + punctuation;\n * };\n *\n * bound('!');\n * // => 'hiya fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bindKey(object, 'greet', _, '!');\n * bound('hi');\n * // => 'hiya fred!'\n */\n var bindKey = baseRest(function(object, key, partials) {\n var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bindKey));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(key, bitmask, object, partials, holders);\n });\n\n /**\n * Creates a function that accepts arguments of `func` and either invokes\n * `func` returning its result, if at least `arity` number of arguments have\n * been provided, or returns a function that accepts the remaining `func`\n * arguments, and so on. The arity of `func` may be specified if `func.length`\n * is not sufficient.\n *\n * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curry(abc);\n *\n * curried(1)(2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(1)(_, 3)(2);\n * // => [1, 2, 3]\n */\n function curry(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curry.placeholder;\n return result;\n }\n\n /**\n * This method is like `_.curry` except that arguments are applied to `func`\n * in the manner of `_.partialRight` instead of `_.partial`.\n *\n * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curryRight(abc);\n *\n * curried(3)(2)(1);\n * // => [1, 2, 3]\n *\n * curried(2, 3)(1);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(3)(1, _)(2);\n * // => [1, 2, 3]\n */\n function curryRight(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curryRight.placeholder;\n return result;\n }\n\n /**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\n function debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n }\n\n /**\n * Defers invoking the `func` until the current call stack has cleared. Any\n * additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to defer.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.defer(function(text) {\n * console.log(text);\n * }, 'deferred');\n * // => Logs 'deferred' after one millisecond.\n */\n var defer = baseRest(function(func, args) {\n return baseDelay(func, 1, args);\n });\n\n /**\n * Invokes `func` after `wait` milliseconds. Any additional arguments are\n * provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.delay(function(text) {\n * console.log(text);\n * }, 1000, 'later');\n * // => Logs 'later' after one second.\n */\n var delay = baseRest(function(func, wait, args) {\n return baseDelay(func, toNumber(wait) || 0, args);\n });\n\n /**\n * Creates a function that invokes `func` with arguments reversed.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to flip arguments for.\n * @returns {Function} Returns the new flipped function.\n * @example\n *\n * var flipped = _.flip(function() {\n * return _.toArray(arguments);\n * });\n *\n * flipped('a', 'b', 'c', 'd');\n * // => ['d', 'c', 'b', 'a']\n */\n function flip(func) {\n return createWrap(func, WRAP_FLIP_FLAG);\n }\n\n /**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\n function memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n }\n\n // Expose `MapCache`.\n memoize.Cache = MapCache;\n\n /**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\n function negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0: return !predicate.call(this);\n case 1: return !predicate.call(this, args[0]);\n case 2: return !predicate.call(this, args[0], args[1]);\n case 3: return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\n }\n\n /**\n * Creates a function that is restricted to invoking `func` once. Repeat calls\n * to the function return the value of the first invocation. The `func` is\n * invoked with the `this` binding and arguments of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var initialize = _.once(createApplication);\n * initialize();\n * initialize();\n * // => `createApplication` is invoked once\n */\n function once(func) {\n return before(2, func);\n }\n\n /**\n * Creates a function that invokes `func` with its arguments transformed.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Function\n * @param {Function} func The function to wrap.\n * @param {...(Function|Function[])} [transforms=[_.identity]]\n * The argument transforms.\n * @returns {Function} Returns the new function.\n * @example\n *\n * function doubled(n) {\n * return n * 2;\n * }\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var func = _.overArgs(function(x, y) {\n * return [x, y];\n * }, [square, doubled]);\n *\n * func(9, 3);\n * // => [81, 6]\n *\n * func(10, 5);\n * // => [100, 10]\n */\n var overArgs = castRest(function(func, transforms) {\n transforms = (transforms.length == 1 && isArray(transforms[0]))\n ? arrayMap(transforms[0], baseUnary(getIteratee()))\n : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee()));\n\n var funcsLength = transforms.length;\n return baseRest(function(args) {\n var index = -1,\n length = nativeMin(args.length, funcsLength);\n\n while (++index < length) {\n args[index] = transforms[index].call(this, args[index]);\n }\n return apply(func, this, args);\n });\n });\n\n /**\n * Creates a function that invokes `func` with `partials` prepended to the\n * arguments it receives. This method is like `_.bind` except it does **not**\n * alter the `this` binding.\n *\n * The `_.partial.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 0.2.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var sayHelloTo = _.partial(greet, 'hello');\n * sayHelloTo('fred');\n * // => 'hello fred'\n *\n * // Partially applied with placeholders.\n * var greetFred = _.partial(greet, _, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n */\n var partial = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partial));\n return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders);\n });\n\n /**\n * This method is like `_.partial` except that partially applied arguments\n * are appended to the arguments it receives.\n *\n * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var greetFred = _.partialRight(greet, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n *\n * // Partially applied with placeholders.\n * var sayHelloTo = _.partialRight(greet, 'hello', _);\n * sayHelloTo('fred');\n * // => 'hello fred'\n */\n var partialRight = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partialRight));\n return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders);\n });\n\n /**\n * Creates a function that invokes `func` with arguments arranged according\n * to the specified `indexes` where the argument value at the first index is\n * provided as the first argument, the argument value at the second index is\n * provided as the second argument, and so on.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to rearrange arguments for.\n * @param {...(number|number[])} indexes The arranged argument indexes.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var rearged = _.rearg(function(a, b, c) {\n * return [a, b, c];\n * }, [2, 0, 1]);\n *\n * rearged('b', 'c', 'a')\n * // => ['a', 'b', 'c']\n */\n var rearg = flatRest(function(func, indexes) {\n return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes);\n });\n\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as\n * an array.\n *\n * **Note:** This method is based on the\n * [rest parameter](https://mdn.io/rest_parameters).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.rest(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\n function rest(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start === undefined ? start : toInteger(start);\n return baseRest(func, start);\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * create function and an array of arguments much like\n * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply).\n *\n * **Note:** This method is based on the\n * [spread operator](https://mdn.io/spread_operator).\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Function\n * @param {Function} func The function to spread arguments over.\n * @param {number} [start=0] The start position of the spread.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.spread(function(who, what) {\n * return who + ' says ' + what;\n * });\n *\n * say(['fred', 'hello']);\n * // => 'fred says hello'\n *\n * var numbers = Promise.all([\n * Promise.resolve(40),\n * Promise.resolve(36)\n * ]);\n *\n * numbers.then(_.spread(function(x, y) {\n * return x + y;\n * }));\n * // => a Promise of 76\n */\n function spread(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start == null ? 0 : nativeMax(toInteger(start), 0);\n return baseRest(function(args) {\n var array = args[start],\n otherArgs = castSlice(args, 0, start);\n\n if (array) {\n arrayPush(otherArgs, array);\n }\n return apply(func, this, otherArgs);\n });\n }\n\n /**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\n function throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n }\n\n /**\n * Creates a function that accepts up to one argument, ignoring any\n * additional arguments.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.unary(parseInt));\n * // => [6, 8, 10]\n */\n function unary(func) {\n return ary(func, 1);\n }\n\n /**\n * Creates a function that provides `value` to `wrapper` as its first\n * argument. Any additional arguments provided to the function are appended\n * to those provided to the `wrapper`. The wrapper is invoked with the `this`\n * binding of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {*} value The value to wrap.\n * @param {Function} [wrapper=identity] The wrapper function.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var p = _.wrap(_.escape, function(func, text) {\n * return '

' + func(text) + '

';\n * });\n *\n * p('fred, barney, & pebbles');\n * // => '

fred, barney, & pebbles

'\n */\n function wrap(value, wrapper) {\n return partial(castFunction(wrapper), value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Casts `value` as an array if it's not one.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Lang\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast array.\n * @example\n *\n * _.castArray(1);\n * // => [1]\n *\n * _.castArray({ 'a': 1 });\n * // => [{ 'a': 1 }]\n *\n * _.castArray('abc');\n * // => ['abc']\n *\n * _.castArray(null);\n * // => [null]\n *\n * _.castArray(undefined);\n * // => [undefined]\n *\n * _.castArray();\n * // => []\n *\n * var array = [1, 2, 3];\n * console.log(_.castArray(array) === array);\n * // => true\n */\n function castArray() {\n if (!arguments.length) {\n return [];\n }\n var value = arguments[0];\n return isArray(value) ? value : [value];\n }\n\n /**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\n function clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.clone` except that it accepts `customizer` which\n * is invoked to produce the cloned value. If `customizer` returns `undefined`,\n * cloning is handled by the method instead. The `customizer` is invoked with\n * up to four arguments; (value [, index|key, object, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeepWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(false);\n * }\n * }\n *\n * var el = _.cloneWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 0\n */\n function cloneWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);\n }\n\n /**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\n function cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.cloneWith` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the deep cloned value.\n * @see _.cloneWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(true);\n * }\n * }\n *\n * var el = _.cloneDeepWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 20\n */\n function cloneDeepWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);\n }\n\n /**\n * Checks if `object` conforms to `source` by invoking the predicate\n * properties of `source` with the corresponding property values of `object`.\n *\n * **Note:** This method is equivalent to `_.conforms` when `source` is\n * partially applied.\n *\n * @static\n * @memberOf _\n * @since 4.14.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 1; } });\n * // => true\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 2; } });\n * // => false\n */\n function conformsTo(object, source) {\n return source == null || baseConformsTo(object, source, keys(source));\n }\n\n /**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\n function eq(value, other) {\n return value === other || (value !== value && other !== other);\n }\n\n /**\n * Checks if `value` is greater than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n * @see _.lt\n * @example\n *\n * _.gt(3, 1);\n * // => true\n *\n * _.gt(3, 3);\n * // => false\n *\n * _.gt(1, 3);\n * // => false\n */\n var gt = createRelationalOperation(baseGt);\n\n /**\n * Checks if `value` is greater than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than or equal to\n * `other`, else `false`.\n * @see _.lte\n * @example\n *\n * _.gte(3, 1);\n * // => true\n *\n * _.gte(3, 3);\n * // => true\n *\n * _.gte(1, 3);\n * // => false\n */\n var gte = createRelationalOperation(function(value, other) {\n return value >= other;\n });\n\n /**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\n var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n };\n\n /**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\n var isArray = Array.isArray;\n\n /**\n * Checks if `value` is classified as an `ArrayBuffer` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n * @example\n *\n * _.isArrayBuffer(new ArrayBuffer(2));\n * // => true\n *\n * _.isArrayBuffer(new Array(2));\n * // => false\n */\n var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer;\n\n /**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\n function isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n }\n\n /**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\n function isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n }\n\n /**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\n function isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n }\n\n /**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\n var isBuffer = nativeIsBuffer || stubFalse;\n\n /**\n * Checks if `value` is classified as a `Date` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n * @example\n *\n * _.isDate(new Date);\n * // => true\n *\n * _.isDate('Mon April 23 2012');\n * // => false\n */\n var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\n\n /**\n * Checks if `value` is likely a DOM element.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.\n * @example\n *\n * _.isElement(document.body);\n * // => true\n *\n * _.isElement('');\n * // => false\n */\n function isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n }\n\n /**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\n function isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\n function isEqual(value, other) {\n return baseIsEqual(value, other);\n }\n\n /**\n * This method is like `_.isEqual` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with up to\n * six arguments: (objValue, othValue [, index|key, object, other, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, othValue) {\n * if (isGreeting(objValue) && isGreeting(othValue)) {\n * return true;\n * }\n * }\n *\n * var array = ['hello', 'goodbye'];\n * var other = ['hi', 'goodbye'];\n *\n * _.isEqualWith(array, other, customizer);\n * // => true\n */\n function isEqualWith(value, other, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n var result = customizer ? customizer(value, other) : undefined;\n return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result;\n }\n\n /**\n * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\n * `SyntaxError`, `TypeError`, or `URIError` object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an error object, else `false`.\n * @example\n *\n * _.isError(new Error);\n * // => true\n *\n * _.isError(Error);\n * // => false\n */\n function isError(value) {\n if (!isObjectLike(value)) {\n return false;\n }\n var tag = baseGetTag(value);\n return tag == errorTag || tag == domExcTag ||\n (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));\n }\n\n /**\n * Checks if `value` is a finite primitive number.\n *\n * **Note:** This method is based on\n * [`Number.isFinite`](https://mdn.io/Number/isFinite).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a finite number, else `false`.\n * @example\n *\n * _.isFinite(3);\n * // => true\n *\n * _.isFinite(Number.MIN_VALUE);\n * // => true\n *\n * _.isFinite(Infinity);\n * // => false\n *\n * _.isFinite('3');\n * // => false\n */\n function isFinite(value) {\n return typeof value == 'number' && nativeIsFinite(value);\n }\n\n /**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\n function isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n }\n\n /**\n * Checks if `value` is an integer.\n *\n * **Note:** This method is based on\n * [`Number.isInteger`](https://mdn.io/Number/isInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an integer, else `false`.\n * @example\n *\n * _.isInteger(3);\n * // => true\n *\n * _.isInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isInteger(Infinity);\n * // => false\n *\n * _.isInteger('3');\n * // => false\n */\n function isInteger(value) {\n return typeof value == 'number' && value == toInteger(value);\n }\n\n /**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\n function isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\n function isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n }\n\n /**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\n function isObjectLike(value) {\n return value != null && typeof value == 'object';\n }\n\n /**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\n var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\n /**\n * Performs a partial deep comparison between `object` and `source` to\n * determine if `object` contains equivalent property values.\n *\n * **Note:** This method is equivalent to `_.matches` when `source` is\n * partially applied.\n *\n * Partial comparisons will match empty array and empty object `source`\n * values against any array or object value, respectively. See `_.isEqual`\n * for a list of supported value comparisons.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.isMatch(object, { 'b': 2 });\n * // => true\n *\n * _.isMatch(object, { 'b': 1 });\n * // => false\n */\n function isMatch(object, source) {\n return object === source || baseIsMatch(object, source, getMatchData(source));\n }\n\n /**\n * This method is like `_.isMatch` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with five\n * arguments: (objValue, srcValue, index|key, object, source).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, srcValue) {\n * if (isGreeting(objValue) && isGreeting(srcValue)) {\n * return true;\n * }\n * }\n *\n * var object = { 'greeting': 'hello' };\n * var source = { 'greeting': 'hi' };\n *\n * _.isMatchWith(object, source, customizer);\n * // => true\n */\n function isMatchWith(object, source, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseIsMatch(object, source, getMatchData(source), customizer);\n }\n\n /**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\n function isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n }\n\n /**\n * Checks if `value` is a pristine native function.\n *\n * **Note:** This method can't reliably detect native functions in the presence\n * of the core-js package because core-js circumvents this kind of detection.\n * Despite multiple requests, the core-js maintainer has made it clear: any\n * attempt to fix the detection will be obstructed. As a result, we're left\n * with little choice but to throw an error. Unfortunately, this also affects\n * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill),\n * which rely on core-js.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\n function isNative(value) {\n if (isMaskable(value)) {\n throw new Error(CORE_ERROR_TEXT);\n }\n return baseIsNative(value);\n }\n\n /**\n * Checks if `value` is `null`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `null`, else `false`.\n * @example\n *\n * _.isNull(null);\n * // => true\n *\n * _.isNull(void 0);\n * // => false\n */\n function isNull(value) {\n return value === null;\n }\n\n /**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\n function isNil(value) {\n return value == null;\n }\n\n /**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\n function isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n }\n\n /**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\n function isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n }\n\n /**\n * Checks if `value` is classified as a `RegExp` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\n var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n\n /**\n * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754\n * double precision number which isn't the result of a rounded unsafe integer.\n *\n * **Note:** This method is based on\n * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`.\n * @example\n *\n * _.isSafeInteger(3);\n * // => true\n *\n * _.isSafeInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isSafeInteger(Infinity);\n * // => false\n *\n * _.isSafeInteger('3');\n * // => false\n */\n function isSafeInteger(value) {\n return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\n var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\n /**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\n function isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n }\n\n /**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\n function isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n }\n\n /**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\n var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n /**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\n function isUndefined(value) {\n return value === undefined;\n }\n\n /**\n * Checks if `value` is classified as a `WeakMap` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak map, else `false`.\n * @example\n *\n * _.isWeakMap(new WeakMap);\n * // => true\n *\n * _.isWeakMap(new Map);\n * // => false\n */\n function isWeakMap(value) {\n return isObjectLike(value) && getTag(value) == weakMapTag;\n }\n\n /**\n * Checks if `value` is classified as a `WeakSet` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak set, else `false`.\n * @example\n *\n * _.isWeakSet(new WeakSet);\n * // => true\n *\n * _.isWeakSet(new Set);\n * // => false\n */\n function isWeakSet(value) {\n return isObjectLike(value) && baseGetTag(value) == weakSetTag;\n }\n\n /**\n * Checks if `value` is less than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n * @see _.gt\n * @example\n *\n * _.lt(1, 3);\n * // => true\n *\n * _.lt(3, 3);\n * // => false\n *\n * _.lt(3, 1);\n * // => false\n */\n var lt = createRelationalOperation(baseLt);\n\n /**\n * Checks if `value` is less than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than or equal to\n * `other`, else `false`.\n * @see _.gte\n * @example\n *\n * _.lte(1, 3);\n * // => true\n *\n * _.lte(3, 3);\n * // => true\n *\n * _.lte(3, 1);\n * // => false\n */\n var lte = createRelationalOperation(function(value, other) {\n return value <= other;\n });\n\n /**\n * Converts `value` to an array.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Array} Returns the converted array.\n * @example\n *\n * _.toArray({ 'a': 1, 'b': 2 });\n * // => [1, 2]\n *\n * _.toArray('abc');\n * // => ['a', 'b', 'c']\n *\n * _.toArray(1);\n * // => []\n *\n * _.toArray(null);\n * // => []\n */\n function toArray(value) {\n if (!value) {\n return [];\n }\n if (isArrayLike(value)) {\n return isString(value) ? stringToArray(value) : copyArray(value);\n }\n if (symIterator && value[symIterator]) {\n return iteratorToArray(value[symIterator]());\n }\n var tag = getTag(value),\n func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values);\n\n return func(value);\n }\n\n /**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\n function toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n }\n\n /**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\n function toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n }\n\n /**\n * Converts `value` to an integer suitable for use as the length of an\n * array-like object.\n *\n * **Note:** This method is based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toLength(3.2);\n * // => 3\n *\n * _.toLength(Number.MIN_VALUE);\n * // => 0\n *\n * _.toLength(Infinity);\n * // => 4294967295\n *\n * _.toLength('3.2');\n * // => 3\n */\n function toLength(value) {\n return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0;\n }\n\n /**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\n function toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n }\n\n /**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\n function toPlainObject(value) {\n return copyObject(value, keysIn(value));\n }\n\n /**\n * Converts `value` to a safe integer. A safe integer can be compared and\n * represented correctly.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toSafeInteger(3.2);\n * // => 3\n *\n * _.toSafeInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toSafeInteger(Infinity);\n * // => 9007199254740991\n *\n * _.toSafeInteger('3.2');\n * // => 3\n */\n function toSafeInteger(value) {\n return value\n ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER)\n : (value === 0 ? value : 0);\n }\n\n /**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\n function toString(value) {\n return value == null ? '' : baseToString(value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\n var assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n });\n\n /**\n * This method is like `_.assign` except that it iterates over own and\n * inherited source properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extend\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assign\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assignIn({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }\n */\n var assignIn = createAssigner(function(object, source) {\n copyObject(source, keysIn(source), object);\n });\n\n /**\n * This method is like `_.assignIn` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extendWith\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignInWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignInWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keysIn(source), object, customizer);\n });\n\n /**\n * This method is like `_.assign` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignInWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keys(source), object, customizer);\n });\n\n /**\n * Creates an array of values corresponding to `paths` of `object`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Array} Returns the picked values.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _.at(object, ['a[0].b.c', 'a[1]']);\n * // => [3, 4]\n */\n var at = flatRest(baseAt);\n\n /**\n * Creates an object that inherits from the `prototype` object. If a\n * `properties` object is given, its own enumerable string keyed properties\n * are assigned to the created object.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Object\n * @param {Object} prototype The object to inherit from.\n * @param {Object} [properties] The properties to assign to the object.\n * @returns {Object} Returns the new object.\n * @example\n *\n * function Shape() {\n * this.x = 0;\n * this.y = 0;\n * }\n *\n * function Circle() {\n * Shape.call(this);\n * }\n *\n * Circle.prototype = _.create(Shape.prototype, {\n * 'constructor': Circle\n * });\n *\n * var circle = new Circle;\n * circle instanceof Circle;\n * // => true\n *\n * circle instanceof Shape;\n * // => true\n */\n function create(prototype, properties) {\n var result = baseCreate(prototype);\n return properties == null ? result : baseAssign(result, properties);\n }\n\n /**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n });\n\n /**\n * This method is like `_.defaults` except that it recursively assigns\n * default properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaults\n * @example\n *\n * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });\n * // => { 'a': { 'b': 2, 'c': 3 } }\n */\n var defaultsDeep = baseRest(function(args) {\n args.push(undefined, customDefaultsMerge);\n return apply(mergeWith, undefined, args);\n });\n\n /**\n * This method is like `_.find` except that it returns the key of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findKey(users, function(o) { return o.age < 40; });\n * // => 'barney' (iteration order is not guaranteed)\n *\n * // The `_.matches` iteratee shorthand.\n * _.findKey(users, { 'age': 1, 'active': true });\n * // => 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findKey(users, 'active');\n * // => 'barney'\n */\n function findKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwn);\n }\n\n /**\n * This method is like `_.findKey` except that it iterates over elements of\n * a collection in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findLastKey(users, function(o) { return o.age < 40; });\n * // => returns 'pebbles' assuming `_.findKey` returns 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastKey(users, { 'age': 36, 'active': true });\n * // => 'barney'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastKey(users, 'active');\n * // => 'pebbles'\n */\n function findLastKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight);\n }\n\n /**\n * Iterates over own and inherited enumerable string keyed properties of an\n * object and invokes `iteratee` for each property. The iteratee is invoked\n * with three arguments: (value, key, object). Iteratee functions may exit\n * iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forInRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forIn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).\n */\n function forIn(object, iteratee) {\n return object == null\n ? object\n : baseFor(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * This method is like `_.forIn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forInRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'.\n */\n function forInRight(object, iteratee) {\n return object == null\n ? object\n : baseForRight(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forOwn(object, iteratee) {\n return object && baseForOwn(object, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.forOwn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwnRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'.\n */\n function forOwnRight(object, iteratee) {\n return object && baseForOwnRight(object, getIteratee(iteratee, 3));\n }\n\n /**\n * Creates an array of function property names from own enumerable properties\n * of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functionsIn\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functions(new Foo);\n * // => ['a', 'b']\n */\n function functions(object) {\n return object == null ? [] : baseFunctions(object, keys(object));\n }\n\n /**\n * Creates an array of function property names from own and inherited\n * enumerable properties of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functions\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functionsIn(new Foo);\n * // => ['a', 'b', 'c']\n */\n function functionsIn(object) {\n return object == null ? [] : baseFunctions(object, keysIn(object));\n }\n\n /**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\n function get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n }\n\n /**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\n function has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n }\n\n /**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\n function hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n }\n\n /**\n * Creates an object composed of the inverted keys and values of `object`.\n * If `object` contains duplicate values, subsequent values overwrite\n * property assignments of previous values.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Object\n * @param {Object} object The object to invert.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invert(object);\n * // => { '1': 'c', '2': 'b' }\n */\n var invert = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n result[value] = key;\n }, constant(identity));\n\n /**\n * This method is like `_.invert` except that the inverted object is generated\n * from the results of running each element of `object` thru `iteratee`. The\n * corresponding inverted value of each inverted key is an array of keys\n * responsible for generating the inverted value. The iteratee is invoked\n * with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Object\n * @param {Object} object The object to invert.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invertBy(object);\n * // => { '1': ['a', 'c'], '2': ['b'] }\n *\n * _.invertBy(object, function(value) {\n * return 'group' + value;\n * });\n * // => { 'group1': ['a', 'c'], 'group2': ['b'] }\n */\n var invertBy = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n if (hasOwnProperty.call(result, value)) {\n result[value].push(key);\n } else {\n result[value] = [key];\n }\n }, getIteratee);\n\n /**\n * Invokes the method at `path` of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] };\n *\n * _.invoke(object, 'a[0].b.c.slice', 1, 3);\n * // => [2, 3]\n */\n var invoke = baseRest(baseInvoke);\n\n /**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\n function keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n }\n\n /**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\n function keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n }\n\n /**\n * The opposite of `_.mapValues`; this method creates an object with the\n * same values as `object` and keys generated by running each own enumerable\n * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n * with three arguments: (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapValues\n * @example\n *\n * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n * return key + value;\n * });\n * // => { 'a1': 1, 'b2': 2 }\n */\n function mapKeys(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, iteratee(value, key, object), value);\n });\n return result;\n }\n\n /**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\n function mapValues(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n }\n\n /**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\n var merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n });\n\n /**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\n var mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n });\n\n /**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\n var omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n });\n\n /**\n * The opposite of `_.pickBy`; this method creates an object composed of\n * the own and inherited enumerable string keyed properties of `object` that\n * `predicate` doesn't return truthy for. The predicate is invoked with two\n * arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omitBy(object, _.isNumber);\n * // => { 'b': '2' }\n */\n function omitBy(object, predicate) {\n return pickBy(object, negate(getIteratee(predicate)));\n }\n\n /**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\n var pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n });\n\n /**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\n function pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = getIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n }\n\n /**\n * This method is like `_.get` except that if the resolved value is a\n * function it's invoked with the `this` binding of its parent object and\n * its result is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to resolve.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };\n *\n * _.result(object, 'a[0].b.c1');\n * // => 3\n *\n * _.result(object, 'a[0].b.c2');\n * // => 4\n *\n * _.result(object, 'a[0].b.c3', 'default');\n * // => 'default'\n *\n * _.result(object, 'a[0].b.c3', _.constant('default'));\n * // => 'default'\n */\n function result(object, path, defaultValue) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length;\n\n // Ensure the loop is entered when path is empty.\n if (!length) {\n length = 1;\n object = undefined;\n }\n while (++index < length) {\n var value = object == null ? undefined : object[toKey(path[index])];\n if (value === undefined) {\n index = length;\n value = defaultValue;\n }\n object = isFunction(value) ? value.call(object) : value;\n }\n return object;\n }\n\n /**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\n function set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n }\n\n /**\n * This method is like `_.set` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.setWith(object, '[0][1]', 'a', Object);\n * // => { '0': { '1': 'a' } }\n */\n function setWith(object, path, value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseSet(object, path, value, customizer);\n }\n\n /**\n * Creates an array of own enumerable string keyed-value pairs for `object`\n * which can be consumed by `_.fromPairs`. If `object` is a map or set, its\n * entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entries\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairs(new Foo);\n * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed)\n */\n var toPairs = createToPairs(keys);\n\n /**\n * Creates an array of own and inherited enumerable string keyed-value pairs\n * for `object` which can be consumed by `_.fromPairs`. If `object` is a map\n * or set, its entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entriesIn\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairsIn(new Foo);\n * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed)\n */\n var toPairsIn = createToPairs(keysIn);\n\n /**\n * An alternative to `_.reduce`; this method transforms `object` to a new\n * `accumulator` object which is the result of running each of its own\n * enumerable string keyed properties thru `iteratee`, with each invocation\n * potentially mutating the `accumulator` object. If `accumulator` is not\n * provided, a new object with the same `[[Prototype]]` will be used. The\n * iteratee is invoked with four arguments: (accumulator, value, key, object).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The custom accumulator value.\n * @returns {*} Returns the accumulated value.\n * @example\n *\n * _.transform([2, 3, 4], function(result, n) {\n * result.push(n *= n);\n * return n % 2 == 0;\n * }, []);\n * // => [4, 9]\n *\n * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] }\n */\n function transform(object, iteratee, accumulator) {\n var isArr = isArray(object),\n isArrLike = isArr || isBuffer(object) || isTypedArray(object);\n\n iteratee = getIteratee(iteratee, 4);\n if (accumulator == null) {\n var Ctor = object && object.constructor;\n if (isArrLike) {\n accumulator = isArr ? new Ctor : [];\n }\n else if (isObject(object)) {\n accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};\n }\n else {\n accumulator = {};\n }\n }\n (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) {\n return iteratee(accumulator, value, index, object);\n });\n return accumulator;\n }\n\n /**\n * Removes the property at `path` of `object`.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 7 } }] };\n * _.unset(object, 'a[0].b.c');\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n *\n * _.unset(object, ['a', '0', 'b', 'c']);\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n */\n function unset(object, path) {\n return object == null ? true : baseUnset(object, path);\n }\n\n /**\n * This method is like `_.set` except that accepts `updater` to produce the\n * value to set. Use `_.updateWith` to customize `path` creation. The `updater`\n * is invoked with one argument: (value).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.update(object, 'a[0].b.c', function(n) { return n * n; });\n * console.log(object.a[0].b.c);\n * // => 9\n *\n * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; });\n * console.log(object.x[0].y.z);\n * // => 0\n */\n function update(object, path, updater) {\n return object == null ? object : baseUpdate(object, path, castFunction(updater));\n }\n\n /**\n * This method is like `_.update` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.updateWith(object, '[0][1]', _.constant('a'), Object);\n * // => { '0': { '1': 'a' } }\n */\n function updateWith(object, path, updater, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer);\n }\n\n /**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\n function values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n }\n\n /**\n * Creates an array of the own and inherited enumerable string keyed property\n * values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.valuesIn(new Foo);\n * // => [1, 2, 3] (iteration order is not guaranteed)\n */\n function valuesIn(object) {\n return object == null ? [] : baseValues(object, keysIn(object));\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Clamps `number` within the inclusive `lower` and `upper` bounds.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Number\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n * @example\n *\n * _.clamp(-10, -5, 5);\n * // => -5\n *\n * _.clamp(10, -5, 5);\n * // => 5\n */\n function clamp(number, lower, upper) {\n if (upper === undefined) {\n upper = lower;\n lower = undefined;\n }\n if (upper !== undefined) {\n upper = toNumber(upper);\n upper = upper === upper ? upper : 0;\n }\n if (lower !== undefined) {\n lower = toNumber(lower);\n lower = lower === lower ? lower : 0;\n }\n return baseClamp(toNumber(number), lower, upper);\n }\n\n /**\n * Checks if `n` is between `start` and up to, but not including, `end`. If\n * `end` is not specified, it's set to `start` with `start` then set to `0`.\n * If `start` is greater than `end` the params are swapped to support\n * negative ranges.\n *\n * @static\n * @memberOf _\n * @since 3.3.0\n * @category Number\n * @param {number} number The number to check.\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n * @see _.range, _.rangeRight\n * @example\n *\n * _.inRange(3, 2, 4);\n * // => true\n *\n * _.inRange(4, 8);\n * // => true\n *\n * _.inRange(4, 2);\n * // => false\n *\n * _.inRange(2, 2);\n * // => false\n *\n * _.inRange(1.2, 2);\n * // => true\n *\n * _.inRange(5.2, 4);\n * // => false\n *\n * _.inRange(-3, -2, -6);\n * // => true\n */\n function inRange(number, start, end) {\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n number = toNumber(number);\n return baseInRange(number, start, end);\n }\n\n /**\n * Produces a random number between the inclusive `lower` and `upper` bounds.\n * If only one argument is provided a number between `0` and the given number\n * is returned. If `floating` is `true`, or either `lower` or `upper` are\n * floats, a floating-point number is returned instead of an integer.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Number\n * @param {number} [lower=0] The lower bound.\n * @param {number} [upper=1] The upper bound.\n * @param {boolean} [floating] Specify returning a floating-point number.\n * @returns {number} Returns the random number.\n * @example\n *\n * _.random(0, 5);\n * // => an integer between 0 and 5\n *\n * _.random(5);\n * // => also an integer between 0 and 5\n *\n * _.random(5, true);\n * // => a floating-point number between 0 and 5\n *\n * _.random(1.2, 5.2);\n * // => a floating-point number between 1.2 and 5.2\n */\n function random(lower, upper, floating) {\n if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) {\n upper = floating = undefined;\n }\n if (floating === undefined) {\n if (typeof upper == 'boolean') {\n floating = upper;\n upper = undefined;\n }\n else if (typeof lower == 'boolean') {\n floating = lower;\n lower = undefined;\n }\n }\n if (lower === undefined && upper === undefined) {\n lower = 0;\n upper = 1;\n }\n else {\n lower = toFinite(lower);\n if (upper === undefined) {\n upper = lower;\n lower = 0;\n } else {\n upper = toFinite(upper);\n }\n }\n if (lower > upper) {\n var temp = lower;\n lower = upper;\n upper = temp;\n }\n if (floating || lower % 1 || upper % 1) {\n var rand = nativeRandom();\n return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper);\n }\n return baseRandom(lower, upper);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\n var camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n });\n\n /**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\n function capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n }\n\n /**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\n function deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n }\n\n /**\n * Checks if `string` ends with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=string.length] The position to search up to.\n * @returns {boolean} Returns `true` if `string` ends with `target`,\n * else `false`.\n * @example\n *\n * _.endsWith('abc', 'c');\n * // => true\n *\n * _.endsWith('abc', 'b');\n * // => false\n *\n * _.endsWith('abc', 'b', 2);\n * // => true\n */\n function endsWith(string, target, position) {\n string = toString(string);\n target = baseToString(target);\n\n var length = string.length;\n position = position === undefined\n ? length\n : baseClamp(toInteger(position), 0, length);\n\n var end = position;\n position -= target.length;\n return position >= 0 && string.slice(position, end) == target;\n }\n\n /**\n * Converts the characters \"&\", \"<\", \">\", '\"', and \"'\" in `string` to their\n * corresponding HTML entities.\n *\n * **Note:** No other characters are escaped. To escape additional\n * characters use a third-party library like [_he_](https://mths.be/he).\n *\n * Though the \">\" character is escaped for symmetry, characters like\n * \">\" and \"/\" don't need escaping in HTML and have no special meaning\n * unless they're part of a tag or unquoted attribute value. See\n * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)\n * (under \"semi-related fun fact\") for more details.\n *\n * When working with HTML you should always\n * [quote attribute values](http://wonko.com/post/html-escaping) to reduce\n * XSS vectors.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escape('fred, barney, & pebbles');\n * // => 'fred, barney, & pebbles'\n */\n function escape(string) {\n string = toString(string);\n return (string && reHasUnescapedHtml.test(string))\n ? string.replace(reUnescapedHtml, escapeHtmlChar)\n : string;\n }\n\n /**\n * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n */\n function escapeRegExp(string) {\n string = toString(string);\n return (string && reHasRegExpChar.test(string))\n ? string.replace(reRegExpChar, '\\\\$&')\n : string;\n }\n\n /**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\n var kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n });\n\n /**\n * Converts `string`, as space separated words, to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the lower cased string.\n * @example\n *\n * _.lowerCase('--Foo-Bar--');\n * // => 'foo bar'\n *\n * _.lowerCase('fooBar');\n * // => 'foo bar'\n *\n * _.lowerCase('__FOO_BAR__');\n * // => 'foo bar'\n */\n var lowerCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + word.toLowerCase();\n });\n\n /**\n * Converts the first character of `string` to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.lowerFirst('Fred');\n * // => 'fred'\n *\n * _.lowerFirst('FRED');\n * // => 'fRED'\n */\n var lowerFirst = createCaseFirst('toLowerCase');\n\n /**\n * Pads `string` on the left and right sides if it's shorter than `length`.\n * Padding characters are truncated if they can't be evenly divided by `length`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.pad('abc', 8);\n * // => ' abc '\n *\n * _.pad('abc', 8, '_-');\n * // => '_-abc_-_'\n *\n * _.pad('abc', 3);\n * // => 'abc'\n */\n function pad(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n if (!length || strLength >= length) {\n return string;\n }\n var mid = (length - strLength) / 2;\n return (\n createPadding(nativeFloor(mid), chars) +\n string +\n createPadding(nativeCeil(mid), chars)\n );\n }\n\n /**\n * Pads `string` on the right side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padEnd('abc', 6);\n * // => 'abc '\n *\n * _.padEnd('abc', 6, '_-');\n * // => 'abc_-_'\n *\n * _.padEnd('abc', 3);\n * // => 'abc'\n */\n function padEnd(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (string + createPadding(length - strLength, chars))\n : string;\n }\n\n /**\n * Pads `string` on the left side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padStart('abc', 6);\n * // => ' abc'\n *\n * _.padStart('abc', 6, '_-');\n * // => '_-_abc'\n *\n * _.padStart('abc', 3);\n * // => 'abc'\n */\n function padStart(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (createPadding(length - strLength, chars) + string)\n : string;\n }\n\n /**\n * Converts `string` to an integer of the specified radix. If `radix` is\n * `undefined` or `0`, a `radix` of `10` is used unless `value` is a\n * hexadecimal, in which case a `radix` of `16` is used.\n *\n * **Note:** This method aligns with the\n * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category String\n * @param {string} string The string to convert.\n * @param {number} [radix=10] The radix to interpret `value` by.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.parseInt('08');\n * // => 8\n *\n * _.map(['6', '08', '10'], _.parseInt);\n * // => [6, 8, 10]\n */\n function parseInt(string, radix, guard) {\n if (guard || radix == null) {\n radix = 0;\n } else if (radix) {\n radix = +radix;\n }\n return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0);\n }\n\n /**\n * Repeats the given string `n` times.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to repeat.\n * @param {number} [n=1] The number of times to repeat the string.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the repeated string.\n * @example\n *\n * _.repeat('*', 3);\n * // => '***'\n *\n * _.repeat('abc', 2);\n * // => 'abcabc'\n *\n * _.repeat('abc', 0);\n * // => ''\n */\n function repeat(string, n, guard) {\n if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n return baseRepeat(toString(string), n);\n }\n\n /**\n * Replaces matches for `pattern` in `string` with `replacement`.\n *\n * **Note:** This method is based on\n * [`String#replace`](https://mdn.io/String/replace).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to modify.\n * @param {RegExp|string} pattern The pattern to replace.\n * @param {Function|string} replacement The match replacement.\n * @returns {string} Returns the modified string.\n * @example\n *\n * _.replace('Hi Fred', 'Fred', 'Barney');\n * // => 'Hi Barney'\n */\n function replace() {\n var args = arguments,\n string = toString(args[0]);\n\n return args.length < 3 ? string : string.replace(args[1], args[2]);\n }\n\n /**\n * Converts `string` to\n * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the snake cased string.\n * @example\n *\n * _.snakeCase('Foo Bar');\n * // => 'foo_bar'\n *\n * _.snakeCase('fooBar');\n * // => 'foo_bar'\n *\n * _.snakeCase('--FOO-BAR--');\n * // => 'foo_bar'\n */\n var snakeCase = createCompounder(function(result, word, index) {\n return result + (index ? '_' : '') + word.toLowerCase();\n });\n\n /**\n * Splits `string` by `separator`.\n *\n * **Note:** This method is based on\n * [`String#split`](https://mdn.io/String/split).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to split.\n * @param {RegExp|string} separator The separator pattern to split by.\n * @param {number} [limit] The length to truncate results to.\n * @returns {Array} Returns the string segments.\n * @example\n *\n * _.split('a-b-c', '-', 2);\n * // => ['a', 'b']\n */\n function split(string, separator, limit) {\n if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) {\n separator = limit = undefined;\n }\n limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0;\n if (!limit) {\n return [];\n }\n string = toString(string);\n if (string && (\n typeof separator == 'string' ||\n (separator != null && !isRegExp(separator))\n )) {\n separator = baseToString(separator);\n if (!separator && hasUnicode(string)) {\n return castSlice(stringToArray(string), 0, limit);\n }\n }\n return string.split(separator, limit);\n }\n\n /**\n * Converts `string` to\n * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).\n *\n * @static\n * @memberOf _\n * @since 3.1.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the start cased string.\n * @example\n *\n * _.startCase('--foo-bar--');\n * // => 'Foo Bar'\n *\n * _.startCase('fooBar');\n * // => 'Foo Bar'\n *\n * _.startCase('__FOO_BAR__');\n * // => 'FOO BAR'\n */\n var startCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + upperFirst(word);\n });\n\n /**\n * Checks if `string` starts with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=0] The position to search from.\n * @returns {boolean} Returns `true` if `string` starts with `target`,\n * else `false`.\n * @example\n *\n * _.startsWith('abc', 'a');\n * // => true\n *\n * _.startsWith('abc', 'b');\n * // => false\n *\n * _.startsWith('abc', 'b', 1);\n * // => true\n */\n function startsWith(string, target, position) {\n string = toString(string);\n position = position == null\n ? 0\n : baseClamp(toInteger(position), 0, string.length);\n\n target = baseToString(target);\n return string.slice(position, position + target.length) == target;\n }\n\n /**\n * Creates a compiled template function that can interpolate data properties\n * in \"interpolate\" delimiters, HTML-escape interpolated data properties in\n * \"escape\" delimiters, and execute JavaScript in \"evaluate\" delimiters. Data\n * properties may be accessed as free variables in the template. If a setting\n * object is given, it takes precedence over `_.templateSettings` values.\n *\n * **Note:** In the development build `_.template` utilizes\n * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)\n * for easier debugging.\n *\n * For more information on precompiling templates see\n * [lodash's custom builds documentation](https://lodash.com/custom-builds).\n *\n * For more information on Chrome extension sandboxes see\n * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval).\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The template string.\n * @param {Object} [options={}] The options object.\n * @param {RegExp} [options.escape=_.templateSettings.escape]\n * The HTML \"escape\" delimiter.\n * @param {RegExp} [options.evaluate=_.templateSettings.evaluate]\n * The \"evaluate\" delimiter.\n * @param {Object} [options.imports=_.templateSettings.imports]\n * An object to import into the template as free variables.\n * @param {RegExp} [options.interpolate=_.templateSettings.interpolate]\n * The \"interpolate\" delimiter.\n * @param {string} [options.sourceURL='lodash.templateSources[n]']\n * The sourceURL of the compiled template.\n * @param {string} [options.variable='obj']\n * The data object variable name.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the compiled template function.\n * @example\n *\n * // Use the \"interpolate\" delimiter to create a compiled template.\n * var compiled = _.template('hello <%= user %>!');\n * compiled({ 'user': 'fred' });\n * // => 'hello fred!'\n *\n * // Use the HTML \"escape\" delimiter to escape data property values.\n * var compiled = _.template('<%- value %>');\n * compiled({ 'value': '